{"version":3,"sources":["../src/react-imgix.jsx"],"names":["PACKAGE_VERSION","NODE_ENV","process","env","buildKey","idx","validTypes","defaultImgixParams","auto","fit","defaultAttributeMap","src","srcSet","sizes","noop","COMMON_PROP_TYPES","className","PropTypes","string","onMounted","func","htmlAttributes","object","SHARED_IMGIX_AND_SOURCE_PROP_TYPES","disableQualityByDPR","bool","disableSrcSet","disableLibraryParam","imgixParams","width","number","height","isRequired","parseAspectRatio","aspectRatio","isValidFormat","str","test","split","parseFloat","buildSrcSetPairFunction","url","aspectRatioDecimal","fixedHeight","targetWidth","Math","ceil","buildDprSrcFunction","quality","dpr","CONSTANTS","buildSrc","inputSrc","type","fixedSize","rawSrc","params","srcOptions","ixlib","q","urlParams","constructedUrl","buildDprSrc","map","join","w","showARWarning","buildSrcSetPair","targetWidths","config","warnings","invalidARFormat","console","warn","props","crop","ar","ReactImgix","node","ReactDOM","findDOMNode","sizesAttribute","_inPicture","attributeConfig","childProps","Error","Component","displayName","PictureImpl","children","_children","React","Children","child","cloneElement","key","imgIdx","findIndex","c","ReactImgixWrapped","fallbackImage","length","push","splice","any","SourceImpl","deprecatePropsHOC","ShouldComponentUpdateHOC","Picture","Source"],"mappings":"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","sourcesContent":["import \"./array-findindex\";\n\nimport ReactDOM from \"react-dom\";\nimport React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport targetWidths from \"./targetWidths\";\nimport constructUrl from \"./constructUrl\";\nimport extractQueryParams from \"./extractQueryParams\";\nimport { deprecatePropsHOC, ShouldComponentUpdateHOC } from \"./HOCs\";\n\nimport { warning, shallowEqual, compose, config, CONSTANTS } from \"./common\";\n\nconst PACKAGE_VERSION = require(\"../package.json\").version;\nconst NODE_ENV = process.env.NODE_ENV;\n\nconst buildKey = idx => `react-imgix-${idx}`;\n\nconst validTypes = [\"img\", \"picture\", \"source\"];\n\nconst defaultImgixParams = {\n auto: [\"format\"],\n fit: \"crop\"\n};\n\nconst defaultAttributeMap = {\n src: \"src\",\n srcSet: \"srcSet\",\n sizes: \"sizes\"\n};\n\nconst noop = () => {};\n\nconst COMMON_PROP_TYPES = {\n className: PropTypes.string,\n onMounted: PropTypes.func,\n htmlAttributes: PropTypes.object\n};\n\nconst SHARED_IMGIX_AND_SOURCE_PROP_TYPES = {\n ...COMMON_PROP_TYPES,\n disableQualityByDPR: PropTypes.bool,\n disableSrcSet: PropTypes.bool,\n disableLibraryParam: PropTypes.bool,\n imgixParams: PropTypes.object,\n sizes: PropTypes.string,\n width: PropTypes.number,\n height: PropTypes.number,\n src: PropTypes.string.isRequired\n};\n\n/**\n * Parse an aspect ratio in the format w:h to a decimal. If false is returned, the aspect ratio is in the wrong format.\n */\nfunction parseAspectRatio(aspectRatio) {\n if (typeof aspectRatio !== \"string\") {\n return false;\n }\n const isValidFormat = str => /^\\d+(\\.\\d+)?:\\d+(\\.\\d+)?$/.test(str);\n if (!isValidFormat(aspectRatio)) {\n return false;\n }\n\n const [width, height] = aspectRatio.split(\":\");\n\n return parseFloat(width) / parseFloat(height);\n}\n\n/**\n * Returns a function which builds a srcSet string with the width,\n * and height if there is one\n */\nfunction buildSrcSetPairFunction(url, aspectRatioDecimal = 0, fixedHeight) {\n if (fixedHeight) {\n return targetWidth =>\n `${url}&h=${fixedHeight}&w=${targetWidth} ${targetWidth}w`;\n }\n if (aspectRatioDecimal > 0) {\n return targetWidth =>\n `${url}&h=${Math.ceil(\n targetWidth / aspectRatioDecimal\n )}&w=${targetWidth} ${targetWidth}w`;\n }\n\n return targetWidth => `${url}&w=${targetWidth} ${targetWidth}w`;\n}\n\n/**\n * Returns a function which builds a srcSet string with dpr,\n * and quality if not disabled.\n */\nfunction buildDprSrcFunction(url, disableQualityByDPR, quality) {\n // Use quality if explicitly passed in -- either as an option or already in the url\n if (disableQualityByDPR && quality) {\n return dpr => `${url}&q=${quality}&dpr=${dpr} ${dpr}x`;\n }\n if (disableQualityByDPR) {\n return dpr => `${url}&dpr=${dpr} ${dpr}x`;\n }\n return dpr =>\n `${url}&q=${quality || CONSTANTS[`q_dpr${dpr}`]}&dpr=${dpr} ${dpr}x`;\n}\n\n/**\n * Build a imgix source url with parameters from a raw url\n */\nfunction buildSrc({\n src: inputSrc,\n width,\n height,\n disableLibraryParam,\n disableSrcSet,\n type,\n imgixParams,\n aspectRatio,\n disableQualityByDPR\n}) {\n const fixedSize = width != null || height != null;\n\n const [rawSrc, params] = extractQueryParams(inputSrc);\n\n const srcOptions = {\n ...params,\n ...imgixParams,\n ...(disableLibraryParam ? {} : { ixlib: `react-${PACKAGE_VERSION}` }),\n ...(fixedSize && height ? { height } : {}),\n ...(fixedSize && width ? { width } : {})\n };\n\n const src = constructUrl(rawSrc, srcOptions);\n\n let srcSet;\n\n if (disableSrcSet) {\n srcSet = src;\n } else {\n if (fixedSize) {\n const { q, ...urlParams } = srcOptions;\n const constructedUrl = constructUrl(rawSrc, urlParams);\n\n const buildDprSrc = buildDprSrcFunction(\n constructedUrl,\n disableQualityByDPR,\n q\n );\n srcSet = [1, 2, 3, 4, 5].map(buildDprSrc).join(\", \");\n } else {\n const { width, w, height, ...urlParams } = srcOptions;\n const constructedUrl = constructUrl(rawSrc, urlParams);\n\n const aspectRatioDecimal = parseAspectRatio(aspectRatio);\n // false indicates invalid\n let showARWarning = aspectRatio != null && aspectRatioDecimal === false;\n\n const buildSrcSetPair = buildSrcSetPairFunction(\n constructedUrl,\n aspectRatioDecimal,\n height\n );\n srcSet = targetWidths.map(buildSrcSetPair).join(\", \");\n\n if (showARWarning && config.warnings.invalidARFormat) {\n console.warn(\n `[Imgix] The aspect ratio passed (\"${aspectRatio}\") is not in the correct format. The correct format is \"W:H\".`\n );\n }\n }\n }\n\n return {\n src,\n srcSet\n };\n}\n\n/**\n * Combines default imgix params with custom imgix params to make a imgix params config object\n */\nfunction imgixParams(props) {\n const params = {\n ...defaultImgixParams,\n ...props.imgixParams\n };\n\n let fit = false;\n if (params.crop != null) fit = \"crop\";\n if (params.fit) fit = params.fit;\n\n if (params.ar) {\n delete params.ar;\n }\n\n return {\n ...params,\n fit\n };\n}\n\n/**\n * React component used to render elements with Imgix\n */\nclass ReactImgix extends Component {\n static propTypes = {\n ...SHARED_IMGIX_AND_SOURCE_PROP_TYPES\n };\n static defaultProps = {\n disableSrcSet: false,\n onMounted: noop\n };\n\n componentDidMount = () => {\n const node = ReactDOM.findDOMNode(this);\n this.props.onMounted(node);\n };\n\n render() {\n const { disableSrcSet, type, width, height } = this.props;\n\n // Pre-render checks\n if (NODE_ENV !== \"production\" && config.warnings.sizesAttribute) {\n if (\n this.props.width == null &&\n this.props.height == null &&\n this.props.sizes == null &&\n !this.props._inPicture\n ) {\n console.warn(\n \"If width and height are not set, a sizes attribute should be passed.\"\n );\n }\n }\n\n const htmlAttributes = this.props.htmlAttributes || {};\n\n const { src, srcSet } = buildSrc({\n ...this.props,\n type: \"img\",\n imgixParams: imgixParams(this.props),\n aspectRatio: (this.props.imgixParams || {}).ar\n });\n\n const attributeConfig = {\n ...defaultAttributeMap,\n ...this.props.attributeConfig\n };\n const childProps = {\n ...this.props.htmlAttributes,\n [attributeConfig.sizes]: this.props.sizes,\n className: this.props.className,\n width: width <= 1 ? null : width,\n height: height <= 1 ? null : height,\n [attributeConfig.src]: src\n };\n if (!disableSrcSet) {\n childProps[attributeConfig.srcSet] = srcSet;\n }\n\n if (type === \"bg\") {\n // TODO: Remove in v9\n throw new Error(\n `type='bg' has been removed in this version of react-imgix. If you would like this re-implemented please give this issues a thumbs up: https://github.com/imgix/react-imgix/issues/160`\n );\n }\n\n if (type === \"source\") {\n // TODO: Remove in v9\n throw new Error(\n `type='source' has been changed to . Please see the upgrade guide at: https://github.com/imgix/react-imgix#7x-to-80`\n );\n }\n if (type === \"picture\") {\n // TODO: Remove in v9\n throw new Error(\n `type='picture' has been changed to . Please see the upgrade guide at: https://github.com/imgix/react-imgix#7x-to-80`\n );\n }\n return ;\n }\n}\nReactImgix.displayName = \"ReactImgix\";\n\n/**\n * React component used to render