{"version":3,"file":"Bpt3ktYe.js","sources":["../../../../node_modules/@nuxt/image/dist/runtime/utils/meta.js","../../../../node_modules/@nuxt/image/dist/runtime/image.js","../../../../node_modules/@nuxt/image/dist/runtime/composables.js"],"sourcesContent":["export async function imageMeta(_ctx, url) {\n const meta = await _imageMeta(url).catch((err) => {\n console.error(\"Failed to get image meta for \" + url, err + \"\");\n return {\n width: 0,\n height: 0,\n ratio: 0\n };\n });\n return meta;\n}\nasync function _imageMeta(url) {\n if (import.meta.server) {\n const imageMeta2 = await import(\"image-meta\").then((r) => r.imageMeta);\n const data = await fetch(url).then((res) => res.buffer());\n const metadata = imageMeta2(data);\n if (!metadata) {\n throw new Error(`No metadata could be extracted from the image \\`${url}\\`.`);\n }\n const { width, height } = metadata;\n const meta = {\n width,\n height,\n ratio: width && height ? width / height : void 0\n };\n return meta;\n }\n if (typeof Image === \"undefined\") {\n throw new TypeError(\"Image not supported\");\n }\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n const meta = {\n width: img.width,\n height: img.height,\n ratio: img.width / img.height\n };\n resolve(meta);\n };\n img.onerror = (err) => reject(err);\n img.src = url;\n });\n}\n","import { defu } from \"defu\";\nimport { hasProtocol, parseURL, joinURL, withLeadingSlash } from \"ufo\";\nimport { imageMeta } from \"./utils/meta.js\";\nimport { checkDensities, parseDensities, parseSize, parseSizes } from \"./utils/index.js\";\nimport { prerenderStaticImages } from \"./utils/prerender.js\";\nexport function createImage(globalOptions) {\n const ctx = {\n options: globalOptions\n };\n const getImage = (input, options = {}) => {\n const image = resolveImage(ctx, input, options);\n if (import.meta.server && import.meta.prerender) {\n prerenderStaticImages(image.url);\n }\n return image;\n };\n const $img = (input, modifiers = {}, options = {}) => {\n return getImage(input, {\n ...options,\n modifiers: defu(modifiers, options.modifiers || {})\n }).url;\n };\n for (const presetName in globalOptions.presets) {\n $img[presetName] = (source, modifiers, options) => $img(source, modifiers, { ...globalOptions.presets[presetName], ...options });\n }\n $img.options = globalOptions;\n $img.getImage = getImage;\n $img.getMeta = (input, options) => getMeta(ctx, input, options);\n $img.getSizes = (input, options) => getSizes(ctx, input, options);\n ctx.$img = $img;\n return $img;\n}\nasync function getMeta(ctx, input, options) {\n const image = resolveImage(ctx, input, { ...options });\n if (typeof image.getMeta === \"function\") {\n return await image.getMeta();\n } else {\n return await imageMeta(ctx, image.url);\n }\n}\nfunction resolveImage(ctx, input, options) {\n if (input && typeof input !== \"string\") {\n throw new TypeError(`input must be a string (received ${typeof input}: ${JSON.stringify(input)})`);\n }\n if (!input || input.startsWith(\"data:\")) {\n return {\n url: input\n };\n }\n const { provider, defaults } = getProvider(ctx, options.provider || ctx.options.provider);\n const preset = getPreset(ctx, options.preset);\n input = hasProtocol(input) ? input : withLeadingSlash(input);\n if (!provider.supportsAlias) {\n for (const base in ctx.options.alias) {\n if (input.startsWith(base)) {\n const alias = ctx.options.alias[base];\n if (alias) {\n input = joinURL(alias, input.slice(base.length));\n }\n }\n }\n }\n if (provider.validateDomains && hasProtocol(input)) {\n const inputHost = parseURL(input).host;\n if (!ctx.options.domains.find((d) => d === inputHost)) {\n return {\n url: input\n };\n }\n }\n const _options = defu(options, preset, defaults);\n _options.modifiers = { ..._options.modifiers };\n const expectedFormat = _options.modifiers.format;\n if (_options.modifiers?.width) {\n _options.modifiers.width = parseSize(_options.modifiers.width);\n }\n if (_options.modifiers?.height) {\n _options.modifiers.height = parseSize(_options.modifiers.height);\n }\n const image = provider.getImage(input, _options, ctx);\n image.format = image.format || expectedFormat || \"\";\n return image;\n}\nfunction getProvider(ctx, name) {\n const provider = ctx.options.providers[name];\n if (!provider) {\n throw new Error(\"Unknown provider: \" + name);\n }\n return provider;\n}\nfunction getPreset(ctx, name) {\n if (!name) {\n return {};\n }\n if (!ctx.options.presets[name]) {\n throw new Error(\"Unknown preset: \" + name);\n }\n return ctx.options.presets[name];\n}\nfunction getSizes(ctx, input, opts) {\n const width = parseSize(opts.modifiers?.width);\n const height = parseSize(opts.modifiers?.height);\n const sizes = parseSizes(opts.sizes);\n const densities = opts.densities?.trim() ? parseDensities(opts.densities.trim()) : ctx.options.densities;\n checkDensities(densities);\n const hwRatio = width && height ? height / width : 0;\n const sizeVariants = [];\n const srcsetVariants = [];\n if (Object.keys(sizes).length >= 1) {\n for (const key in sizes) {\n const variant = getSizesVariant(key, String(sizes[key]), height, hwRatio, ctx);\n if (variant === void 0) {\n continue;\n }\n sizeVariants.push({\n size: variant.size,\n screenMaxWidth: variant.screenMaxWidth,\n media: `(max-width: ${variant.screenMaxWidth}px)`\n });\n for (const density of densities) {\n srcsetVariants.push({\n width: variant._cWidth * density,\n src: getVariantSrc(ctx, input, opts, variant, density)\n });\n }\n }\n finaliseSizeVariants(sizeVariants);\n } else {\n for (const density of densities) {\n const key = Object.keys(sizes)[0];\n let variant = key ? getSizesVariant(key, String(sizes[key]), height, hwRatio, ctx) : void 0;\n if (variant === void 0) {\n variant = {\n size: \"\",\n screenMaxWidth: 0,\n _cWidth: opts.modifiers?.width,\n _cHeight: opts.modifiers?.height\n };\n }\n srcsetVariants.push({\n width: density,\n src: getVariantSrc(ctx, input, opts, variant, density)\n });\n }\n }\n finaliseSrcsetVariants(srcsetVariants);\n const defaultVariant = srcsetVariants[srcsetVariants.length - 1];\n const sizesVal = sizeVariants.length ? sizeVariants.map((v) => `${v.media ? v.media + \" \" : \"\"}${v.size}`).join(\", \") : void 0;\n const suffix = sizesVal ? \"w\" : \"x\";\n const srcsetVal = srcsetVariants.map((v) => `${v.src} ${v.width}${suffix}`).join(\", \");\n return {\n sizes: sizesVal,\n srcset: srcsetVal,\n src: defaultVariant?.src\n };\n}\nfunction getSizesVariant(key, size, height, hwRatio, ctx) {\n const screenMaxWidth = ctx.options.screens && ctx.options.screens[key] || Number.parseInt(key);\n const isFluid = size.endsWith(\"vw\");\n if (!isFluid && /^\\d+$/.test(size)) {\n size = size + \"px\";\n }\n if (!isFluid && !size.endsWith(\"px\")) {\n return void 0;\n }\n let _cWidth = Number.parseInt(size);\n if (!screenMaxWidth || !_cWidth) {\n return void 0;\n }\n if (isFluid) {\n _cWidth = Math.round(_cWidth / 100 * screenMaxWidth);\n }\n const _cHeight = hwRatio ? Math.round(_cWidth * hwRatio) : height;\n return {\n size,\n screenMaxWidth,\n _cWidth,\n _cHeight\n };\n}\nfunction getVariantSrc(ctx, input, opts, variant, density) {\n return ctx.$img(\n input,\n {\n ...opts.modifiers,\n width: variant._cWidth ? variant._cWidth * density : void 0,\n height: variant._cHeight ? variant._cHeight * density : void 0\n },\n opts\n );\n}\nfunction finaliseSizeVariants(sizeVariants) {\n sizeVariants.sort((v1, v2) => v1.screenMaxWidth - v2.screenMaxWidth);\n let previousMedia = null;\n for (let i = sizeVariants.length - 1; i >= 0; i--) {\n const sizeVariant = sizeVariants[i];\n if (sizeVariant.media === previousMedia) {\n sizeVariants.splice(i, 1);\n }\n previousMedia = sizeVariant.media;\n }\n for (let i = 0; i < sizeVariants.length; i++) {\n sizeVariants[i].media = sizeVariants[i + 1]?.media || \"\";\n }\n}\nfunction finaliseSrcsetVariants(srcsetVariants) {\n srcsetVariants.sort((v1, v2) => v1.width - v2.width);\n let previousWidth = null;\n for (let i = srcsetVariants.length - 1; i >= 0; i--) {\n const sizeVariant = srcsetVariants[i];\n if (sizeVariant.width === previousWidth) {\n srcsetVariants.splice(i, 1);\n }\n previousWidth = sizeVariant.width;\n }\n}\n","import { createImage } from \"./image.js\";\nimport { imageOptions } from \"#build/image-options\";\nimport { useNuxtApp, useRuntimeConfig } from \"#imports\";\nexport const useImage = () => {\n const config = useRuntimeConfig();\n const nuxtApp = useNuxtApp();\n return nuxtApp.$img || nuxtApp._img || (nuxtApp._img = createImage({\n ...imageOptions,\n nuxt: {\n baseURL: config.app.baseURL\n },\n runtimeConfig: config\n }));\n};\n"],"names":["imageMeta","_ctx","url","_imageMeta","err","resolve","reject","img","meta","createImage","globalOptions","ctx","getImage","input","options","resolveImage","$img","modifiers","defu","presetName","source","getMeta","getSizes","image","provider","defaults","getProvider","preset","getPreset","hasProtocol","withLeadingSlash","base","alias","joinURL","inputHost","parseURL","d","_options","expectedFormat","_a","parseSize","_b","name","opts","width","height","sizes","parseSizes","densities","_c","parseDensities","checkDensities","hwRatio","sizeVariants","srcsetVariants","key","variant","getSizesVariant","density","getVariantSrc","finaliseSizeVariants","_d","_e","finaliseSrcsetVariants","defaultVariant","sizesVal","v","suffix","srcsetVal","size","screenMaxWidth","isFluid","_cWidth","_cHeight","v1","v2","previousMedia","sizeVariant","previousWidth","i","useImage","config","useRuntimeConfig","nuxtApp","useNuxtApp","imageOptions"],"mappings":"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","x_google_ignoreList":[0,1,2]}