UNPKG

sui-web3-starter

Version:
32 lines (27 loc) 276 kB
/* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ (() => { var exports = {}; exports.id = "pages/index"; exports.ids = ["pages/index"]; exports.modules = { /***/ "./node_modules/next/font/google/target.css?{\"path\":\"src\\\\pages\\\\index.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}": /*!***************************************************************************************************************************************************************!*\ !*** ./node_modules/next/font/google/target.css?{"path":"src\\pages\\index.tsx","import":"Inter","arguments":[{"subsets":["latin"]}],"variableName":"inter"} ***! \***************************************************************************************************************************************************************/ /***/ ((module) => { eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'__Inter_ccafe3', '__Inter_Fallback_ccafe3'\",\"fontStyle\":\"normal\"},\n\t\"className\": \"__className_ccafe3\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9mb250L2dvb2dsZS90YXJnZXQuY3NzP3tcInBhdGhcIjpcInNyY1xcXFxwYWdlc1xcXFxpbmRleC50c3hcIixcImltcG9ydFwiOlwiSW50ZXJcIixcImFyZ3VtZW50c1wiOlt7XCJzdWJzZXRzXCI6W1wibGF0aW5cIl19XSxcInZhcmlhYmxlTmFtZVwiOlwiaW50ZXJcIn0uanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLFdBQVcsZ0ZBQWdGO0FBQzNGO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zdWktZGFwcC1zdGFydGVyLy4vbm9kZV9tb2R1bGVzL25leHQvZm9udC9nb29nbGUvdGFyZ2V0LmNzcz8wZWQ4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEV4cG9ydHNcbm1vZHVsZS5leHBvcnRzID0ge1xuXHRcInN0eWxlXCI6IHtcImZvbnRGYW1pbHlcIjpcIidfX0ludGVyX2NjYWZlMycsICdfX0ludGVyX0ZhbGxiYWNrX2NjYWZlMydcIixcImZvbnRTdHlsZVwiOlwibm9ybWFsXCJ9LFxuXHRcImNsYXNzTmFtZVwiOiBcIl9fY2xhc3NOYW1lX2NjYWZlM1wiXG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/font/google/target.css?{\"path\":\"src\\\\pages\\\\index.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}\n"); /***/ }), /***/ "./node_modules/next/dist/client/image.js": /*!************************************************!*\ !*** ./node_modules/next/dist/client/image.js ***! \************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval("\n\"use client\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"react\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\"));\nconst _imageblursvg = __webpack_require__(/*! ../shared/lib/image-blur-svg */ \"../shared/lib/image-blur-svg\");\nconst _imageconfig = __webpack_require__(/*! ../shared/lib/image-config */ \"../shared/lib/image-config\");\nconst _imageconfigcontext = __webpack_require__(/*! ../shared/lib/image-config-context */ \"../shared/lib/image-config-context\");\nconst _warnonce = __webpack_require__(/*! ../shared/lib/utils/warn-once */ \"./utils/warn-once\");\nconst _imageloader = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/shared/lib/image-loader */ \"next/dist/shared/lib/image-loader\"));\nconst configEnv = {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[]};\nconst allImgs = new Map();\nlet perfObserver;\nif (true) {\n globalThis.__NEXT_IMAGE_IMPORTED = true;\n}\nconst VALID_LOADING_VALUES = [\n \"lazy\",\n \"eager\",\n undefined\n];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return typeof src === \"object\" && (isStaticRequire(src) || isStaticImageData(src));\n}\nfunction getWidths(param, width, sizes) {\n let { deviceSizes , allSizes } = param;\n if (sizes) {\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 {\n widths: allSizes,\n kind: \"w\"\n };\n }\n if (typeof width !== \"number\") {\n return {\n widths: deviceSizes,\n kind: \"w\"\n };\n }\n const widths = [\n ...new Set(// > 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 [\n width,\n width * 2 /*, width * 3*/ \n ].map((w)=>allSizes.find((p)=>p >= w) || allSizes[allSizes.length - 1]))\n ];\n return {\n widths,\n kind: \"x\"\n };\n}\nfunction generateImgAttrs(param) {\n let { config , src , unoptimized , width , quality , sizes , loader } = param;\n if (unoptimized) {\n return {\n src,\n srcSet: undefined,\n sizes: undefined\n };\n }\n const { widths , kind } = getWidths(config, width, sizes);\n const last = widths.length - 1;\n return {\n sizes: !sizes && kind === \"w\" ? \"100vw\" : sizes,\n srcSet: widths.map((w, i)=>loader({\n config,\n src,\n quality,\n width: w\n }) + \" \" + (kind === \"w\" ? w : i + 1) + kind).join(\", \"),\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({\n config,\n src,\n quality,\n width: widths[last]\n })\n };\n}\nfunction getInt(x) {\n if (typeof x === \"undefined\") {\n return x;\n }\n if (typeof x === \"number\") {\n return Number.isFinite(x) ? x : NaN;\n }\n if (typeof x === \"string\" && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10);\n }\n return NaN;\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(img, src, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized) {\n if (!img || 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.parentElement || !img.isConnected) {\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 if (placeholder === \"blur\") {\n setBlurComplete(true);\n }\n if (onLoadRef == null ? void 0 : onLoadRef.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event(\"load\");\n Object.defineProperty(event, \"target\", {\n writable: false,\n value: img\n });\n let prevented = false;\n let stopped = false;\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: ()=>prevented,\n isPropagationStopped: ()=>stopped,\n persist: ()=>{},\n preventDefault: ()=>{\n prevented = true;\n event.preventDefault();\n },\n stopPropagation: ()=>{\n stopped = true;\n event.stopPropagation();\n }\n });\n }\n if (onLoadingCompleteRef == null ? void 0 : onLoadingCompleteRef.current) {\n onLoadingCompleteRef.current(img);\n }\n if (true) {\n if (img.getAttribute(\"data-nimg\") === \"fill\") {\n if (!unoptimized && (!img.getAttribute(\"sizes\") || img.getAttribute(\"sizes\") === \"100vw\")) {\n let widthViewportRatio = img.getBoundingClientRect().width / window.innerWidth;\n if (widthViewportRatio < 0.6) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes');\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement);\n const valid = [\n \"absolute\",\n \"fixed\",\n \"relative\"\n ];\n if (!valid.includes(position)) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has \"fill\" and parent element with invalid \"position\". Provided \"' + position + '\" should be one of ' + valid.map(String).join(\",\") + \".\");\n }\n }\n if (img.height === 0) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.');\n }\n }\n const heightModified = img.height.toString() !== img.getAttribute(\"height\");\n const widthModified = img.width.toString() !== img.getAttribute(\"width\");\n if (heightModified && !widthModified || !heightModified && widthModified) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles \\'width: \"auto\"\\' or \\'height: \"auto\"\\' to maintain the aspect ratio.');\n }\n }\n });\n}\nfunction getDynamicProps(fetchPriority) {\n const [majorStr, minorStr] = _react.version.split(\".\");\n const major = parseInt(majorStr, 10);\n const minor = parseInt(minorStr, 10);\n if (major > 18 || major === 18 && minor >= 3) {\n // In React 18.3.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return {\n fetchPriority\n };\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return {\n fetchpriority: fetchPriority\n };\n}\nconst ImageElement = /*#__PURE__*/ (0, _react.forwardRef)((param, forwardedRef)=>{\n let { imgAttributes , heightInt , widthInt , qualityInt , className , imgStyle , blurStyle , isLazy , fetchPriority , fill , placeholder , loading , srcString , config , unoptimized , loader , onLoadRef , onLoadingCompleteRef , setBlurComplete , setShowAltText , onLoad , onError , ...rest } = param;\n loading = isLazy ? \"lazy\" : loading;\n return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(\"img\", {\n ...rest,\n ...getDynamicProps(fetchPriority),\n loading: loading,\n width: widthInt,\n height: heightInt,\n decoding: \"async\",\n \"data-nimg\": fill ? \"fill\" : \"1\",\n className: className,\n style: {\n ...imgStyle,\n ...blurStyle\n },\n ...imgAttributes,\n ref: (0, _react.useCallback)((img)=>{\n if (forwardedRef) {\n if (typeof forwardedRef === \"function\") forwardedRef(img);\n else if (typeof forwardedRef === \"object\") {\n // @ts-ignore - .current is read only it's usually assigned by react internally\n forwardedRef.current = img;\n }\n }\n if (!img) {\n return;\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src;\n }\n if (true) {\n if (!srcString) {\n console.error('Image is missing required \"src\" property:', img);\n }\n if (img.getAttribute(\"alt\") === null) {\n console.error('Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.');\n }\n }\n if (img.complete) {\n handleLoading(img, srcString, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized);\n }\n }, [\n srcString,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n forwardedRef\n ]),\n onLoad: (event)=>{\n const img = event.currentTarget;\n handleLoading(img, srcString, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized);\n },\n onError: (event)=>{\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true);\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});\nconst Image = /*#__PURE__*/ (0, _react.forwardRef)((param, forwardedRef)=>{\n let { src , sizes , unoptimized =false , priority =false , loading , className , quality , width , height , fill , style , onLoad , onLoadingComplete , placeholder =\"empty\" , blurDataURL , fetchPriority , layout , objectFit , objectPosition , lazyBoundary , lazyRoot , ...all } = param;\n const configContext = (0, _react.useContext)(_imageconfigcontext.ImageConfigContext);\n const config = (0, _react.useMemo)(()=>{\n const c = configEnv || configContext || _imageconfig.imageConfigDefault;\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n return {\n ...c,\n allSizes,\n deviceSizes\n };\n }, [\n configContext\n ]);\n let rest = all;\n let loader = rest.loader || _imageloader.default;\n // Remove property so it's not spread on <img> element\n delete rest.loader;\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = \"__next_img_default\" in loader;\n if (isDefaultLoader) {\n if (config.loader === \"custom\") {\n throw new Error('Image with src \"' + src + '\" is missing \"loader\" prop.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader\");\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader;\n loader = (obj)=>{\n const { config: _ , ...opts } = obj;\n return customImageLoader(opts);\n };\n }\n if (layout) {\n if (layout === \"fill\") {\n fill = true;\n }\n const layoutToStyle = {\n intrinsic: {\n maxWidth: \"100%\",\n height: \"auto\"\n },\n responsive: {\n width: \"100%\",\n height: \"auto\"\n }\n };\n const layoutToSizes = {\n responsive: \"100vw\",\n fill: \"100vw\"\n };\n const layoutStyle = layoutToStyle[layout];\n if (layoutStyle) {\n style = {\n ...style,\n ...layoutStyle\n };\n }\n const layoutSizes = layoutToSizes[layout];\n if (layoutSizes && !sizes) {\n sizes = layoutSizes;\n }\n }\n let staticSrc = \"\";\n let widthInt = getInt(width);\n let heightInt = getInt(height);\n let blurWidth;\n let blurHeight;\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n if (!staticImageData.src) {\n throw new Error(\"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(staticImageData));\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\"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(staticImageData));\n }\n blurWidth = staticImageData.blurWidth;\n blurHeight = staticImageData.blurHeight;\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width;\n heightInt = staticImageData.height;\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width;\n heightInt = Math.round(staticImageData.height * ratio);\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height;\n widthInt = Math.round(staticImageData.width * ratio);\n }\n }\n }\n src = typeof src === \"string\" ? src : staticSrc;\n let isLazy = !priority && (loading === \"lazy\" || typeof loading === \"undefined\");\n if (!src || src.startsWith(\"data:\") || src.startsWith(\"blob:\")) {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n if (config.unoptimized) {\n unoptimized = true;\n }\n if (isDefaultLoader && src.endsWith(\".svg\") && !config.dangerouslyAllowSVG) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true;\n }\n if (priority) {\n fetchPriority = \"high\";\n }\n const [blurComplete, setBlurComplete] = (0, _react.useState)(false);\n const [showAltText, setShowAltText] = (0, _react.useState)(false);\n const qualityInt = getInt(quality);\n if (true) {\n if (config.output === \"export\" && isDefaultLoader && !unoptimized) {\n throw new Error(\"Image Optimization using the default loader is not compatible with `{ output: 'export' }`.\\n Possible solutions:\\n - Remove `{ output: 'export' }` and run \\\"next start\\\" to run server mode including the Image Optimization API.\\n - Configure `{ images: { unoptimized: true } }` in `next.config.js` to disable the Image Optimization API.\\n Read more: https://nextjs.org/docs/messages/export-image-api\");\n }\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 unoptimized = true;\n } else {\n if (fill) {\n if (width) {\n throw new Error('Image with src \"' + src + '\" has both \"width\" and \"fill\" properties. Only one should be used.');\n }\n if (height) {\n throw new Error('Image with src \"' + src + '\" has both \"height\" and \"fill\" properties. Only one should be used.');\n }\n if ((style == null ? void 0 : style.position) && style.position !== \"absolute\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.');\n }\n if ((style == null ? void 0 : style.width) && style.width !== \"100%\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.');\n }\n if ((style == null ? void 0 : style.height) && style.height !== \"100%\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.');\n }\n } else {\n if (typeof widthInt === \"undefined\") {\n throw new Error('Image with src \"' + src + '\" is missing required \"width\" property.');\n } else if (isNaN(widthInt)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"width\" property. Expected a numeric value in pixels but received \"' + width + '\".');\n }\n if (typeof heightInt === \"undefined\") {\n throw new Error('Image with src \"' + src + '\" is missing required \"height\" property.');\n } else if (isNaN(heightInt)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"height\" property. Expected a numeric value in pixels but received \"' + height + '\".');\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"loading\" property. Provided \"' + loading + '\" should be one of ' + VALID_LOADING_VALUES.map(String).join(\",\") + \".\");\n }\n if (priority && loading === \"lazy\") {\n throw new Error('Image with src \"' + src + '\" has both \"priority\" and \"loading=\\'lazy\\'\" properties. Only one should be used.');\n }\n if (placeholder === \"blur\") {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is smaller than 40x40. Consider removing the \"placeholder=\\'blur\\'\" property to improve performance.');\n }\n if (!blurDataURL) {\n const VALID_BLUR_EXT = [\n \"jpeg\",\n \"png\",\n \"webp\",\n \"avif\"\n ] // should match next-image-loader\n ;\n throw new Error('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 - Remove the \"placeholder\" property, effectively no blur effect\\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url');\n }\n }\n if (\"ref\" in rest) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is using unsupported \"ref\" property. Consider using the \"onLoadingComplete\" property instead.');\n }\n if (!unoptimized && loader !== _imageloader.default) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75\n });\n let url;\n try {\n url = new URL(urlStr);\n } catch (err) {}\n if (urlStr === src || url && url.pathname === src && !url.search) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width\");\n }\n }\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot\n })){\n if (legacyValue) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has legacy prop \"' + legacyKey + '\". Did you forget to run the codemod?' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13\");\n }\n }\n if (false) {}\n }\n const imgStyle = Object.assign(fill ? {\n position: \"absolute\",\n height: \"100%\",\n width: \"100%\",\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition\n } : {}, showAltText ? {} : {\n color: \"transparent\"\n }, style);\n const blurStyle = placeholder === \"blur\" && blurDataURL && !blurComplete ? {\n backgroundSize: imgStyle.objectFit || \"cover\",\n backgroundPosition: imgStyle.objectPosition || \"50% 50%\",\n backgroundRepeat: \"no-repeat\",\n backgroundImage: 'url(\"data:image/svg+xml;charset=utf-8,' + (0, _imageblursvg.getImageBlurSvg)({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit: imgStyle.objectFit\n }) + '\")'\n } : {};\n if (true) {\n if (blurStyle.backgroundImage && (blurDataURL == null ? void 0 : blurDataURL.startsWith(\"/\"))) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n blurStyle.backgroundImage = 'url(\"' + blurDataURL + '\")';\n }\n }\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader\n });\n let srcString = src;\n if (true) {\n if (false) {}\n }\n const onLoadRef = (0, _react.useRef)(onLoad);\n (0, _react.useEffect)(()=>{\n onLoadRef.current = onLoad;\n }, [\n onLoad\n ]);\n const onLoadingCompleteRef = (0, _react.useRef)(onLoadingComplete);\n (0, _react.useEffect)(()=>{\n onLoadingCompleteRef.current = onLoadingComplete;\n }, [\n onLoadingComplete\n ]);\n const imgElementArgs = {\n isLazy,\n imgAttributes,\n heightInt,\n widthInt,\n qualityInt,\n className,\n imgStyle,\n blurStyle,\n loading,\n config,\n fetchPriority,\n fill,\n unoptimized,\n placeholder,\n loader,\n srcString,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n ...rest\n };\n return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(ImageElement, {\n ...imgElementArgs,\n ref: forwardedRef\n }), priority ? // 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 /*#__PURE__*/ _react.default.createElement(_head.default, null, /*#__PURE__*/ _react.default.createElement(\"link\", {\n key: \"__nimg-\" + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes,\n rel: \"preload\",\n as: \"image\",\n href: imgAttributes.srcSet ? undefined : imgAttributes.src,\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: rest.crossOrigin,\n ...getDynamicProps(fetchPriority)\n })) : null);\n});\nconst _default = Image;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=image.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9pbWFnZS5qcy5qcyIsIm1hcHBpbmdzIjoiQUFDYTtBQURiO0FBRUFBLDhDQUE2QztJQUN6Q0csT0FBTyxJQUFJO0FBQ2YsQ0FBQyxFQUFDO0FBQ0ZILDJDQUEwQztJQUN0Q0ksWUFBWSxJQUFJO0lBQ2hCQyxLQUFLLFdBQVc7UUFDWixPQUFPQztJQUNYO0FBQ0osQ0FBQyxFQUFDO0FBQ0YsTUFBTUMsMkJBQTJCQyxtQkFBT0EsQ0FBQyw2R0FBeUM7QUFDbEYsTUFBTUMsNEJBQTRCRCxtQkFBT0EsQ0FBQywrR0FBMEM7QUFDcEYsTUFBTUUsU0FBUyxXQUFXLEdBQUdELDBCQUEwQkUsQ0FBQyxDQUFDSCxtQkFBT0EsQ0FBQyxvQkFBTztBQUN4RSxNQUFNSSxRQUFRLFdBQVcsR0FBR0wseUJBQXlCSSxDQUFDLENBQUNILG1CQUFPQSxDQUFDLHVFQUFvQjtBQUNuRixNQUFNSyxnQkFBZ0JMLG1CQUFPQSxDQUFDLGtFQUE4QjtBQUM1RCxNQUFNTSxlQUFlTixtQkFBT0EsQ0FBQyw4REFBNEI7QUFDekQsTUFBTU8sc0JBQXNCUCxtQkFBT0EsQ0FBQyw4RUFBb0M7QUFDeEUsTUFBTVEsWUFBWVIsbUJBQU9BLENBQUMsd0RBQStCO0FBQ3pELE1BQU1TLGVBQWUsV0FBVyxHQUFHVix5QkFBeUJJLENBQUMsQ0FBQ0gsbUJBQU9BLENBQUMsNEVBQW1DO0FBRXpHLE1BQU1VLFlBQVlDLDBOQUE2QjtBQUMvQyxNQUFNRyxVQUFVLElBQUlDO0FBQ3BCLElBQUlDO0FBQ0osSUFBSSxJQUE2QixFQUFFO0lBQy9CQyxXQUFXQyxxQkFBcUIsR0FBRyxJQUFJO0FBQzNDLENBQUM7QUFDRCxNQUFNQyx1QkFBdUI7SUFDekI7SUFDQTtJQUNBQztDQUNIO0FBQ0QsU0FBU0MsZ0JBQWdCQyxHQUFHLEVBQUU7SUFDMUIsT0FBT0EsSUFBSUMsT0FBTyxLQUFLSDtBQUMzQjtBQUNBLFNBQVNJLGtCQUFrQkYsR0FBRyxFQUFFO0lBQzVCLE9B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