{"version":3,"file":"CixZjHkD.js","sources":["../../../../node_modules/@nuxt/image/node_modules/ufo/dist/index.mjs","../../../../node_modules/@nuxt/image/dist/runtime/utils/index.js","../../../../node_modules/@nuxt/image/dist/runtime/providers/cloudflare.js","../../../../virtual:nuxt:/home/vsts/work/1/s/frontend/app/.nuxt/image-options.mjs"],"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 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 { 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 "],"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","createMapper","map","createOperationsGenerator","formatter","keyMap","joinWith","valueMap","valueKey","modifiers","_","mapper","parseSize","parseDensities","densities","density","d","checkDensities","parseSizes","sizes","entry","e","s","operationsGenerator","val","defaultModifiers","getImage","src","baseURL","mergeModifiers","operations","imageOptions","cloudflareRuntime$LKaC0ICDYu"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}