{"version":3,"file":"Dv9DHisn.js","sources":["../../../../node_modules/@nuxt/image/node_modules/ufo/dist/index.mjs","../../../../node_modules/@nuxt/image/dist/runtime/utils/meta.js","../../../../node_modules/@nuxt/image/dist/runtime/utils/index.js","../../../../node_modules/@nuxt/image/dist/runtime/image.js","../../../../node_modules/@nuxt/image/dist/runtime/providers/cloudflare.js","../../../../virtual:nuxt:/home/vsts/work/1/s/frontend/app/.nuxt/image-options.mjs","../../../../node_modules/@nuxt/image/dist/runtime/composables.js"],"sourcesContent":["const n = /[^\\0-\\x7E]/;\nconst t = /[\\x2E\\u3002\\uFF0E\\uFF61]/g;\nconst o = {\n overflow: \"Overflow Error\",\n \"not-basic\": \"Illegal Input\",\n \"invalid-input\": \"Invalid Input\"\n};\nconst e = Math.floor;\nconst r = String.fromCharCode;\nfunction s(n2) {\n throw new RangeError(o[n2]);\n}\nconst c = function(n2, t2) {\n return n2 + 22 + 75 * (n2 < 26) - ((t2 != 0) << 5);\n};\nconst u = function(n2, t2, o2) {\n let r2 = 0;\n for (n2 = o2 ? e(n2 / 700) : n2 >> 1, n2 += e(n2 / t2); n2 > 455; r2 += 36) {\n n2 = e(n2 / 35);\n }\n return e(r2 + 36 * n2 / (n2 + 38));\n};\nfunction toASCII(o2) {\n return function(n2, o3) {\n const e2 = n2.split(\"@\");\n let r2 = \"\";\n e2.length > 1 && (r2 = e2[0] + \"@\", n2 = e2[1]);\n const s2 = function(n3, t2) {\n const o4 = [];\n let e3 = n3.length;\n for (; e3--; ) {\n o4[e3] = t2(n3[e3]);\n }\n return o4;\n }((n2 = n2.replace(t, \".\")).split(\".\"), o3).join(\".\");\n return r2 + s2;\n }(o2, function(t2) {\n return n.test(t2) ? \"xn--\" + function(n2) {\n const t3 = [];\n const o3 = (n2 = function(n3) {\n const t4 = [];\n let o4 = 0;\n const e2 = n3.length;\n for (; o4 < e2; ) {\n const r2 = n3.charCodeAt(o4++);\n if (r2 >= 55296 && r2 <= 56319 && o4 < e2) {\n const e3 = n3.charCodeAt(o4++);\n (64512 & e3) == 56320 ? t4.push(((1023 & r2) << 10) + (1023 & e3) + 65536) : (t4.push(r2), o4--);\n } else {\n t4.push(r2);\n }\n }\n return t4;\n }(n2)).length;\n let f = 128;\n let i = 0;\n let l = 72;\n for (const o4 of n2) {\n o4 < 128 && t3.push(r(o4));\n }\n const h = t3.length;\n let p = h;\n for (h && t3.push(\"-\"); p < o3; ) {\n let o4 = 2147483647;\n for (const t4 of n2) {\n t4 >= f && t4 < o4 && (o4 = t4);\n }\n const a = p + 1;\n o4 - f > e((2147483647 - i) / a) && s(\"overflow\"), i += (o4 - f) * a, f = o4;\n for (const o5 of n2) {\n if (o5 < f && ++i > 2147483647 && s(\"overflow\"), o5 == f) {\n let n3 = i;\n for (let o6 = 36; ; o6 += 36) {\n const s2 = o6 <= l ? 1 : o6 >= l + 26 ? 26 : o6 - l;\n if (n3 < s2) {\n break;\n }\n const u2 = n3 - s2;\n const f2 = 36 - s2;\n t3.push(r(c(s2 + u2 % f2, 0))), n3 = e(u2 / f2);\n }\n t3.push(r(c(n3, 0))), l = u(i, a, p == h), i = 0, ++p;\n }\n }\n ++i, ++f;\n }\n return t3.join(\"\");\n }(t2) : t2;\n });\n}\n\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\nconst ENC_CARET_RE = /%5e/gi;\nconst ENC_BACKTICK_RE = /%60/gi;\nconst ENC_CURLY_OPEN_RE = /%7b/gi;\nconst ENC_PIPE_RE = /%7c/gi;\nconst ENC_CURLY_CLOSE_RE = /%7d/gi;\nconst ENC_SPACE_RE = /%20/gi;\nconst ENC_SLASH_RE = /%2f/gi;\nconst ENC_ENC_SLASH_RE = /%252f/gi;\nfunction encode(text) {\n return encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\");\n}\nfunction encodeHash(text) {\n return encode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\nfunction encodeQueryValue(input) {\n return encode(typeof input === \"string\" ? input : JSON.stringify(input)).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CARET_RE, \"^\").replace(SLASH_RE, \"%2F\");\n}\nfunction encodeQueryKey(text) {\n return encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\nfunction encodePath(text) {\n return encode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\").replace(ENC_ENC_SLASH_RE, \"%2F\").replace(AMPERSAND_RE, \"%26\").replace(PLUS_RE, \"%2B\");\n}\nfunction encodeParam(text) {\n return encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text = \"\") {\n try {\n return decodeURIComponent(\"\" + text);\n } catch {\n return \"\" + text;\n }\n}\nfunction decodePath(text) {\n return decode(text.replace(ENC_SLASH_RE, \"%252F\"));\n}\nfunction decodeQueryKey(text) {\n return decode(text.replace(PLUS_RE, \" \"));\n}\nfunction decodeQueryValue(text) {\n return decode(text.replace(PLUS_RE, \" \"));\n}\nfunction encodeHost(name = \"\") {\n return toASCII(name);\n}\n\nfunction parseQuery(parametersString = \"\") {\n const object = {};\n if (parametersString[0] === \"?\") {\n parametersString = parametersString.slice(1);\n }\n for (const parameter of parametersString.split(\"&\")) {\n const s = parameter.match(/([^=]+)=?(.*)/) || [];\n if (s.length < 2) {\n continue;\n }\n const key = decodeQueryKey(s[1]);\n if (key === \"__proto__\" || key === \"constructor\") {\n continue;\n }\n const value = decodeQueryValue(s[2] || \"\");\n if (object[key] === void 0) {\n object[key] = value;\n } else if (Array.isArray(object[key])) {\n object[key].push(value);\n } else {\n object[key] = [object[key], value];\n }\n }\n return object;\n}\nfunction encodeQueryItem(key, value) {\n if (typeof value === \"number\" || typeof value === \"boolean\") {\n value = String(value);\n }\n if (!value) {\n return encodeQueryKey(key);\n }\n if (Array.isArray(value)) {\n return value.map((_value) => `${encodeQueryKey(key)}=${encodeQueryValue(_value)}`).join(\"&\");\n }\n return `${encodeQueryKey(key)}=${encodeQueryValue(value)}`;\n}\nfunction stringifyQuery(query) {\n return Object.keys(query).filter((k) => query[k] !== void 0).map((k) => encodeQueryItem(k, query[k])).filter(Boolean).join(\"&\");\n}\n\nconst PROTOCOL_STRICT_REGEX = /^[\\s\\w\\0+.-]{2,}:([/\\\\]{1,2})/;\nconst PROTOCOL_REGEX = /^[\\s\\w\\0+.-]{2,}:([/\\\\]{2})?/;\nconst PROTOCOL_RELATIVE_REGEX = /^([/\\\\]\\s*){2,}[^/\\\\]/;\nconst PROTOCOL_SCRIPT_RE = /^[\\s\\0]*(blob|data|javascript|vbscript):$/i;\nconst TRAILING_SLASH_RE = /\\/$|\\/\\?|\\/#/;\nconst JOIN_LEADING_SLASH_RE = /^\\.?\\//;\nfunction isRelative(inputString) {\n return [\"./\", \"../\"].some((string_) => inputString.startsWith(string_));\n}\nfunction hasProtocol(inputString, opts = {}) {\n if (typeof opts === \"boolean\") {\n opts = { acceptRelative: opts };\n }\n if (opts.strict) {\n return PROTOCOL_STRICT_REGEX.test(inputString);\n }\n return PROTOCOL_REGEX.test(inputString) || (opts.acceptRelative ? PROTOCOL_RELATIVE_REGEX.test(inputString) : false);\n}\nfunction isScriptProtocol(protocol) {\n return !!protocol && PROTOCOL_SCRIPT_RE.test(protocol);\n}\nfunction hasTrailingSlash(input = \"\", respectQueryAndFragment) {\n if (!respectQueryAndFragment) {\n return input.endsWith(\"/\");\n }\n return TRAILING_SLASH_RE.test(input);\n}\nfunction withoutTrailingSlash(input = \"\", respectQueryAndFragment) {\n if (!respectQueryAndFragment) {\n return (hasTrailingSlash(input) ? input.slice(0, -1) : input) || \"/\";\n }\n if (!hasTrailingSlash(input, true)) {\n return input || \"/\";\n }\n let path = input;\n let fragment = \"\";\n const fragmentIndex = input.indexOf(\"#\");\n if (fragmentIndex >= 0) {\n path = input.slice(0, fragmentIndex);\n fragment = input.slice(fragmentIndex);\n }\n const [s0, ...s] = path.split(\"?\");\n const cleanPath = s0.endsWith(\"/\") ? s0.slice(0, -1) : s0;\n return (cleanPath || \"/\") + (s.length > 0 ? `?${s.join(\"?\")}` : \"\") + fragment;\n}\nfunction withTrailingSlash(input = \"\", respectQueryAndFragment) {\n if (!respectQueryAndFragment) {\n return input.endsWith(\"/\") ? input : input + \"/\";\n }\n if (hasTrailingSlash(input, true)) {\n return input || \"/\";\n }\n let path = input;\n let fragment = \"\";\n const fragmentIndex = input.indexOf(\"#\");\n if (fragmentIndex >= 0) {\n path = input.slice(0, fragmentIndex);\n fragment = input.slice(fragmentIndex);\n if (!path) {\n return fragment;\n }\n }\n const [s0, ...s] = path.split(\"?\");\n return s0 + \"/\" + (s.length > 0 ? `?${s.join(\"?\")}` : \"\") + fragment;\n}\nfunction hasLeadingSlash(input = \"\") {\n return input.startsWith(\"/\");\n}\nfunction withoutLeadingSlash(input = \"\") {\n return (hasLeadingSlash(input) ? input.slice(1) : input) || \"/\";\n}\nfunction withLeadingSlash(input = \"\") {\n return hasLeadingSlash(input) ? input : \"/\" + input;\n}\nfunction cleanDoubleSlashes(input = \"\") {\n return input.split(\"://\").map((string_) => string_.replace(/\\/{2,}/g, \"/\")).join(\"://\");\n}\nfunction withBase(input, base) {\n if (isEmptyURL(base) || hasProtocol(input)) {\n return input;\n }\n const _base = withoutTrailingSlash(base);\n if (input.startsWith(_base)) {\n return input;\n }\n return joinURL(_base, input);\n}\nfunction withoutBase(input, base) {\n if (isEmptyURL(base)) {\n return input;\n }\n const _base = withoutTrailingSlash(base);\n if (!input.startsWith(_base)) {\n return input;\n }\n const trimmed = input.slice(_base.length);\n return trimmed[0] === \"/\" ? trimmed : \"/\" + trimmed;\n}\nfunction withQuery(input, query) {\n const parsed = parseURL(input);\n const mergedQuery = { ...parseQuery(parsed.search), ...query };\n parsed.search = stringifyQuery(mergedQuery);\n return stringifyParsedURL(parsed);\n}\nfunction getQuery(input) {\n return parseQuery(parseURL(input).search);\n}\nfunction isEmptyURL(url) {\n return !url || url === \"/\";\n}\nfunction isNonEmptyURL(url) {\n return url && url !== \"/\";\n}\nfunction joinURL(base, ...input) {\n let url = base || \"\";\n for (const segment of input.filter((url2) => isNonEmptyURL(url2))) {\n if (url) {\n const _segment = segment.replace(JOIN_LEADING_SLASH_RE, \"\");\n url = withTrailingSlash(url) + _segment;\n } else {\n url = segment;\n }\n }\n return url;\n}\nfunction joinRelativeURL(..._input) {\n const JOIN_SEGMENT_SPLIT_RE = /\\/(?!\\/)/;\n const input = _input.filter(Boolean);\n const segments = [];\n let segmentsDepth = 0;\n for (const i of input) {\n if (!i || i === \"/\") {\n continue;\n }\n for (const [sindex, s] of i.split(JOIN_SEGMENT_SPLIT_RE).entries()) {\n if (!s || s === \".\") {\n continue;\n }\n if (s === \"..\") {\n if (segments.length === 1 && hasProtocol(segments[0])) {\n continue;\n }\n segments.pop();\n segmentsDepth--;\n continue;\n }\n if (sindex === 1 && segments[segments.length - 1]?.endsWith(\":/\")) {\n segments[segments.length - 1] += \"/\" + s;\n continue;\n }\n segments.push(s);\n segmentsDepth++;\n }\n }\n let url = segments.join(\"/\");\n if (segmentsDepth >= 0) {\n if (input[0]?.startsWith(\"/\") && !url.startsWith(\"/\")) {\n url = \"/\" + url;\n } else if (input[0]?.startsWith(\"./\") && !url.startsWith(\"./\")) {\n url = \"./\" + url;\n }\n } else {\n url = \"../\".repeat(-1 * segmentsDepth) + url;\n }\n if (input[input.length - 1]?.endsWith(\"/\") && !url.endsWith(\"/\")) {\n url += \"/\";\n }\n return url;\n}\nfunction withHttp(input) {\n return withProtocol(input, \"http://\");\n}\nfunction withHttps(input) {\n return withProtocol(input, \"https://\");\n}\nfunction withoutProtocol(input) {\n return withProtocol(input, \"\");\n}\nfunction withProtocol(input, protocol) {\n let match = input.match(PROTOCOL_REGEX);\n if (!match) {\n match = input.match(/^\\/{2,}/);\n }\n if (!match) {\n return protocol + input;\n }\n return protocol + input.slice(match[0].length);\n}\nfunction normalizeURL(input) {\n const parsed = parseURL(input);\n parsed.pathname = encodePath(decodePath(parsed.pathname));\n parsed.hash = encodeHash(decode(parsed.hash));\n parsed.host = encodeHost(decode(parsed.host));\n parsed.search = stringifyQuery(parseQuery(parsed.search));\n return stringifyParsedURL(parsed);\n}\nfunction resolveURL(base = \"\", ...inputs) {\n if (typeof base !== \"string\") {\n throw new TypeError(\n `URL input should be string received ${typeof base} (${base})`\n );\n }\n const filteredInputs = inputs.filter((input) => isNonEmptyURL(input));\n if (filteredInputs.length === 0) {\n return base;\n }\n const url = parseURL(base);\n for (const inputSegment of filteredInputs) {\n const urlSegment = parseURL(inputSegment);\n if (urlSegment.pathname) {\n url.pathname = withTrailingSlash(url.pathname) + withoutLeadingSlash(urlSegment.pathname);\n }\n if (urlSegment.hash && urlSegment.hash !== \"#\") {\n url.hash = urlSegment.hash;\n }\n if (urlSegment.search && urlSegment.search !== \"?\") {\n if (url.search && url.search !== \"?\") {\n const queryString = stringifyQuery({\n ...parseQuery(url.search),\n ...parseQuery(urlSegment.search)\n });\n url.search = queryString.length > 0 ? \"?\" + queryString : \"\";\n } else {\n url.search = urlSegment.search;\n }\n }\n }\n return stringifyParsedURL(url);\n}\nfunction isSamePath(p1, p2) {\n return decode(withoutTrailingSlash(p1)) === decode(withoutTrailingSlash(p2));\n}\nfunction isEqual(a, b, options = {}) {\n if (!options.trailingSlash) {\n a = withTrailingSlash(a);\n b = withTrailingSlash(b);\n }\n if (!options.leadingSlash) {\n a = withLeadingSlash(a);\n b = withLeadingSlash(b);\n }\n if (!options.encoding) {\n a = decode(a);\n b = decode(b);\n }\n return a === b;\n}\nfunction withFragment(input, hash) {\n if (!hash || hash === \"#\") {\n return input;\n }\n const parsed = parseURL(input);\n parsed.hash = hash === \"\" ? \"\" : \"#\" + encodeHash(hash);\n return stringifyParsedURL(parsed);\n}\nfunction withoutFragment(input) {\n return stringifyParsedURL({ ...parseURL(input), hash: \"\" });\n}\nfunction withoutHost(input) {\n const parsed = parseURL(input);\n return (parsed.pathname || \"/\") + parsed.search + parsed.hash;\n}\n\nconst protocolRelative = Symbol.for(\"ufo:protocolRelative\");\nfunction parseURL(input = \"\", defaultProto) {\n const _specialProtoMatch = input.match(\n /^[\\s\\0]*(blob:|data:|javascript:|vbscript:)(.*)/i\n );\n if (_specialProtoMatch) {\n const [, _proto, _pathname = \"\"] = _specialProtoMatch;\n return {\n protocol: _proto.toLowerCase(),\n pathname: _pathname,\n href: _proto + _pathname,\n auth: \"\",\n host: \"\",\n search: \"\",\n hash: \"\"\n };\n }\n if (!hasProtocol(input, { acceptRelative: true })) {\n return defaultProto ? parseURL(defaultProto + input) : parsePath(input);\n }\n const [, protocol = \"\", auth, hostAndPath = \"\"] = input.replace(/\\\\/g, \"/\").match(/^[\\s\\0]*([\\w+.-]{2,}:)?\\/\\/([^/@]+@)?(.*)/) || [];\n let [, host = \"\", path = \"\"] = hostAndPath.match(/([^#/?]*)(.*)?/) || [];\n if (protocol === \"file:\") {\n path = path.replace(/\\/(?=[A-Za-z]:)/, \"\");\n }\n const { pathname, search, hash } = parsePath(path);\n return {\n protocol: protocol.toLowerCase(),\n auth: auth ? auth.slice(0, Math.max(0, auth.length - 1)) : \"\",\n host,\n pathname,\n search,\n hash,\n [protocolRelative]: !protocol\n };\n}\nfunction parsePath(input = \"\") {\n const [pathname = \"\", search = \"\", hash = \"\"] = (input.match(/([^#?]*)(\\?[^#]*)?(#.*)?/) || []).splice(1);\n return {\n pathname,\n search,\n hash\n };\n}\nfunction parseAuth(input = \"\") {\n const [username, password] = input.split(\":\");\n return {\n username: decode(username),\n password: decode(password)\n };\n}\nfunction parseHost(input = \"\") {\n const [hostname, port] = (input.match(/([^/:]*):?(\\d+)?/) || []).splice(1);\n return {\n hostname: decode(hostname),\n port\n };\n}\nfunction stringifyParsedURL(parsed) {\n const pathname = parsed.pathname || \"\";\n const search = parsed.search ? (parsed.search.startsWith(\"?\") ? \"\" : \"?\") + parsed.search : \"\";\n const hash = parsed.hash || \"\";\n const auth = parsed.auth ? parsed.auth + \"@\" : \"\";\n const host = parsed.host || \"\";\n const proto = parsed.protocol || parsed[protocolRelative] ? (parsed.protocol || \"\") + \"//\" : \"\";\n return proto + auth + host + pathname + search + hash;\n}\nconst FILENAME_STRICT_REGEX = /\\/([^/]+\\.[^/]+)$/;\nconst FILENAME_REGEX = /\\/([^/]+)$/;\nfunction parseFilename(input = \"\", { strict }) {\n const { pathname } = parseURL(input);\n const matches = strict ? pathname.match(FILENAME_STRICT_REGEX) : pathname.match(FILENAME_REGEX);\n return matches ? matches[1] : void 0;\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass $URL {\n constructor(input = \"\") {\n __publicField(this, \"protocol\");\n __publicField(this, \"host\");\n __publicField(this, \"auth\");\n __publicField(this, \"pathname\");\n __publicField(this, \"query\", {});\n __publicField(this, \"hash\");\n if (typeof input !== \"string\") {\n throw new TypeError(\n `URL input should be string received ${typeof input} (${input})`\n );\n }\n const parsed = parseURL(input);\n this.protocol = decode(parsed.protocol);\n this.host = decode(parsed.host);\n this.auth = decode(parsed.auth);\n this.pathname = decodePath(parsed.pathname);\n this.query = parseQuery(parsed.search);\n this.hash = decode(parsed.hash);\n }\n get hostname() {\n return parseHost(this.host).hostname;\n }\n get port() {\n return parseHost(this.host).port || \"\";\n }\n get username() {\n return parseAuth(this.auth).username;\n }\n get password() {\n return parseAuth(this.auth).password || \"\";\n }\n get hasProtocol() {\n return this.protocol.length;\n }\n get isAbsolute() {\n return this.hasProtocol || this.pathname[0] === \"/\";\n }\n get search() {\n const q = stringifyQuery(this.query);\n return q.length > 0 ? \"?\" + q : \"\";\n }\n get searchParams() {\n const p = new URLSearchParams();\n for (const name in this.query) {\n const value = this.query[name];\n if (Array.isArray(value)) {\n for (const v of value) {\n p.append(name, v);\n }\n } else {\n p.append(\n name,\n typeof value === \"string\" ? value : JSON.stringify(value)\n );\n }\n }\n return p;\n }\n get origin() {\n return (this.protocol ? this.protocol + \"//\" : \"\") + encodeHost(this.host);\n }\n get fullpath() {\n return encodePath(this.pathname) + this.search + encodeHash(this.hash);\n }\n get encodedAuth() {\n if (!this.auth) {\n return \"\";\n }\n const { username, password } = parseAuth(this.auth);\n return encodeURIComponent(username) + (password ? \":\" + encodeURIComponent(password) : \"\");\n }\n get href() {\n const auth = this.encodedAuth;\n const originWithAuth = (this.protocol ? this.protocol + \"//\" : \"\") + (auth ? auth + \"@\" : \"\") + encodeHost(this.host);\n return this.hasProtocol && this.isAbsolute ? originWithAuth + this.fullpath : this.fullpath;\n }\n append(url) {\n if (url.hasProtocol) {\n throw new Error(\"Cannot append a URL with protocol\");\n }\n Object.assign(this.query, url.query);\n if (url.pathname) {\n this.pathname = withTrailingSlash(this.pathname) + withoutLeadingSlash(url.pathname);\n }\n if (url.hash) {\n this.hash = url.hash;\n }\n }\n toJSON() {\n return this.href;\n }\n toString() {\n return this.href;\n }\n}\nfunction createURL(input) {\n return new $URL(input);\n}\n\nexport { $URL, cleanDoubleSlashes, createURL, decode, decodePath, decodeQueryKey, decodeQueryValue, encode, encodeHash, encodeHost, encodeParam, encodePath, encodeQueryItem, encodeQueryKey, encodeQueryValue, getQuery, hasLeadingSlash, hasProtocol, hasTrailingSlash, isEmptyURL, isEqual, isNonEmptyURL, isRelative, isSamePath, isScriptProtocol, joinRelativeURL, joinURL, normalizeURL, parseAuth, parseFilename, parseHost, parsePath, parseQuery, parseURL, resolveURL, stringifyParsedURL, stringifyQuery, withBase, withFragment, withHttp, withHttps, withLeadingSlash, withProtocol, withQuery, withTrailingSlash, withoutBase, withoutFragment, withoutHost, withoutLeadingSlash, withoutProtocol, withoutTrailingSlash };\n","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 + ``;\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, encodeQueryItem } from \"ufo\";\nimport { createOperationsGenerator } from \"#image\";\nconst operationsGenerator = createOperationsGenerator({\n keyMap: {\n width: \"w\",\n height: \"h\",\n dpr: \"dpr\",\n fit: \"fit\",\n gravity: \"g\",\n quality: \"q\",\n format: \"f\",\n sharpen: \"sharpen\"\n },\n valueMap: {\n fit: {\n cover: \"cover\",\n contain: \"contain\",\n fill: \"scale-down\",\n outside: \"crop\",\n inside: \"pad\"\n },\n gravity: {\n auto: \"auto\",\n side: \"side\"\n }\n },\n joinWith: \",\",\n formatter: (key, val) => encodeQueryItem(key, val)\n});\nconst defaultModifiers = {};\nexport const getImage = (src, {\n modifiers = {},\n baseURL = \"/\"\n} = {}) => {\n const mergeModifiers = { ...defaultModifiers, ...modifiers };\n const operations = operationsGenerator(mergeModifiers);\n const url = operations ? joinURL(baseURL, \"cdn-cgi/image\", operations, src) : joinURL(baseURL, src);\n return {\n url\n };\n};\n","\nimport * as cloudflareRuntime$LKaC0ICDYu from '/home/vsts/work/1/s/frontend/app/node_modules/@nuxt/image/dist/runtime/providers/cloudflare'\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\": \"cloudflare\",\n \"domains\": [\n \"cdn.dev.vanderven.de\",\n \"cdn.vanderven.de\",\n \"cdn.staging.vanderven.de\"\n ],\n \"alias\": {},\n \"densities\": [\n 1,\n 2\n ],\n \"format\": [\n \"webp\"\n ]\n}\n\nimageOptions.providers = {\n ['cloudflare']: { provider: cloudflareRuntime$LKaC0ICDYu, defaults: {\"baseURL\":\"https://www.vanderven.de/\"} }\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":["HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","PLUS_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_PIPE_RE","ENC_SPACE_RE","encode","text","encodeQueryValue","input","encodeQueryKey","encodeQueryItem","key","value","_value","PROTOCOL_STRICT_REGEX","PROTOCOL_REGEX","PROTOCOL_RELATIVE_REGEX","JOIN_LEADING_SLASH_RE","hasProtocol","inputString","opts","withTrailingSlash","respectQueryAndFragment","hasLeadingSlash","withLeadingSlash","isNonEmptyURL","url","joinURL","base","segment","url2","_segment","protocolRelative","parseURL","defaultProto","_specialProtoMatch","_proto","_pathname","parsePath","protocol","auth","hostAndPath","host","path","pathname","search","hash","imageMeta","_ctx","_imageMeta","err","resolve","reject","img","meta","createMapper","map","createOperationsGenerator","formatter","keyMap","joinWith","valueMap","valueKey","modifiers","_","mapper","parseSize","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","alias","inputHost","_options","expectedFormat","_a","_b","name","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","i","sizeVariant","previousWidth","operationsGenerator","val","defaultModifiers","src","baseURL","mergeModifiers","operations","imageOptions","cloudflareRuntime$LKaC0ICDYu","useImage","config","useRuntimeConfig","nuxtApp","useNuxtApp"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}