{"version":3,"file":"9endTiYG.js","sources":["../../../../../../@nuxt/image/dist/runtime/utils/meta.js","../../../../../../@nuxt/image/dist/runtime/utils/index.js","../../../../../../@nuxt/image/dist/runtime/image.js","../../../../../../@nuxt/image/dist/runtime/providers/ipx.js","../../../../../../../virtual:nuxt:C:/Projects/HUB/src/PublicSite/client-app/node_modules/.cache/nuxt/.nuxt/image-options.mjs","../../../../../../@nuxt/image/dist/runtime/composables.js","../../../../../../@nuxt/image/dist/runtime/utils/performance.js","../../../../../../@nuxt/image/dist/runtime/components/_base.js","../../../../../../@nuxt/image/dist/runtime/components/NuxtImg.vue"],"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","export default function imageFetch(url) {\n return fetch(cleanDoubleSlashes(url));\n}\nexport function getInt(x) {\n if (typeof x === \"number\") {\n return x;\n }\n if (typeof x === \"string\") {\n return Number.parseInt(x, 10);\n }\n return void 0;\n}\nexport function getFileExtension(url = \"\") {\n const extension = url.split(/[?#]/).shift().split(\"/\").pop().split(\".\").pop();\n return extension;\n}\nexport function cleanDoubleSlashes(path = \"\") {\n return path.replace(/(https?:\\/\\/)|(\\/)+/g, \"$1$2\");\n}\nexport function createMapper(map) {\n return (key) => {\n return key ? map[key] || key : map.missingValue;\n };\n}\nexport function createOperationsGenerator({ formatter, keyMap, joinWith = \"/\", valueMap } = {}) {\n if (!formatter) {\n formatter = (key, value) => `${key}=${value}`;\n }\n if (keyMap && typeof keyMap !== \"function\") {\n keyMap = createMapper(keyMap);\n }\n const map = valueMap || {};\n Object.keys(map).forEach((valueKey) => {\n if (typeof map[valueKey] !== \"function\") {\n map[valueKey] = createMapper(map[valueKey]);\n }\n });\n return (modifiers = {}) => {\n const operations = Object.entries(modifiers).filter(([_, value]) => typeof value !== \"undefined\").map(([key, value]) => {\n const mapper = map[key];\n if (typeof mapper === \"function\") {\n value = mapper(modifiers[key]);\n }\n key = typeof keyMap === \"function\" ? keyMap(key) : key;\n return formatter(key, value);\n });\n return operations.join(joinWith);\n };\n}\nexport function renderAttributesToString(attributes = {}) {\n return Object.entries(attributes).map(([key, value]) => value ? `${key}=\"${value}\"` : \"\").filter(Boolean).join(\" \");\n}\nexport function renderTag(tag, attrs, contents) {\n const html = `<${tag} ${renderAttributesToString(attrs)}>`;\n if (!contents) {\n return html;\n }\n return html + contents + `${tag}>`;\n}\nexport function generateAlt(src = \"\") {\n return src.split(/[?#]/).shift().split(\"/\").pop().split(\".\").shift();\n}\nexport function parseSize(input = \"\") {\n if (typeof input === \"number\") {\n return input;\n }\n if (typeof input === \"string\") {\n if (input.replace(\"px\", \"\").match(/^\\d+$/g)) {\n return Number.parseInt(input, 10);\n }\n }\n}\nexport function parseDensities(input = \"\") {\n if (input === void 0 || !input.length) {\n return [];\n }\n const densities = /* @__PURE__ */ new Set();\n for (const density of input.split(\" \")) {\n const d = Number.parseInt(density.replace(\"x\", \"\"));\n if (d) {\n densities.add(d);\n }\n }\n return Array.from(densities);\n}\nexport function checkDensities(densities) {\n if (densities.length === 0) {\n throw new Error(\"`densities` must not be empty, configure to `1` to render regular size only (DPR 1.0)\");\n }\n if (import.meta.dev && Array.from(densities).some((d) => d > 2)) {\n const _densities = densities;\n if (!_densities._warned) {\n console.warn(\"[nuxt] [image] Density values above `2` are not recommended. See https://observablehq.com/@eeeps/visual-acuity-and-device-pixel-ratio.\");\n }\n _densities._warned = true;\n }\n}\nexport function parseSizes(input) {\n const sizes = {};\n if (typeof input === \"string\") {\n for (const entry of input.split(/[\\s,]+/).filter((e) => e)) {\n const s = entry.split(\":\");\n if (s.length !== 2) {\n sizes[\"1px\"] = s[0].trim();\n } else {\n sizes[s[0].trim()] = s[1].trim();\n }\n }\n } else {\n Object.assign(sizes, input);\n }\n return sizes;\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 { joinURL, encodePath, encodeParam } from \"ufo\";\nimport { createOperationsGenerator } from \"#image\";\nconst operationsGenerator = createOperationsGenerator({\n keyMap: {\n format: \"f\",\n fit: \"fit\",\n width: \"w\",\n height: \"h\",\n resize: \"s\",\n quality: \"q\",\n background: \"b\"\n },\n joinWith: \"&\",\n formatter: (key, val) => encodeParam(key) + \"_\" + encodeParam(val)\n});\nexport const getImage = (src, { modifiers = {}, baseURL } = {}, ctx) => {\n if (modifiers.width && modifiers.height) {\n modifiers.resize = `${modifiers.width}x${modifiers.height}`;\n delete modifiers.width;\n delete modifiers.height;\n }\n const params = operationsGenerator(modifiers) || \"_\";\n if (!baseURL) {\n baseURL = joinURL(ctx.options.nuxt.baseURL, \"/_ipx\");\n }\n return {\n url: joinURL(baseURL, params, encodePath(src))\n };\n};\nexport const validateDomains = true;\nexport const supportsAlias = true;\n","\nimport * as ipxRuntime$q93M734xvI from 'C:/Projects/HUB/src/PublicSite/client-app/node_modules/@nuxt/image/dist/runtime/providers/ipx'\n\nexport const imageOptions = {\n \"screens\": {\n \"xs\": 320,\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"xxl\": 1536,\n \"2xl\": 1536\n },\n \"presets\": {},\n \"provider\": \"ipx\",\n \"domains\": [\n \"img.youtube.com\",\n \"i.vimeocdn.com\"\n ],\n \"alias\": {\n \"/youtube\": \"https://img.youtube.com\",\n \"/vimeo\": \"https://i.vimeocdn.com\"\n },\n \"densities\": [\n 1,\n 2,\n 1,\n 2\n ],\n \"format\": [\n \"webp\"\n ],\n \"quality\": 100\n}\n\nimageOptions.providers = {\n ['ipx']: { provider: ipxRuntime$q93M734xvI, defaults: {} }\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","export function markFeatureUsage(featureName) {\n performance?.mark?.(\"mark_feature_usage\", {\n detail: {\n feature: featureName\n }\n });\n}\n","import { computed } from \"vue\";\nimport { parseSize } from \"../utils/index.js\";\nimport { useImage } from \"#imports\";\nexport const baseImageProps = {\n // input source\n src: { type: String, required: false },\n // modifiers\n format: { type: String, required: false },\n quality: { type: [Number, String], required: false },\n background: { type: String, required: false },\n fit: { type: String, required: false },\n modifiers: { type: Object, required: false },\n // options\n preset: { type: String, required: false },\n provider: { type: String, required: false },\n sizes: { type: [Object, String], required: false },\n densities: { type: String, required: false },\n preload: {\n type: [Boolean, Object],\n required: false\n },\n //
attributes\n width: { type: [String, Number], required: false },\n height: { type: [String, Number], required: false },\n alt: { type: String, required: false },\n referrerpolicy: { type: String, required: false },\n usemap: { type: String, required: false },\n longdesc: { type: String, required: false },\n ismap: { type: Boolean, required: false },\n loading: {\n type: String,\n required: false,\n validator: (val) => [\"lazy\", \"eager\"].includes(val)\n },\n crossorigin: {\n type: [Boolean, String],\n required: false,\n validator: (val) => [\"anonymous\", \"use-credentials\", \"\", true, false].includes(val)\n },\n decoding: {\n type: String,\n required: false,\n validator: (val) => [\"async\", \"auto\", \"sync\"].includes(val)\n },\n // csp\n nonce: { type: [String], required: false }\n};\nexport const useBaseImage = (props) => {\n const options = computed(() => {\n return {\n provider: props.provider,\n preset: props.preset\n };\n });\n const attrs = computed(() => {\n return {\n width: parseSize(props.width),\n height: parseSize(props.height),\n alt: props.alt,\n referrerpolicy: props.referrerpolicy,\n usemap: props.usemap,\n longdesc: props.longdesc,\n ismap: props.ismap,\n crossorigin: props.crossorigin === true ? \"anonymous\" : props.crossorigin || void 0,\n loading: props.loading,\n decoding: props.decoding,\n nonce: props.nonce\n };\n });\n const $img = useImage();\n const modifiers = computed(() => {\n return {\n ...props.modifiers,\n width: parseSize(props.width),\n height: parseSize(props.height),\n format: props.format,\n quality: props.quality || $img.options.quality,\n background: props.background,\n fit: props.fit\n };\n });\n return {\n options,\n attrs,\n modifiers\n };\n};\nexport const pictureProps = {\n ...baseImageProps,\n legacyFormat: { type: String, default: null },\n imgAttrs: { type: Object, default: null }\n};\nexport const imgProps = {\n ...baseImageProps,\n placeholder: { type: [Boolean, String, Number, Array], required: false },\n placeholderClass: { type: String, required: false }\n};\n","\n
\n\n\n\n\n\n"],"names":["imageMeta","_ctx","url","_imageMeta","err","resolve","reject","img","meta","createMapper","map","key","createOperationsGenerator","formatter","keyMap","joinWith","valueMap","value","valueKey","modifiers","_","mapper","parseSize","input","parseDensities","densities","density","d","checkDensities","parseSizes","sizes","entry","e","s","createImage","globalOptions","ctx","getImage","options","resolveImage","$img","defu","presetName","source","getMeta","getSizes","image","provider","defaults","getProvider","preset","getPreset","hasProtocol","withLeadingSlash","base","alias","joinURL","inputHost","parseURL","_options","expectedFormat","_a","_b","name","opts","width","height","_c","hwRatio","sizeVariants","srcsetVariants","variant","getSizesVariant","getVariantSrc","finaliseSizeVariants","_d","_e","finaliseSrcsetVariants","defaultVariant","sizesVal","v","suffix","srcsetVal","size","screenMaxWidth","isFluid","_cWidth","_cHeight","v1","v2","previousMedia","sizeVariant","previousWidth","i","operationsGenerator","val","encodeParam","src","baseURL","params","encodePath","validateDomains","supportsAlias","imageOptions","ipxRuntime$q93M734xvI","useImage","config","useRuntimeConfig","nuxtApp","useNuxtApp","markFeatureUsage","featureName","baseImageProps","useBaseImage","props","computed","attrs","imgProps","__props","useAttrs","emit","__emit","isServer","_base","placeholderLoaded","ref","imgEl","imgAttrs","placeholder","mainSrc","initialLoad","onMounted","event"],"mappings":"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","x_google_ignoreList":[4]}