Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
1 line
No EOL
56 KiB
Text
1 line
No EOL
56 KiB
Text
{"version":3,"sources":["../../../src/client/legacy/image.tsx"],"sourcesContent":["'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n type JSX,\n} from 'react'\nimport * as ReactDOM from 'react-dom'\nimport Head from '../../shared/lib/head'\nimport {\n imageConfigDefault,\n VALID_LOADERS,\n} from '../../shared/lib/image-config'\nimport type {\n ImageConfigComplete,\n LoaderValue,\n} from '../../shared/lib/image-config'\nimport { useIntersection } from '../use-intersection'\nimport { ImageConfigContext } from '../../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../../shared/lib/utils/warn-once'\nimport { normalizePathTrailingSlash } from '../normalize-trailing-slash'\nimport { findClosestQuality } from '../../shared/lib/find-closest-quality'\n\nfunction normalizeSrc(src: string): string {\n return src[0] === '/' ? src.slice(1) : src\n}\n\nconst supportsFloat = typeof ReactDOM.preload === 'function'\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\nconst loadedImageURLs = new Set<string>()\nconst allImgs = new Map<\n string,\n { src: string; priority: boolean; placeholder: string }\n>()\nlet perfObserver: PerformanceObserver | undefined\nconst emptyDataURL =\n 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & { allSizes: number[] }\nexport type ImageLoader = (resolverProps: ImageLoaderProps) => string\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (\n resolverProps: ImageLoaderPropsWithConfig\n) => string\ntype ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nfunction imgixLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n // Demo: https://static.imgix.net/daisy.png?auto=format&fit=max&w=300\n const url = new URL(`${config.path}${normalizeSrc(src)}`)\n const params = url.searchParams\n\n // auto params can be combined with comma separation, or reiteration\n params.set('auto', params.getAll('auto').join(',') || 'format')\n params.set('fit', params.get('fit') || 'max')\n params.set('w', params.get('w') || width.toString())\n\n if (quality) {\n params.set('q', quality.toString())\n }\n\n return url.href\n}\n\nfunction akamaiLoader({\n config,\n src,\n width,\n}: ImageLoaderPropsWithConfig): string {\n return `${config.path}${normalizeSrc(src)}?imwidth=${width}`\n}\n\nfunction cloudinaryLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n // Demo: https://res.cloudinary.com/demo/image/upload/w_300,c_limit,q_auto/turtles.jpg\n const params = ['f_auto', 'c_limit', 'w_' + width, 'q_' + (quality || 'auto')]\n const paramsString = params.join(',') + '/'\n return `${config.path}${paramsString}${normalizeSrc(src)}`\n}\n\nfunction customLoader({ src }: ImageLoaderProps): string {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n}\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (!config.dangerouslyAllowSVG && src.split('?', 1)[0].endsWith('.svg')) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n return src\n }\n\n if (\n src.startsWith('/') &&\n src.includes('?') &&\n config.localPatterns?.length === 1 &&\n config.localPatterns[0].pathname === '**' &&\n config.localPatterns[0].search === ''\n ) {\n throw new Error(\n `Image with src \"${src}\" is using a query string which is not configured in images.localPatterns.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n\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('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('../../shared/lib/match-local-pattern') as typeof import('../../shared/lib/match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\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 (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('../../shared/lib/match-remote-pattern') as typeof import('../../shared/lib/match-remote-pattern')\n if (!hasRemoteMatch(config.domains, config.remotePatterns, parsedSrc)) {\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://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n }\n\n const q = findClosestQuality(quality, config)\n\n return `${normalizePathTrailingSlash(config.path)}?url=${encodeURIComponent(\n src\n )}&w=${width}&q=${q}`\n}\n\nconst loaders = new Map<\n LoaderValue,\n (props: ImageLoaderPropsWithConfig) => string\n>([\n ['default', defaultLoader],\n ['imgix', imgixLoader],\n ['cloudinary', cloudinaryLoader],\n ['akamai', akamaiLoader],\n ['custom', customLoader],\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 PlaceholderValue = 'blur' | 'empty'\n\ntype OnLoadingComplete = (result: {\n naturalWidth: number\n naturalHeight: number\n}) => void\n\ntype ImgElementStyle = NonNullable<JSX.IntrinsicElements['img']['style']>\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n}\n\ninterface StaticRequire {\n default: StaticImageData\n}\n\ntype StaticImport = StaticRequire | StaticImageData\n\ntype SafeNumber = number | `${number}`\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n width?: SafeNumber\n height?: SafeNumber\n layout?: LayoutValue\n loader?: ImageLoader\n quality?: SafeNumber\n priority?: boolean\n loading?: LoadingValue\n lazyRoot?: React.RefObject<HTMLElement | null> | null\n lazyBoundary?: string\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n objectFit?: ImgElementStyle['objectFit']\n objectPosition?: ImgElementStyle['objectPosition']\n onLoadingComplete?: OnLoadingComplete\n}\n\ntype ImageElementProps = Omit<ImageProps, 'src' | 'loader'> & {\n srcString: string\n imgAttributes: GenImgAttrsResult\n heightInt: number | undefined\n widthInt: number | undefined\n qualityInt: number | undefined\n layout: LayoutValue\n imgStyle: ImgElementStyle\n blurStyle: ImgElementStyle\n isLazy: boolean\n loading: LoadingValue\n config: ImageConfig\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n placeholder: PlaceholderValue\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>\n setBlurComplete: (b: boolean) => void\n setIntersection: (img: HTMLImageElement | null) => void\n isVisible: boolean\n noscriptSizes: string | undefined\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n layout: LayoutValue,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes && (layout === 'fill' || layout === 'responsive')) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (\n typeof width !== 'number' ||\n layout === 'fill' ||\n layout === 'responsive'\n ) {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\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 GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n layout: LayoutValue\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n layout,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, layout, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\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\nfunction defaultImageLoader(loaderProps: ImageLoaderPropsWithConfig) {\n const loaderKey = loaderProps.config?.loader || 'default'\n const load = loaders.get(loaderKey)\n if (load) {\n return load(loaderProps)\n }\n throw new Error(\n `Unknown \"loader\" found in \"next.config.js\". Expected: ${VALID_LOADERS.join(\n ', '\n )}. Received: ${loaderKey}`\n )\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n src: string,\n layout: LayoutValue,\n placeholder: PlaceholderValue,\n onLoadingCompleteRef: React.MutableRefObject<OnLoadingComplete | undefined>,\n setBlurComplete: (b: boolean) => void\n) {\n if (!img || img.src === emptyDataURL || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentNode) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n loadedImageURLs.add(src)\n if (placeholder === 'blur') {\n setBlurComplete(true)\n }\n if (onLoadingCompleteRef?.current) {\n const { naturalWidth, naturalHeight } = img\n // Pass back read-only primitive values but not the\n // underlying DOM element because it could be misused.\n onLoadingCompleteRef.current({ naturalWidth, naturalHeight })\n }\n if (process.env.NODE_ENV !== 'production') {\n if (img.parentElement?.parentElement) {\n const parent = getComputedStyle(img.parentElement.parentElement)\n if (!parent.position) {\n // The parent has not been rendered to the dom yet and therefore it has no position. Skip the warnings for such cases.\n } else if (layout === 'responsive' && parent.display === 'flex') {\n warnOnce(\n `Image with src \"${src}\" may not render properly as a child of a flex container. Consider wrapping the image with a div to configure the width.`\n )\n } else if (\n layout === 'fill' &&\n parent.position !== 'relative' &&\n parent.position !== 'fixed' &&\n parent.position !== 'absolute'\n ) {\n warnOnce(\n `Image with src \"${src}\" may not render properly with a parent using position:\"${parent.position}\". Consider changing the parent style to position:\"relative\" with a width and height.`\n )\n }\n }\n }\n })\n}\n\nconst ImageElement = ({\n imgAttributes,\n heightInt,\n widthInt,\n qualityInt,\n layout,\n className,\n imgStyle,\n blurStyle,\n isLazy,\n placeholder,\n loading,\n srcString,\n config,\n unoptimized,\n loader,\n onLoadingCompleteRef,\n setBlurComplete,\n setIntersection,\n onLoad,\n onError,\n isVisible,\n noscriptSizes,\n ...rest\n}: ImageElementProps) => {\n loading = isLazy ? 'lazy' : loading\n return (\n <>\n <img\n {...rest}\n {...imgAttributes}\n decoding=\"async\"\n data-nimg={layout}\n className={className}\n style={{ ...imgStyle, ...blurStyle }}\n ref={useCallback(\n (img: ImgElementWithDataProp) => {\n if (process.env.NODE_ENV !== 'production') {\n if (img && !srcString) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n }\n setIntersection(img)\n if (img?.complete) {\n handleLoading(\n img,\n srcString,\n layout,\n placeholder,\n onLoadingCompleteRef,\n setBlurComplete\n )\n }\n },\n [\n setIntersection,\n srcString,\n layout,\n placeholder,\n onLoadingCompleteRef,\n setBlurComplete,\n ]\n )}\n onLoad={(event) => {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n srcString,\n layout,\n placeholder,\n onLoadingCompleteRef,\n setBlurComplete\n )\n if (onLoad) {\n onLoad(event)\n }\n }}\n onError={(event) => {\n if (placeholder === 'blur') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n {(isLazy || placeholder === 'blur') && (\n <noscript>\n <img\n {...rest}\n // @ts-ignore - TODO: upgrade to `@types/react@17`\n loading={loading}\n decoding=\"async\"\n data-nimg={layout}\n style={imgStyle}\n className={className}\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n {...generateImgAttrs({\n config,\n src: srcString,\n unoptimized,\n layout,\n width: widthInt,\n quality: qualityInt,\n sizes: noscriptSizes,\n loader,\n })}\n />\n </noscript>\n )}\n </>\n )\n}\n\n/**\n * @deprecated The `next/legacy/image` component is deprecated and will be removed in a future version of Next.js. Please use `next/image` instead.\n */\nexport default function Image({\n src,\n sizes,\n unoptimized = false,\n priority = false,\n loading,\n lazyRoot = null,\n lazyBoundary,\n className,\n quality,\n width,\n height,\n style,\n objectFit,\n objectPosition,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n ...all\n}: ImageProps) {\n const configContext = useContext(ImageConfigContext)\n const config: ImageConfig = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return {\n ...c,\n allSizes,\n deviceSizes,\n qualities, // During the SSR, configEnv (__NEXT_IMAGE_OPTS) does not include\n // security sensitive configs like `localPatterns`, which is needed\n // during the server render to ensure it's validated. Therefore use\n // configContext, which holds the config from the server for validation.\n localPatterns:\n typeof window === 'undefined'\n ? configContext?.localPatterns\n : c.localPatterns,\n }\n }, [configContext])\n\n let rest: Partial<ImageProps> = all\n let layout: NonNullable<LayoutValue> = sizes ? 'responsive' : 'intrinsic'\n 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 on <img>:\n delete rest.layout\n }\n\n let loader: ImageLoaderWithConfig = defaultImageLoader\n if ('loader' in rest) {\n if (rest.loader) {\n const customImageLoader = rest.loader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n // The config object is internal only so we must\n // not pass it to the user-defined loader()\n return customImageLoader(opts)\n }\n }\n // Remove property so it's not spread on <img>\n delete rest.loader\n }\n\n let staticSrc = ''\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n if (!layout || layout !== 'fill') {\n height = height || staticImageData.height\n width = width || staticImageData.width\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n warnOnce(\n `Image with src \"${src}\" is using next/legacy/image which is deprecated and will be removed in a future version of Next.js.`\n )\n\n let isLazy =\n !priority && (loading === 'lazy' || typeof loading === 'undefined')\n if (src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (typeof window !== 'undefined' && loadedImageURLs.has(src)) {\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [setIntersection, isIntersected, resetIntersected] =\n useIntersection<HTMLImageElement>({\n rootRef: lazyRoot,\n rootMargin: lazyBoundary || '200px',\n disabled: !isLazy,\n })\n const isVisible = !isLazy || isIntersected\n\n const wrapperStyle: JSX.IntrinsicElements['span']['style'] = {\n boxSizing: 'border-box',\n display: 'block',\n overflow: 'hidden',\n width: 'initial',\n height: 'initial',\n background: 'none',\n opacity: 1,\n border: 0,\n margin: 0,\n padding: 0,\n }\n const sizerStyle: JSX.IntrinsicElements['span']['style'] = {\n boxSizing: 'border-box',\n display: 'block',\n width: 'initial',\n height: 'initial',\n background: 'none',\n opacity: 1,\n border: 0,\n margin: 0,\n padding: 0,\n }\n let hasSizer = false\n let sizerSvgUrl: string | undefined\n const layoutStyle: ImgElementStyle = {\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\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n widthInt = widthInt || 1\n heightInt = heightInt || 1\n unoptimized = true\n } else {\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\n if (\n (typeof widthInt !== 'undefined' && isNaN(widthInt)) ||\n (typeof heightInt !== 'undefined' && isNaN(heightInt))\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" or \"height\" property. These should be numeric values.`\n )\n }\n if (layout === 'fill' && (width || height)) {\n warnOnce(\n `Image with src \"${src}\" and \"layout='fill'\" has unused properties assigned. Please remove \"width\" and \"height\".`\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 (sizes && layout !== 'fill' && layout !== 'responsive') {\n warnOnce(\n `Image with src \"${src}\" has \"sizes\" property but it will be ignored. Only use \"sizes\" with \"layout='fill'\" or \"layout='responsive'\"`\n )\n }\n if (placeholder === 'blur') {\n if (layout !== 'fill' && (widthInt || 0) * (heightInt || 0) < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder='blur'\" property to improve performance.`\n )\n }\n if (!blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoadingComplete\" property instead.`\n )\n }\n\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(', ')}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(', ')}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n\n if (!unoptimized && loader !== defaultImageLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (style) {\n let overwrittenStyles = Object.keys(style).filter(\n (key) => key in layoutStyle\n )\n if (overwrittenStyles.length) {\n warnOnce(\n `Image with src ${src} is assigned the following styles, which are overwritten by automatically-generated styles: ${overwrittenStyles.join(\n ', '\n )}`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n !lcpImage.priority &&\n lcpImage.placeholder !== 'blur' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \"priority\" property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/api-reference/next/legacy/image#priority`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n }\n const imgStyle = Object.assign({}, style, layoutStyle)\n const blurStyle =\n placeholder === 'blur' && !blurComplete\n ? {\n backgroundSize: objectFit || 'cover',\n backgroundPosition: objectPosition || '0% 0%',\n filter: 'blur(20px)',\n backgroundImage: `url(\"${blurDataURL}\")`,\n }\n : {}\n if (layout === 'fill') {\n // <Image src=\"i.png\" layout=\"fill\" />\n wrapperStyle.display = 'block'\n wrapperStyle.position = 'absolute'\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (\n typeof widthInt !== 'undefined' &&\n typeof heightInt !== 'undefined'\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.display = 'block'\n wrapperStyle.position = 'relative'\n hasSizer = true\n sizerStyle.paddingTop = paddingTop\n } else if (layout === 'intrinsic') {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" layout=\"intrinsic\" />\n wrapperStyle.display = 'inline-block'\n wrapperStyle.position = 'relative'\n wrapperStyle.maxWidth = '100%'\n hasSizer = true\n sizerStyle.maxWidth = '100%'\n sizerSvgUrl = `data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20version=%271.1%27%20width=%27${widthInt}%27%20height=%27${heightInt}%27/%3e`\n } else if (layout === 'fixed') {\n // <Image src=\"i.png\" width=\"100\" height=\"100\" layout=\"fixed\" />\n wrapperStyle.display = 'inline-block'\n wrapperStyle.position = 'relative'\n wrapperStyle.width = widthInt\n wrapperStyle.height = heightInt\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: emptyDataURL,\n srcSet: undefined,\n sizes: undefined,\n }\n\n if (isVisible) {\n imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n layout,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n }\n\n let srcString: string = src\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, priority, placeholder })\n }\n }\n\n const linkProps:\n | React.DetailedHTMLProps<\n React.LinkHTMLAttributes<HTMLLinkElement>,\n HTMLLinkElement\n >\n | undefined = supportsFloat\n ? undefined\n : {\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: rest.crossOrigin,\n referrerPolicy: rest.referrerPolicy,\n }\n\n const useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n const previousImageSrc = useRef<string | StaticImport>(src)\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n useLayoutEffect(() => {\n if (previousImageSrc.current !== src) {\n resetIntersected()\n previousImageSrc.current = src\n }\n }, [resetIntersected, src])\n\n const imgElementArgs = {\n isLazy,\n imgAttributes,\n heightInt,\n widthInt,\n qualityInt,\n layout,\n className,\n imgStyle,\n blurStyle,\n loading,\n config,\n unoptimized,\n placeholder,\n loader,\n srcString,\n onLoadingCompleteRef,\n setBlurComplete,\n setIntersection,\n isVisible,\n noscriptSizes: sizes,\n ...rest,\n }\n return (\n <>\n <span style={wrapperStyle}>\n {hasSizer ? (\n <span style={sizerStyle}>\n {sizerSvgUrl ? (\n <img\n style={{\n display: 'block',\n maxWidth: '100%',\n width: 'initial',\n height: 'initial',\n background: 'none',\n opacity: 1,\n border: 0,\n margin: 0,\n padding: 0,\n }}\n alt=\"\"\n aria-hidden={true}\n src={sizerSvgUrl}\n />\n ) : null}\n </span>\n ) : null}\n <ImageElement {...imgElementArgs} />\n </span>\n {!supportsFloat && priority ? (\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would likely cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n <Head>\n <link\n key={\n '__nimg-' +\n imgAttributes.src +\n imgAttributes.srcSet +\n imgAttributes.sizes\n }\n rel=\"preload\"\n as=\"image\"\n href={imgAttributes.srcSet ? undefined : imgAttributes.src}\n {...linkProps}\n />\n </Head>\n ) : null}\n </>\n )\n}\n"],"names":["Image","normalizeSrc","src","slice","supportsFloat","ReactDOM","preload","configEnv","process","env","__NEXT_IMAGE_OPTS","loadedImageURLs","Set","allImgs","Map","perfObserver","emptyDataURL","window","globalThis","__NEXT_IMAGE_IMPORTED","VALID_LOADING_VALUES","undefined","imgixLoader","config","width","quality","url","URL","path","params","searchParams","set","getAll","join","get","toString","href","akamaiLoader","cloudinaryLoader","paramsString","customLoader","Error","defaultLoader","dangerouslyAllowSVG","split","endsWith","startsWith","includes","localPatterns","length","pathname","search","NODE_ENV","missingValues","push","JSON","stringify","NEXT_RUNTIME","hasLocalMatch","require","domains","remotePatterns","parsedSrc","err","console","error","hasRemoteMatch","hostname","q","findClosestQuality","normalizePathTrailingSlash","encodeURIComponent","loaders","VALID_LAYOUT_VALUES","isStaticRequire","default","isStaticImageData","isStaticImport","getWidths","deviceSizes","allSizes","layout","sizes","viewportWidthRe","percentSizes","match","exec","parseInt","smallestRatio","Math","min","widths","filter","s","kind","map","w","find","p","generateImgAttrs","unoptimized","loader","srcSet","last","i","getInt","x","defaultImageLoader","loaderProps","loaderKey","load","VALID_LOADERS","handleLoading","img","placeholder","onLoadingCompleteRef","setBlurComplete","decode","Promise","resolve","catch","then","parentNode","add","current","naturalWidth","naturalHeight","parentElement","parent","getComputedStyle","position","display","warnOnce","ImageElement","imgAttributes","heightInt","widthInt","qualityInt","className","imgStyle","blurStyle","isLazy","loading","srcString","setIntersection","onLoad","onError","isVisible","noscriptSizes","rest","decoding","data-nimg","style","ref","useCallback","complete","event","currentTarget","noscript","priority","lazyRoot","lazyBoundary","height","objectFit","objectPosition","onLoadingComplete","blurDataURL","all","configContext","useContext","ImageConfigContext","useMemo","c","imageConfigDefault","imageSizes","sort","a","b","qualities","customImageLoader","obj","_","opts","staticSrc","staticImageData","has","blurComplete","useState","isIntersected","resetIntersected","useIntersection","rootRef","rootMargin","disabled","wrapperStyle","boxSizing","overflow","background","opacity","border","margin","padding","sizerStyle","hasSizer","sizerSvgUrl","layoutStyle","top","left","bottom","right","minWidth","maxWidth","minHeight","maxHeight","String","isNaN","VALID_BLUR_EXT","urlStr","overwrittenStyles","Object","keys","key","PerformanceObserver","entryList","entry","getEntries","imgSrc","element","lcpImage","observe","type","buffered","assign","backgroundSize","backgroundPosition","backgroundImage","quotient","paddingTop","fullUrl","e","location","linkProps","imageSrcSet","crossOrigin","referrerPolicy","useLayoutEffect","React","useEffect","useRef","previousImageSrc","imgElementArgs","span","alt","aria-hidden","Head","link","rel","as"],"mappings":"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","ignoreList":[0]} |