tethysfaceid
Version:
1 lines • 40.2 kB
JSON
{"ast":null,"code":"\"use strict\";\n\nvar _slicedToArray = require(\"/Users/dhrumil1/Documents/Tethy/online-verification/node_modules/@babel/runtime/helpers/slicedToArray\");\n\nvar _toConsumableArray = require(\"/Users/dhrumil1/Documents/Tethy/online-verification/node_modules/@babel/runtime/helpers/toConsumableArray\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = Image;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _toBase = require(\"../next-server/lib/to-base-64\");\n\nvar _imageConfig = require(\"../next-server/server/image-config\");\n\nvar _useIntersection = require(\"./use-intersection\");\n\nif (false) {\n ;\n global.__NEXT_IMAGE_IMPORTED = true;\n}\n\nvar VALID_LOADING_VALUES = ['lazy', 'eager', undefined];\nvar loaders = new Map([['imgix', imgixLoader], ['cloudinary', cloudinaryLoader], ['akamai', akamaiLoader], ['default', defaultLoader]]);\nvar VALID_LAYOUT_VALUES = ['fill', 'fixed', 'intrinsic', 'responsive', undefined];\n\nvar _ref2 = process.env.__NEXT_IMAGE_OPTS || _imageConfig.imageConfigDefault,\n configDeviceSizes = _ref2.deviceSizes,\n configImageSizes = _ref2.imageSizes,\n configLoader = _ref2.loader,\n configPath = _ref2.path,\n configDomains = _ref2.domains; // sort smallest to largest\n\n\nvar allSizes = [].concat(_toConsumableArray(configDeviceSizes), _toConsumableArray(configImageSizes));\nconfigDeviceSizes.sort(function (a, b) {\n return a - b;\n});\nallSizes.sort(function (a, b) {\n return a - b;\n});\n\nfunction getWidths(width, layout) {\n if (typeof width !== 'number' || layout === 'fill' || layout === 'responsive') {\n return {\n widths: configDeviceSizes,\n kind: 'w'\n };\n }\n\n var widths = _toConsumableArray(new Set([width, width * 2, width * 3].map(function (w) {\n return allSizes.find(function (p) {\n return p >= w;\n }) || allSizes[allSizes.length - 1];\n })));\n\n return {\n widths: widths,\n kind: 'x'\n };\n}\n\nfunction callLoader(loaderProps) {\n var load = loaders.get(configLoader);\n\n if (load) {\n return load((0, _extends2[\"default\"])({\n root: configPath\n }, loaderProps));\n }\n\n throw new Error(\"Unknown \\\"loader\\\" found in \\\"next.config.js\\\". Expected: \".concat(_imageConfig.VALID_LOADERS.join(', '), \". Received: \").concat(configLoader));\n}\n\nfunction generateImgAttrs(_ref3) {\n var src = _ref3.src,\n unoptimized = _ref3.unoptimized,\n layout = _ref3.layout,\n width = _ref3.width,\n quality = _ref3.quality,\n sizes = _ref3.sizes;\n\n if (unoptimized) {\n return {\n src: src\n };\n }\n\n var _getWidths = getWidths(width, layout),\n widths = _getWidths.widths,\n kind = _getWidths.kind;\n\n var last = widths.length - 1;\n var srcSet = widths.map(function (w, i) {\n return \"\".concat(callLoader({\n src: src,\n quality: quality,\n width: w\n }), \" \").concat(kind === 'w' ? w : i + 1).concat(kind);\n }).join(', ');\n\n if (!sizes && kind === 'w') {\n sizes = widths.map(function (w, i) {\n return i === last ? \"\".concat(w, \"px\") : \"(max-width: \".concat(w, \"px) \").concat(w, \"px\");\n }).join(', ');\n }\n\n src = callLoader({\n src: src,\n quality: quality,\n width: widths[last]\n });\n return {\n src: src,\n sizes: sizes,\n srcSet: srcSet\n };\n}\n\nfunction getInt(x) {\n if (typeof x === 'number') {\n return x;\n }\n\n if (typeof x === 'string') {\n return parseInt(x, 10);\n }\n\n return undefined;\n}\n\nfunction Image(_ref) {\n var src = _ref.src,\n sizes = _ref.sizes,\n _ref$unoptimized = _ref.unoptimized,\n unoptimized = _ref$unoptimized === void 0 ? false : _ref$unoptimized,\n _ref$priority = _ref.priority,\n priority = _ref$priority === void 0 ? false : _ref$priority,\n loading = _ref.loading,\n className = _ref.className,\n quality = _ref.quality,\n width = _ref.width,\n height = _ref.height,\n objectFit = _ref.objectFit,\n objectPosition = _ref.objectPosition,\n all = (0, _objectWithoutPropertiesLoose2[\"default\"])(_ref, [\"src\", \"sizes\", \"unoptimized\", \"priority\", \"loading\", \"className\", \"quality\", \"width\", \"height\", \"objectFit\", \"objectPosition\"]);\n var rest = all;\n var layout = sizes ? 'responsive' : 'intrinsic';\n var unsized = false;\n\n if ('unsized' in rest) {\n unsized = Boolean(rest.unsized); // Remove property so it's not spread into image:\n\n delete rest['unsized'];\n } else if ('layout' in rest) {\n // Override default layout if the user specified one:\n if (rest.layout) layout = rest.layout; // Remove property so it's not spread into image:\n\n delete rest['layout'];\n }\n\n if (true) {\n if (!src) {\n throw new Error(\"Image is missing required \\\"src\\\" property. Make sure you pass \\\"src\\\" in props to the `next/image` component. Received: \".concat(JSON.stringify({\n width: width,\n height: height,\n quality: quality\n })));\n }\n\n if (!VALID_LAYOUT_VALUES.includes(layout)) {\n throw new Error(\"Image with src \\\"\".concat(src, \"\\\" has invalid \\\"layout\\\" property. Provided \\\"\").concat(layout, \"\\\" should be one of \").concat(VALID_LAYOUT_VALUES.map(String).join(','), \".\"));\n }\n\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\"Image with src \\\"\".concat(src, \"\\\" has invalid \\\"loading\\\" property. Provided \\\"\").concat(loading, \"\\\" should be one of \").concat(VALID_LOADING_VALUES.map(String).join(','), \".\"));\n }\n\n if (priority && loading === 'lazy') {\n throw new Error(\"Image with src \\\"\".concat(src, \"\\\" has both \\\"priority\\\" and \\\"loading='lazy'\\\" properties. Only one should be used.\"));\n }\n\n if (unsized) {\n throw new Error(\"Image with src \\\"\".concat(src, \"\\\" has deprecated \\\"unsized\\\" property, which was removed in favor of the \\\"layout='fill'\\\" property\"));\n }\n }\n\n var isLazy = !priority && (loading === 'lazy' || typeof loading === 'undefined');\n\n if (src && src.startsWith('data:')) {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n\n var _ref4 = (0, _useIntersection.useIntersection)({\n rootMargin: '200px',\n disabled: !isLazy\n }),\n _ref5 = _slicedToArray(_ref4, 2),\n setRef = _ref5[0],\n isIntersected = _ref5[1];\n\n var isVisible = !isLazy || isIntersected;\n var widthInt = getInt(width);\n var heightInt = getInt(height);\n var qualityInt = getInt(quality);\n var wrapperStyle;\n var sizerStyle;\n var sizerSvg;\n var imgStyle = {\n visibility: isVisible ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n boxSizing: 'border-box',\n padding: 0,\n border: 'none',\n margin: 'auto',\n display: 'block',\n width: 0,\n height: 0,\n minWidth: '100%',\n maxWidth: '100%',\n minHeight: '100%',\n maxHeight: '100%',\n objectFit: objectFit,\n objectPosition: objectPosition\n };\n\n if (typeof widthInt !== 'undefined' && typeof heightInt !== 'undefined' && layout !== 'fill') {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" />\n var quotient = heightInt / widthInt;\n var paddingTop = isNaN(quotient) ? '100%' : \"\".concat(quotient * 100, \"%\");\n\n if (layout === 'responsive') {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" layout=\"responsive\" />\n wrapperStyle = {\n display: 'block',\n overflow: 'hidden',\n position: 'relative',\n boxSizing: 'border-box',\n margin: 0\n };\n sizerStyle = {\n display: 'block',\n boxSizing: 'border-box',\n paddingTop: paddingTop\n };\n } else if (layout === 'intrinsic') {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" layout=\"intrinsic\" />\n wrapperStyle = {\n display: 'inline-block',\n maxWidth: '100%',\n overflow: 'hidden',\n position: 'relative',\n boxSizing: 'border-box',\n margin: 0\n };\n sizerStyle = {\n boxSizing: 'border-box',\n display: 'block',\n maxWidth: '100%'\n };\n sizerSvg = \"<svg width=\\\"\".concat(widthInt, \"\\\" height=\\\"\").concat(heightInt, \"\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\"/>\");\n } else if (layout === 'fixed') {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" layout=\"fixed\" />\n wrapperStyle = {\n overflow: 'hidden',\n boxSizing: 'border-box',\n display: 'inline-block',\n position: 'relative',\n width: widthInt,\n height: heightInt\n };\n }\n } else if (typeof widthInt === 'undefined' && typeof heightInt === 'undefined' && layout === 'fill') {\n // <Image src=\"i.png\" layout=\"fill\" />\n wrapperStyle = {\n display: 'block',\n overflow: 'hidden',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n boxSizing: 'border-box',\n margin: 0\n };\n } else {\n // <Image src=\"i.png\" />\n if (true) {\n throw new Error(\"Image with src \\\"\".concat(src, \"\\\" must use \\\"width\\\" and \\\"height\\\" properties or \\\"layout='fill'\\\" property.\"));\n }\n }\n\n var imgAttributes = {\n src: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'\n };\n\n if (isVisible) {\n imgAttributes = generateImgAttrs({\n src: src,\n unoptimized: unoptimized,\n layout: layout,\n width: widthInt,\n quality: qualityInt,\n sizes: sizes\n });\n }\n\n if (unsized) {\n wrapperStyle = undefined;\n sizerStyle = undefined;\n imgStyle = undefined;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: wrapperStyle\n }, sizerStyle ? /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: sizerStyle\n }, sizerSvg ? /*#__PURE__*/_react[\"default\"].createElement(\"img\", {\n style: {\n maxWidth: '100%',\n display: 'block'\n },\n alt: \"\",\n \"aria-hidden\": true,\n role: \"presentation\",\n src: \"data:image/svg+xml;base64,\".concat((0, _toBase.toBase64)(sizerSvg))\n }) : null) : null, /*#__PURE__*/_react[\"default\"].createElement(\"img\", Object.assign({}, rest, imgAttributes, {\n decoding: \"async\",\n className: className,\n ref: setRef,\n style: imgStyle\n })));\n} //BUILT IN LOADERS\n\n\n_c = Image;\n\nfunction normalizeSrc(src) {\n return src[0] === '/' ? src.slice(1) : src;\n}\n\nfunction imgixLoader(_ref6) {\n var root = _ref6.root,\n src = _ref6.src,\n width = _ref6.width,\n quality = _ref6.quality;\n // Demo: https://static.imgix.net/daisy.png?format=auto&fit=max&w=300\n var params = ['auto=format', 'fit=max', 'w=' + width];\n var paramsString = '';\n\n if (quality) {\n params.push('q=' + quality);\n }\n\n if (params.length) {\n paramsString = '?' + params.join('&');\n }\n\n return \"\".concat(root).concat(normalizeSrc(src)).concat(paramsString);\n}\n\nfunction akamaiLoader(_ref7) {\n var root = _ref7.root,\n src = _ref7.src,\n width = _ref7.width;\n return \"\".concat(root).concat(normalizeSrc(src), \"?imwidth=\").concat(width);\n}\n\nfunction cloudinaryLoader(_ref8) {\n var root = _ref8.root,\n src = _ref8.src,\n width = _ref8.width,\n quality = _ref8.quality;\n // Demo: https://res.cloudinary.com/demo/image/upload/w_300,c_limit/turtles.jpg\n var params = ['f_auto', 'c_limit', 'w_' + width];\n var paramsString = '';\n\n if (quality) {\n params.push('q_' + quality);\n }\n\n if (params.length) {\n paramsString = params.join(',') + '/';\n }\n\n return \"\".concat(root).concat(paramsString).concat(normalizeSrc(src));\n}\n\nfunction defaultLoader(_ref9) {\n var root = _ref9.root,\n src = _ref9.src,\n width = _ref9.width,\n quality = _ref9.quality;\n\n if (true) {\n var missingValues = []; // these should always be provided but make sure they are\n\n if (!src) missingValues.push('src');\n if (!width) missingValues.push('width');\n\n if (missingValues.length > 0) {\n throw new Error(\"Next Image Optimization requires \".concat(missingValues.join(', '), \" to be provided. Make sure you pass them as props to the `next/image` component. Received: \").concat(JSON.stringify({\n src: src,\n width: width,\n quality: quality\n })));\n }\n\n if (src.startsWith('//')) {\n throw new Error(\"Failed to parse src \\\"\".concat(src, \"\\\" on `next/image`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)\"));\n }\n\n if (!src.startsWith('/') && configDomains) {\n var parsedSrc;\n\n try {\n parsedSrc = new URL(src);\n } catch (err) {\n console.error(err);\n throw new Error(\"Failed to parse src \\\"\".concat(src, \"\\\" on `next/image`, if using relative image it must start with a leading slash \\\"/\\\" or be an absolute URL (http:// or https://)\"));\n }\n\n if (!configDomains.includes(parsedSrc.hostname)) {\n throw new Error(\"Invalid src prop (\".concat(src, \") on `next/image`, hostname \\\"\").concat(parsedSrc.hostname, \"\\\" is not configured under images in your `next.config.js`\\n\") + \"See more info: https://err.sh/next.js/next-image-unconfigured-host\");\n }\n }\n }\n\n return \"\".concat(root, \"?url=\").concat(encodeURIComponent(src), \"&w=\").concat(width, \"&q=\").concat(quality || 75);\n}\n\nvar _c;\n\n$RefreshReg$(_c, \"Image\");","map":{"version":3,"sources":["../../client/image.tsx"],"names":["global","VALID_LOADING_VALUES","loaders","VALID_LAYOUT_VALUES","deviceSizes","imageSizes","loader","path","domains","process","imageConfigDefault","allSizes","configDeviceSizes","a","layout","widths","kind","width","w","p","load","root","VALID_LOADERS","src","getWidths","last","srcSet","callLoader","quality","i","sizes","parseInt","unoptimized","priority","all","rest","unsized","Boolean","JSON","height","loading","isLazy","rootMargin","disabled","isVisible","widthInt","getInt","heightInt","qualityInt","imgStyle","visibility","position","top","left","bottom","right","boxSizing","padding","border","margin","display","minWidth","maxWidth","minHeight","maxHeight","objectFit","objectPosition","quotient","paddingTop","isNaN","wrapperStyle","overflow","sizerStyle","sizerSvg","imgAttributes","generateImgAttrs","params","paramsString","normalizeSrc","missingValues","parsedSrc","console","configDomains","encodeURIComponent"],"mappings":"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","sourcesContent":["import React from 'react'\nimport { toBase64 } from '../next-server/lib/to-base-64'\nimport {\n ImageConfig,\n imageConfigDefault,\n LoaderValue,\n VALID_LOADERS,\n} from '../next-server/server/image-config'\nimport { useIntersection } from './use-intersection'\n\nif (typeof window === 'undefined') {\n ;(global as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\ntype LoadingValue = typeof VALID_LOADING_VALUES[number]\n\nconst loaders = new Map<LoaderValue, (props: LoaderProps) => string>([\n ['imgix', imgixLoader],\n ['cloudinary', cloudinaryLoader],\n ['akamai', akamaiLoader],\n ['default', defaultLoader],\n])\n\nconst VALID_LAYOUT_VALUES = [\n 'fill',\n 'fixed',\n 'intrinsic',\n 'responsive',\n undefined,\n] as const\ntype LayoutValue = typeof VALID_LAYOUT_VALUES[number]\n\ntype ImgElementStyle = NonNullable<JSX.IntrinsicElements['img']['style']>\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'width' | 'height' | 'loading' | 'style'\n> & {\n src: string\n quality?: number | string\n priority?: boolean\n loading?: LoadingValue\n unoptimized?: boolean\n objectFit?: ImgElementStyle['objectFit']\n objectPosition?: ImgElementStyle['objectPosition']\n} & (\n | {\n width?: never\n height?: never\n /** @deprecated Use `layout=\"fill\"` instead */\n unsized: true\n }\n | { width?: never; height?: never; layout: 'fill' }\n | {\n width: number | string\n height: number | string\n layout?: Exclude<LayoutValue, 'fill'>\n }\n )\n\nconst {\n deviceSizes: configDeviceSizes,\n imageSizes: configImageSizes,\n loader: configLoader,\n path: configPath,\n domains: configDomains,\n} =\n ((process.env.__NEXT_IMAGE_OPTS as any) as ImageConfig) || imageConfigDefault\n// sort smallest to largest\nconst allSizes = [...configDeviceSizes, ...configImageSizes]\nconfigDeviceSizes.sort((a, b) => a - b)\nallSizes.sort((a, b) => a - b)\n\nfunction getWidths(\n width: number | undefined,\n layout: LayoutValue\n): { widths: number[]; kind: 'w' | 'x' } {\n if (\n typeof width !== 'number' ||\n layout === 'fill' ||\n layout === 'responsive'\n ) {\n return { widths: configDeviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n [width, width * 2, width * 3].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype CallLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nfunction callLoader(loaderProps: CallLoaderProps) {\n const load = loaders.get(configLoader)\n if (load) {\n return load({ root: configPath, ...loaderProps })\n }\n throw new Error(\n `Unknown \"loader\" found in \"next.config.js\". Expected: ${VALID_LOADERS.join(\n ', '\n )}. Received: ${configLoader}`\n )\n}\n\ntype GenImgAttrsData = {\n src: string\n unoptimized: boolean\n layout: LayoutValue\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = Pick<\n JSX.IntrinsicElements['img'],\n 'src' | 'sizes' | 'srcSet'\n>\n\nfunction generateImgAttrs({\n src,\n unoptimized,\n layout,\n width,\n quality,\n sizes,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src }\n }\n\n const { widths, kind } = getWidths(width, layout)\n const last = widths.length - 1\n\n const srcSet = widths\n .map(\n (w, i) =>\n `${callLoader({ src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', ')\n\n if (!sizes && kind === 'w') {\n sizes = widths\n .map((w, i) => (i === last ? `${w}px` : `(max-width: ${w}px) ${w}px`))\n .join(', ')\n }\n\n src = callLoader({ src, quality, width: widths[last] })\n\n return { src, sizes, srcSet }\n}\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'number') {\n return x\n }\n if (typeof x === 'string') {\n return parseInt(x, 10)\n }\n return undefined\n}\n\nexport default function Image({\n src,\n sizes,\n unoptimized = false,\n priority = false,\n loading,\n className,\n quality,\n width,\n height,\n objectFit,\n objectPosition,\n ...all\n}: ImageProps) {\n let rest: Partial<ImageProps> = all\n let layout: NonNullable<LayoutValue> = sizes ? 'responsive' : 'intrinsic'\n let unsized = false\n if ('unsized' in rest) {\n unsized = Boolean(rest.unsized)\n // Remove property so it's not spread into image:\n delete rest['unsized']\n } else if ('layout' in rest) {\n // Override default layout if the user specified one:\n if (rest.layout) layout = rest.layout\n\n // Remove property so it's not spread into image:\n delete rest['layout']\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n throw new Error(\n `Image is missing required \"src\" property. Make sure you pass \"src\" in props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { width, height, quality }\n )}`\n )\n }\n if (!VALID_LAYOUT_VALUES.includes(layout)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"layout\" property. Provided \"${layout}\" should be one of ${VALID_LAYOUT_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (unsized) {\n throw new Error(\n `Image with src \"${src}\" has deprecated \"unsized\" property, which was removed in favor of the \"layout='fill'\" property`\n )\n }\n }\n\n let isLazy =\n !priority && (loading === 'lazy' || typeof loading === 'undefined')\n if (src && src.startsWith('data:')) {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n\n const [setRef, isIntersected] = useIntersection<HTMLImageElement>({\n rootMargin: '200px',\n disabled: !isLazy,\n })\n const isVisible = !isLazy || isIntersected\n\n const widthInt = getInt(width)\n const heightInt = getInt(height)\n const qualityInt = getInt(quality)\n\n let wrapperStyle: JSX.IntrinsicElements['div']['style'] | undefined\n let sizerStyle: JSX.IntrinsicElements['div']['style'] | undefined\n let sizerSvg: string | undefined\n let imgStyle: ImgElementStyle | undefined = {\n visibility: isVisible ? 'visible' : 'hidden',\n\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n\n boxSizing: 'border-box',\n padding: 0,\n border: 'none',\n margin: 'auto',\n\n display: 'block',\n width: 0,\n height: 0,\n minWidth: '100%',\n maxWidth: '100%',\n minHeight: '100%',\n maxHeight: '100%',\n\n objectFit,\n objectPosition,\n }\n if (\n typeof widthInt !== 'undefined' &&\n typeof heightInt !== 'undefined' &&\n layout !== 'fill'\n ) {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" />\n const quotient = heightInt / widthInt\n const paddingTop = isNaN(quotient) ? '100%' : `${quotient * 100}%`\n if (layout === 'responsive') {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" layout=\"responsive\" />\n wrapperStyle = {\n display: 'block',\n overflow: 'hidden',\n position: 'relative',\n\n boxSizing: 'border-box',\n margin: 0,\n }\n sizerStyle = { display: 'block', boxSizing: 'border-box', paddingTop }\n } else if (layout === 'intrinsic') {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" layout=\"intrinsic\" />\n wrapperStyle = {\n display: 'inline-block',\n maxWidth: '100%',\n overflow: 'hidden',\n position: 'relative',\n boxSizing: 'border-box',\n margin: 0,\n }\n sizerStyle = {\n boxSizing: 'border-box',\n display: 'block',\n maxWidth: '100%',\n }\n sizerSvg = `<svg width=\"${widthInt}\" height=\"${heightInt}\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"/>`\n } else if (layout === 'fixed') {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" layout=\"fixed\" />\n wrapperStyle = {\n overflow: 'hidden',\n boxSizing: 'border-box',\n display: 'inline-block',\n position: 'relative',\n width: widthInt,\n height: heightInt,\n }\n }\n } else if (\n typeof widthInt === 'undefined' &&\n typeof heightInt === 'undefined' &&\n layout === 'fill'\n ) {\n // <Image src=\"i.png\" layout=\"fill\" />\n wrapperStyle = {\n display: 'block',\n overflow: 'hidden',\n\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n\n boxSizing: 'border-box',\n margin: 0,\n }\n } else {\n // <Image src=\"i.png\" />\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `Image with src \"${src}\" must use \"width\" and \"height\" properties or \"layout='fill'\" property.`\n )\n }\n }\n\n let imgAttributes: GenImgAttrsResult = {\n src:\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',\n }\n\n if (isVisible) {\n imgAttributes = generateImgAttrs({\n src,\n unoptimized,\n layout,\n width: widthInt,\n quality: qualityInt,\n sizes,\n })\n }\n\n if (unsized) {\n wrapperStyle = undefined\n sizerStyle = undefined\n imgStyle = undefined\n }\n return (\n <div style={wrapperStyle}>\n {sizerStyle ? (\n <div style={sizerStyle}>\n {sizerSvg ? (\n <img\n style={{ maxWidth: '100%', display: 'block' }}\n alt=\"\"\n aria-hidden={true}\n role=\"presentation\"\n src={`data:image/svg+xml;base64,${toBase64(sizerSvg)}`}\n />\n ) : null}\n </div>\n ) : null}\n <img\n {...rest}\n {...imgAttributes}\n decoding=\"async\"\n className={className}\n ref={setRef}\n style={imgStyle}\n />\n </div>\n )\n}\n\n//BUILT IN LOADERS\n\ntype LoaderProps = CallLoaderProps & { root: string }\n\nfunction normalizeSrc(src: string) {\n return src[0] === '/' ? src.slice(1) : src\n}\n\nfunction imgixLoader({ root, src, width, quality }: LoaderProps): string {\n // Demo: https://static.imgix.net/daisy.png?format=auto&fit=max&w=300\n const params = ['auto=format', 'fit=max', 'w=' + width]\n let paramsString = ''\n if (quality) {\n params.push('q=' + quality)\n }\n\n if (params.length) {\n paramsString = '?' + params.join('&')\n }\n return `${root}${normalizeSrc(src)}${paramsString}`\n}\n\nfunction akamaiLoader({ root, src, width }: LoaderProps): string {\n return `${root}${normalizeSrc(src)}?imwidth=${width}`\n}\n\nfunction cloudinaryLoader({ root, src, width, quality }: LoaderProps): string {\n // Demo: https://res.cloudinary.com/demo/image/upload/w_300,c_limit/turtles.jpg\n const params = ['f_auto', 'c_limit', 'w_' + width]\n let paramsString = ''\n if (quality) {\n params.push('q_' + quality)\n }\n if (params.length) {\n paramsString = params.join(',') + '/'\n }\n return `${root}${paramsString}${normalizeSrc(src)}`\n}\n\nfunction defaultLoader({ root, src, width, quality }: LoaderProps): string {\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (!src.startsWith('/') && configDomains) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (!configDomains.includes(parsedSrc.hostname)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://err.sh/next.js/next-image-unconfigured-host`\n )\n }\n }\n }\n\n return `${root}?url=${encodeURIComponent(src)}&w=${width}&q=${quality || 75}`\n}\n"]},"metadata":{},"sourceType":"script"}