@stacksjs/browser 0.66.0 → 0.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map DELETED
@@ -1,90 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../node_modules/pluralize/pluralize.js", "../../../../../node_modules/slugify/slugify.js", "../../../../../node_modules/validator/lib/util/assertString.js", "../../../../../node_modules/validator/lib/isIP.js", "../../../../../node_modules/validator/lib/util/merge.js", "../../../../../node_modules/validator/lib/isBase64.js", "../../../../../node_modules/validator/lib/isJWT.js", "../../../../../node_modules/validator/lib/isFQDN.js", "../../../../../node_modules/validator/lib/isURL.js", "../../../../../node_modules/validator/lib/isSlug.js", "../../../../../node_modules/validator/lib/isIBAN.js", "../../../../../node_modules/validator/lib/isUUID.js", "../../../../../node_modules/validator/lib/isAscii.js", "../../../../../node_modules/validator/lib/isByteLength.js", "../../../../../node_modules/validator/lib/isEmail.js", "../../../../../node_modules/validator/lib/alpha.js", "../../../../../node_modules/validator/lib/isAlpha.js", "../../../../../node_modules/validator/lib/isLatLong.js", "../../../../../node_modules/validator/lib/util/includes.js", "../../../../../node_modules/validator/lib/isDecimal.js", "../../../../../node_modules/validator/lib/isHexColor.js", "../../../../../node_modules/validator/lib/isLuhnNumber.js", "../../../../../node_modules/validator/lib/isCreditCard.js", "../../../../../node_modules/validator/lib/isAlphanumeric.js", "../../../../../node_modules/validator/lib/isPassportNumber.js", "../../../../../node_modules/validator/lib/isPostalCode.js", "../../../../../node_modules/validator/lib/isMobilePhone.js", "../../../../../node_modules/dayjs/dayjs.min.js", "../../../../../node_modules/dayjs/plugin/isSameOrAfter.js", "../../../../../node_modules/dayjs/plugin/isSameOrBefore.js", "../../../../../node_modules/dayjs/plugin/customParseFormat.js", "../../../../../node_modules/validator/lib/escape.js", "../../../../../node_modules/validator/lib/normalizeEmail.js", "../../../../../node_modules/title-case/dist/index.js", "../../strings/src/helpers.ts", "../../strings/src/pluralize.ts", "../../strings/src/utils.ts", "../../../../../node_modules/@vinejs/vine/build/chunk-577THMJC.js", "../../../../../node_modules/@vinejs/vine/build/chunk-CSAU5B4Q.js", "../../../../../node_modules/dlv/dist/dlv.es.js", "../../../../../node_modules/@vinejs/vine/build/chunk-2W32DW3L.js", "../../../../../node_modules/@vinejs/vine/build/chunk-46WINKKP.js", "../../../../../node_modules/@poppinss/macroable/build/index.js", "../../../../../node_modules/camelcase/index.js", "../../../../../node_modules/normalize-url/index.js", "../../../../../node_modules/@vinejs/compiler/build/index.js", "../../validation/src/validator.ts", "../src/utils/base.ts", "../../../../../node_modules/perfect-debounce/dist/index.mjs", "../src/utils/function.ts", "../src/utils/guards.ts", "../src/utils/math.ts", "../../../../../node_modules/@vue/shared/dist/shared.esm-bundler.js", "../../../../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js", "../../../../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js", "../../../../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js", "../../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", "../../../../../node_modules/vue-demi/lib/index.mjs", "../../../../../node_modules/@vueuse/shared/index.mjs", "../../../../../node_modules/@vueuse/math/index.mjs", "../src/utils/promise.ts", "../../../../../node_modules/magic-regexp/dist/shared/magic-regexp.b6c5c17d.mjs", "../src/utils/regex.ts", "../src/utils/retry.ts", "../src/utils/sleep.ts", "../src/utils/throttle.ts", "../../../../../node_modules/@vueuse/core/index.mjs", "../../../../../node_modules/@vueuse/head/node_modules/@unhead/dom/node_modules/@unhead/shared/dist/index.mjs", "../../../../../node_modules/@vueuse/head/node_modules/@unhead/dom/dist/index.mjs", "../../../../../node_modules/@vueuse/head/node_modules/@unhead/vue/node_modules/@unhead/shared/dist/index.mjs", "../../../../../node_modules/hookable/dist/index.mjs", "../../../../../node_modules/@vueuse/head/node_modules/@unhead/vue/node_modules/unhead/dist/index.mjs", "../../../../../node_modules/@vueuse/head/node_modules/@unhead/vue/dist/shared/vue.f49591ad.mjs", "../../../../../node_modules/@vueuse/head/node_modules/@unhead/vue/dist/shared/vue.8fc199ce.mjs", "../../../../../node_modules/@vueuse/head/node_modules/@unhead/vue/dist/index.mjs", "../../../../../node_modules/@vueuse/head/node_modules/@unhead/vue/dist/polyfill.mjs", "../../../../../node_modules/@unhead/shared/dist/index.mjs", "../../../../../node_modules/@unhead/ssr/dist/index.mjs", "../../../../../node_modules/@vueuse/head/node_modules/@unhead/vue/dist/components.mjs", "../../../../../node_modules/@vueuse/head/dist/index.mjs", "../../../../../node_modules/pretty-bytes/index.js"],
4
- "sourcesContent": [
5
- "/* global define */\n\n(function (root, pluralize) {\n /* istanbul ignore else */\n if (typeof require === 'function' && typeof exports === 'object' && typeof module === 'object') {\n // Node.\n module.exports = pluralize();\n } else if (typeof define === 'function' && define.amd) {\n // AMD, registers as an anonymous module.\n define(function () {\n return pluralize();\n });\n } else {\n // Browser global.\n root.pluralize = pluralize();\n }\n})(this, function () {\n // Rule storage - pluralize and singularize need to be run sequentially,\n // while other rules can be optimized using an object for instant lookups.\n var pluralRules = [];\n var singularRules = [];\n var uncountables = {};\n var irregularPlurals = {};\n var irregularSingles = {};\n\n /**\n * Sanitize a pluralization rule to a usable regular expression.\n *\n * @param {(RegExp|string)} rule\n * @return {RegExp}\n */\n function sanitizeRule (rule) {\n if (typeof rule === 'string') {\n return new RegExp('^' + rule + '$', 'i');\n }\n\n return rule;\n }\n\n /**\n * Pass in a word token to produce a function that can replicate the case on\n * another word.\n *\n * @param {string} word\n * @param {string} token\n * @return {Function}\n */\n function restoreCase (word, token) {\n // Tokens are an exact match.\n if (word === token) return token;\n\n // Lower cased words. E.g. \"hello\".\n if (word === word.toLowerCase()) return token.toLowerCase();\n\n // Upper cased words. E.g. \"WHISKY\".\n if (word === word.toUpperCase()) return token.toUpperCase();\n\n // Title cased words. E.g. \"Title\".\n if (word[0] === word[0].toUpperCase()) {\n return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase();\n }\n\n // Lower cased words. E.g. \"test\".\n return token.toLowerCase();\n }\n\n /**\n * Interpolate a regexp string.\n *\n * @param {string} str\n * @param {Array} args\n * @return {string}\n */\n function interpolate (str, args) {\n return str.replace(/\\$(\\d{1,2})/g, function (match, index) {\n return args[index] || '';\n });\n }\n\n /**\n * Replace a word using a rule.\n *\n * @param {string} word\n * @param {Array} rule\n * @return {string}\n */\n function replace (word, rule) {\n return word.replace(rule[0], function (match, index) {\n var result = interpolate(rule[1], arguments);\n\n if (match === '') {\n return restoreCase(word[index - 1], result);\n }\n\n return restoreCase(match, result);\n });\n }\n\n /**\n * Sanitize a word by passing in the word and sanitization rules.\n *\n * @param {string} token\n * @param {string} word\n * @param {Array} rules\n * @return {string}\n */\n function sanitizeWord (token, word, rules) {\n // Empty string or doesn't need fixing.\n if (!token.length || uncountables.hasOwnProperty(token)) {\n return word;\n }\n\n var len = rules.length;\n\n // Iterate over the sanitization rules and use the first one to match.\n while (len--) {\n var rule = rules[len];\n\n if (rule[0].test(word)) return replace(word, rule);\n }\n\n return word;\n }\n\n /**\n * Replace a word with the updated word.\n *\n * @param {Object} replaceMap\n * @param {Object} keepMap\n * @param {Array} rules\n * @return {Function}\n */\n function replaceWord (replaceMap, keepMap, rules) {\n return function (word) {\n // Get the correct token and case restoration functions.\n var token = word.toLowerCase();\n\n // Check against the keep object map.\n if (keepMap.hasOwnProperty(token)) {\n return restoreCase(word, token);\n }\n\n // Check against the replacement map for a direct word replacement.\n if (replaceMap.hasOwnProperty(token)) {\n return restoreCase(word, replaceMap[token]);\n }\n\n // Run all the rules against the word.\n return sanitizeWord(token, word, rules);\n };\n }\n\n /**\n * Check if a word is part of the map.\n */\n function checkWord (replaceMap, keepMap, rules, bool) {\n return function (word) {\n var token = word.toLowerCase();\n\n if (keepMap.hasOwnProperty(token)) return true;\n if (replaceMap.hasOwnProperty(token)) return false;\n\n return sanitizeWord(token, token, rules) === token;\n };\n }\n\n /**\n * Pluralize or singularize a word based on the passed in count.\n *\n * @param {string} word The word to pluralize\n * @param {number} count How many of the word exist\n * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks)\n * @return {string}\n */\n function pluralize (word, count, inclusive) {\n var pluralized = count === 1\n ? pluralize.singular(word) : pluralize.plural(word);\n\n return (inclusive ? count + ' ' : '') + pluralized;\n }\n\n /**\n * Pluralize a word.\n *\n * @type {Function}\n */\n pluralize.plural = replaceWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Check if a word is plural.\n *\n * @type {Function}\n */\n pluralize.isPlural = checkWord(\n irregularSingles, irregularPlurals, pluralRules\n );\n\n /**\n * Singularize a word.\n *\n * @type {Function}\n */\n pluralize.singular = replaceWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Check if a word is singular.\n *\n * @type {Function}\n */\n pluralize.isSingular = checkWord(\n irregularPlurals, irregularSingles, singularRules\n );\n\n /**\n * Add a pluralization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addPluralRule = function (rule, replacement) {\n pluralRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add a singularization rule to the collection.\n *\n * @param {(string|RegExp)} rule\n * @param {string} replacement\n */\n pluralize.addSingularRule = function (rule, replacement) {\n singularRules.push([sanitizeRule(rule), replacement]);\n };\n\n /**\n * Add an uncountable word rule.\n *\n * @param {(string|RegExp)} word\n */\n pluralize.addUncountableRule = function (word) {\n if (typeof word === 'string') {\n uncountables[word.toLowerCase()] = true;\n return;\n }\n\n // Set singular and plural references for the word.\n pluralize.addPluralRule(word, '$0');\n pluralize.addSingularRule(word, '$0');\n };\n\n /**\n * Add an irregular word definition.\n *\n * @param {string} single\n * @param {string} plural\n */\n pluralize.addIrregularRule = function (single, plural) {\n plural = plural.toLowerCase();\n single = single.toLowerCase();\n\n irregularSingles[single] = plural;\n irregularPlurals[plural] = single;\n };\n\n /**\n * Irregular rules.\n */\n [\n // Pronouns.\n ['I', 'we'],\n ['me', 'us'],\n ['he', 'they'],\n ['she', 'they'],\n ['them', 'them'],\n ['myself', 'ourselves'],\n ['yourself', 'yourselves'],\n ['itself', 'themselves'],\n ['herself', 'themselves'],\n ['himself', 'themselves'],\n ['themself', 'themselves'],\n ['is', 'are'],\n ['was', 'were'],\n ['has', 'have'],\n ['this', 'these'],\n ['that', 'those'],\n // Words ending in with a consonant and `o`.\n ['echo', 'echoes'],\n ['dingo', 'dingoes'],\n ['volcano', 'volcanoes'],\n ['tornado', 'tornadoes'],\n ['torpedo', 'torpedoes'],\n // Ends with `us`.\n ['genus', 'genera'],\n ['viscus', 'viscera'],\n // Ends with `ma`.\n ['stigma', 'stigmata'],\n ['stoma', 'stomata'],\n ['dogma', 'dogmata'],\n ['lemma', 'lemmata'],\n ['schema', 'schemata'],\n ['anathema', 'anathemata'],\n // Other irregular rules.\n ['ox', 'oxen'],\n ['axe', 'axes'],\n ['die', 'dice'],\n ['yes', 'yeses'],\n ['foot', 'feet'],\n ['eave', 'eaves'],\n ['goose', 'geese'],\n ['tooth', 'teeth'],\n ['quiz', 'quizzes'],\n ['human', 'humans'],\n ['proof', 'proofs'],\n ['carve', 'carves'],\n ['valve', 'valves'],\n ['looey', 'looies'],\n ['thief', 'thieves'],\n ['groove', 'grooves'],\n ['pickaxe', 'pickaxes'],\n ['passerby', 'passersby']\n ].forEach(function (rule) {\n return pluralize.addIrregularRule(rule[0], rule[1]);\n });\n\n /**\n * Pluralization rules.\n */\n [\n [/s?$/i, 's'],\n [/[^\\u0000-\\u007F]$/i, '$0'],\n [/([^aeiou]ese)$/i, '$1'],\n [/(ax|test)is$/i, '$1es'],\n [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'],\n [/(e[mn]u)s?$/i, '$1s'],\n [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'],\n [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'],\n [/(seraph|cherub)(?:im)?$/i, '$1im'],\n [/(her|at|gr)o$/i, '$1oes'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'],\n [/sis$/i, 'ses'],\n [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'],\n [/([^aeiouy]|qu)y$/i, '$1ies'],\n [/([^ch][ieo][ln])ey$/i, '$1ies'],\n [/(x|ch|ss|sh|zz)$/i, '$1es'],\n [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'],\n [/\\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'],\n [/(pe)(?:rson|ople)$/i, '$1ople'],\n [/(child)(?:ren)?$/i, '$1ren'],\n [/eaux$/i, '$0'],\n [/m[ae]n$/i, 'men'],\n ['thou', 'you']\n ].forEach(function (rule) {\n return pluralize.addPluralRule(rule[0], rule[1]);\n });\n\n /**\n * Singularization rules.\n */\n [\n [/s$/i, ''],\n [/(ss)$/i, '$1'],\n [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\\w]|^)li)ves$/i, '$1fe'],\n [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'],\n [/ies$/i, 'y'],\n [/\\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, '$1ie'],\n [/\\b(mon|smil)ies$/i, '$1ey'],\n [/\\b((?:tit)?m|l)ice$/i, '$1ouse'],\n [/(seraph|cherub)im$/i, '$1'],\n [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'],\n [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'],\n [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'],\n [/(test)(?:is|es)$/i, '$1is'],\n [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'],\n [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'],\n [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'],\n [/(alumn|alg|vertebr)ae$/i, '$1a'],\n [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'],\n [/(matr|append)ices$/i, '$1ix'],\n [/(pe)(rson|ople)$/i, '$1rson'],\n [/(child)ren$/i, '$1'],\n [/(eau)x?$/i, '$1'],\n [/men$/i, 'man']\n ].forEach(function (rule) {\n return pluralize.addSingularRule(rule[0], rule[1]);\n });\n\n /**\n * Uncountable rules.\n */\n [\n // Singular words with no plurals.\n 'adulthood',\n 'advice',\n 'agenda',\n 'aid',\n 'aircraft',\n 'alcohol',\n 'ammo',\n 'analytics',\n 'anime',\n 'athletics',\n 'audio',\n 'bison',\n 'blood',\n 'bream',\n 'buffalo',\n 'butter',\n 'carp',\n 'cash',\n 'chassis',\n 'chess',\n 'clothing',\n 'cod',\n 'commerce',\n 'cooperation',\n 'corps',\n 'debris',\n 'diabetes',\n 'digestion',\n 'elk',\n 'energy',\n 'equipment',\n 'excretion',\n 'expertise',\n 'firmware',\n 'flounder',\n 'fun',\n 'gallows',\n 'garbage',\n 'graffiti',\n 'hardware',\n 'headquarters',\n 'health',\n 'herpes',\n 'highjinks',\n 'homework',\n 'housework',\n 'information',\n 'jeans',\n 'justice',\n 'kudos',\n 'labour',\n 'literature',\n 'machinery',\n 'mackerel',\n 'mail',\n 'media',\n 'mews',\n 'moose',\n 'music',\n 'mud',\n 'manga',\n 'news',\n 'only',\n 'personnel',\n 'pike',\n 'plankton',\n 'pliers',\n 'police',\n 'pollution',\n 'premises',\n 'rain',\n 'research',\n 'rice',\n 'salmon',\n 'scissors',\n 'series',\n 'sewage',\n 'shambles',\n 'shrimp',\n 'software',\n 'species',\n 'staff',\n 'swine',\n 'tennis',\n 'traffic',\n 'transportation',\n 'trout',\n 'tuna',\n 'wealth',\n 'welfare',\n 'whiting',\n 'wildebeest',\n 'wildlife',\n 'you',\n /pok[eé]mon$/i,\n // Regexes.\n /[^aeiou]ese$/i, // \"chinese\", \"japanese\"\n /deer$/i, // \"deer\", \"reindeer\"\n /fish$/i, // \"fish\", \"blowfish\", \"angelfish\"\n /measles$/i,\n /o[iu]s$/i, // \"carnivorous\"\n /pox$/i, // \"chickpox\", \"smallpox\"\n /sheep$/i\n ].forEach(pluralize.addUncountableRule);\n\n return pluralize;\n});\n",
6
- "\n;(function (name, root, factory) {\n if (typeof exports === 'object') {\n module.exports = factory()\n module.exports['default'] = factory()\n }\n /* istanbul ignore next */\n else if (typeof define === 'function' && define.amd) {\n define(factory)\n }\n else {\n root[name] = factory()\n }\n}('slugify', this, function () {\n var charMap = JSON.parse('{\"$\":\"dollar\",\"%\":\"percent\",\"&\":\"and\",\"<\":\"less\",\">\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ō\":\"O\",\"ō\":\"o\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"Ə\":\"E\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"ə\":\"e\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"Ա\":\"A\",\"Բ\":\"B\",\"Գ\":\"G\",\"Դ\":\"D\",\"Ե\":\"E\",\"Զ\":\"Z\",\"Է\":\"E\\'\",\"Ը\":\"Y\\'\",\"Թ\":\"T\\'\",\"Ժ\":\"JH\",\"Ի\":\"I\",\"Լ\":\"L\",\"Խ\":\"X\",\"Ծ\":\"C\\'\",\"Կ\":\"K\",\"Հ\":\"H\",\"Ձ\":\"D\\'\",\"Ղ\":\"GH\",\"Ճ\":\"TW\",\"Մ\":\"M\",\"Յ\":\"Y\",\"Ն\":\"N\",\"Շ\":\"SH\",\"Չ\":\"CH\",\"Պ\":\"P\",\"Ջ\":\"J\",\"Ռ\":\"R\\'\",\"Ս\":\"S\",\"Վ\":\"V\",\"Տ\":\"T\",\"Ր\":\"R\",\"Ց\":\"C\",\"Փ\":\"P\\'\",\"Ք\":\"Q\\'\",\"Օ\":\"O\\'\\'\",\"Ֆ\":\"F\",\"և\":\"EV\",\"ء\":\"a\",\"آ\":\"aa\",\"أ\":\"a\",\"ؤ\":\"u\",\"إ\":\"i\",\"ئ\":\"e\",\"ا\":\"a\",\"ب\":\"b\",\"ة\":\"h\",\"ت\":\"t\",\"ث\":\"th\",\"ج\":\"j\",\"ح\":\"h\",\"خ\":\"kh\",\"د\":\"d\",\"ذ\":\"th\",\"ر\":\"r\",\"ز\":\"z\",\"س\":\"s\",\"ش\":\"sh\",\"ص\":\"s\",\"ض\":\"dh\",\"ط\":\"t\",\"ظ\":\"z\",\"ع\":\"a\",\"غ\":\"gh\",\"ف\":\"f\",\"ق\":\"q\",\"ك\":\"k\",\"ل\":\"l\",\"م\":\"m\",\"ن\":\"n\",\"ه\":\"h\",\"و\":\"w\",\"ى\":\"a\",\"ي\":\"y\",\"ً\":\"an\",\"ٌ\":\"on\",\"ٍ\":\"en\",\"َ\":\"a\",\"ُ\":\"u\",\"ِ\":\"e\",\"ْ\":\"\",\"٠\":\"0\",\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"پ\":\"p\",\"چ\":\"ch\",\"ژ\":\"zh\",\"ک\":\"k\",\"گ\":\"g\",\"ی\":\"y\",\"۰\":\"0\",\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"฿\":\"baht\",\"ა\":\"a\",\"ბ\":\"b\",\"გ\":\"g\",\"დ\":\"d\",\"ე\":\"e\",\"ვ\":\"v\",\"ზ\":\"z\",\"თ\":\"t\",\"ი\":\"i\",\"კ\":\"k\",\"ლ\":\"l\",\"მ\":\"m\",\"ნ\":\"n\",\"ო\":\"o\",\"პ\":\"p\",\"ჟ\":\"zh\",\"რ\":\"r\",\"ს\":\"s\",\"ტ\":\"t\",\"უ\":\"u\",\"ფ\":\"f\",\"ქ\":\"k\",\"ღ\":\"gh\",\"ყ\":\"q\",\"შ\":\"sh\",\"ჩ\":\"ch\",\"ც\":\"ts\",\"ძ\":\"dz\",\"წ\":\"ts\",\"ჭ\":\"ch\",\"ხ\":\"kh\",\"ჯ\":\"j\",\"ჰ\":\"h\",\"Ṣ\":\"S\",\"ṣ\":\"s\",\"Ẁ\":\"W\",\"ẁ\":\"w\",\"Ẃ\":\"W\",\"ẃ\":\"w\",\"Ẅ\":\"W\",\"ẅ\":\"w\",\"ẞ\":\"SS\",\"Ạ\":\"A\",\"ạ\":\"a\",\"Ả\":\"A\",\"ả\":\"a\",\"Ấ\":\"A\",\"ấ\":\"a\",\"Ầ\":\"A\",\"ầ\":\"a\",\"Ẩ\":\"A\",\"ẩ\":\"a\",\"Ẫ\":\"A\",\"ẫ\":\"a\",\"Ậ\":\"A\",\"ậ\":\"a\",\"Ắ\":\"A\",\"ắ\":\"a\",\"Ằ\":\"A\",\"ằ\":\"a\",\"Ẳ\":\"A\",\"ẳ\":\"a\",\"Ẵ\":\"A\",\"ẵ\":\"a\",\"Ặ\":\"A\",\"ặ\":\"a\",\"Ẹ\":\"E\",\"ẹ\":\"e\",\"Ẻ\":\"E\",\"ẻ\":\"e\",\"Ẽ\":\"E\",\"ẽ\":\"e\",\"Ế\":\"E\",\"ế\":\"e\",\"Ề\":\"E\",\"ề\":\"e\",\"Ể\":\"E\",\"ể\":\"e\",\"Ễ\":\"E\",\"ễ\":\"e\",\"Ệ\":\"E\",\"ệ\":\"e\",\"Ỉ\":\"I\",\"ỉ\":\"i\",\"Ị\":\"I\",\"ị\":\"i\",\"Ọ\":\"O\",\"ọ\":\"o\",\"Ỏ\":\"O\",\"ỏ\":\"o\",\"Ố\":\"O\",\"ố\":\"o\",\"Ồ\":\"O\",\"ồ\":\"o\",\"Ổ\":\"O\",\"ổ\":\"o\",\"Ỗ\":\"O\",\"ỗ\":\"o\",\"Ộ\":\"O\",\"ộ\":\"o\",\"Ớ\":\"O\",\"ớ\":\"o\",\"Ờ\":\"O\",\"ờ\":\"o\",\"Ở\":\"O\",\"ở\":\"o\",\"Ỡ\":\"O\",\"ỡ\":\"o\",\"Ợ\":\"O\",\"ợ\":\"o\",\"Ụ\":\"U\",\"ụ\":\"u\",\"Ủ\":\"U\",\"ủ\":\"u\",\"Ứ\":\"U\",\"ứ\":\"u\",\"Ừ\":\"U\",\"ừ\":\"u\",\"Ử\":\"U\",\"ử\":\"u\",\"Ữ\":\"U\",\"ữ\":\"u\",\"Ự\":\"U\",\"ự\":\"u\",\"Ỳ\":\"Y\",\"ỳ\":\"y\",\"Ỵ\":\"Y\",\"ỵ\":\"y\",\"Ỷ\":\"Y\",\"ỷ\":\"y\",\"Ỹ\":\"Y\",\"ỹ\":\"y\",\"–\":\"-\",\"‘\":\"\\'\",\"’\":\"\\'\",\"“\":\"\\\\\\\"\",\"”\":\"\\\\\\\"\",\"„\":\"\\\\\\\"\",\"†\":\"+\",\"•\":\"*\",\"…\":\"...\",\"₠\":\"ecu\",\"₢\":\"cruzeiro\",\"₣\":\"french franc\",\"₤\":\"lira\",\"₥\":\"mill\",\"₦\":\"naira\",\"₧\":\"peseta\",\"₨\":\"rupee\",\"₩\":\"won\",\"₪\":\"new shequel\",\"₫\":\"dong\",\"€\":\"euro\",\"₭\":\"kip\",\"₮\":\"tugrik\",\"₯\":\"drachma\",\"₰\":\"penny\",\"₱\":\"peso\",\"₲\":\"guarani\",\"₳\":\"austral\",\"₴\":\"hryvnia\",\"₵\":\"cedi\",\"₸\":\"kazakhstani tenge\",\"₹\":\"indian rupee\",\"₺\":\"turkish lira\",\"₽\":\"russian ruble\",\"₿\":\"bitcoin\",\"℠\":\"sm\",\"™\":\"tm\",\"∂\":\"d\",\"∆\":\"delta\",\"∑\":\"sum\",\"∞\":\"infinity\",\"♥\":\"love\",\"元\":\"yuan\",\"円\":\"yen\",\"﷼\":\"rial\",\"ﻵ\":\"laa\",\"ﻷ\":\"laa\",\"ﻹ\":\"lai\",\"ﻻ\":\"la\"}')\n var locales = JSON.parse('{\"bg\":{\"Й\":\"Y\",\"Ц\":\"Ts\",\"Щ\":\"Sht\",\"Ъ\":\"A\",\"Ь\":\"Y\",\"й\":\"y\",\"ц\":\"ts\",\"щ\":\"sht\",\"ъ\":\"a\",\"ь\":\"y\"},\"de\":{\"Ä\":\"AE\",\"ä\":\"ae\",\"Ö\":\"OE\",\"ö\":\"oe\",\"Ü\":\"UE\",\"ü\":\"ue\",\"ß\":\"ss\",\"%\":\"prozent\",\"&\":\"und\",\"|\":\"oder\",\"∑\":\"summe\",\"∞\":\"unendlich\",\"♥\":\"liebe\"},\"es\":{\"%\":\"por ciento\",\"&\":\"y\",\"<\":\"menor que\",\">\":\"mayor que\",\"|\":\"o\",\"¢\":\"centavos\",\"£\":\"libras\",\"¤\":\"moneda\",\"₣\":\"francos\",\"∑\":\"suma\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"fr\":{\"%\":\"pourcent\",\"&\":\"et\",\"<\":\"plus petit\",\">\":\"plus grand\",\"|\":\"ou\",\"¢\":\"centime\",\"£\":\"livre\",\"¤\":\"devise\",\"₣\":\"franc\",\"∑\":\"somme\",\"∞\":\"infini\",\"♥\":\"amour\"},\"pt\":{\"%\":\"porcento\",\"&\":\"e\",\"<\":\"menor\",\">\":\"maior\",\"|\":\"ou\",\"¢\":\"centavo\",\"∑\":\"soma\",\"£\":\"libra\",\"∞\":\"infinito\",\"♥\":\"amor\"},\"uk\":{\"И\":\"Y\",\"и\":\"y\",\"Й\":\"Y\",\"й\":\"y\",\"Ц\":\"Ts\",\"ц\":\"ts\",\"Х\":\"Kh\",\"х\":\"kh\",\"Щ\":\"Shch\",\"щ\":\"shch\",\"Г\":\"H\",\"г\":\"h\"},\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"},\"da\":{\"Ø\":\"OE\",\"ø\":\"oe\",\"Å\":\"AA\",\"å\":\"aa\",\"%\":\"procent\",\"&\":\"og\",\"|\":\"eller\",\"$\":\"dollar\",\"<\":\"mindre end\",\">\":\"større end\"},\"nb\":{\"&\":\"og\",\"Å\":\"AA\",\"Æ\":\"AE\",\"Ø\":\"OE\",\"å\":\"aa\",\"æ\":\"ae\",\"ø\":\"oe\"},\"it\":{\"&\":\"e\"},\"nl\":{\"&\":\"en\"},\"sv\":{\"&\":\"och\",\"Å\":\"AA\",\"Ä\":\"AE\",\"Ö\":\"OE\",\"å\":\"aa\",\"ä\":\"ae\",\"ö\":\"oe\"}}')\n\n function replace (string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected')\n }\n\n options = (typeof options === 'string')\n ? {replacement: options}\n : options || {}\n\n var locale = locales[options.locale] || {}\n\n var replacement = options.replacement === undefined ? '-' : options.replacement\n\n var trim = options.trim === undefined ? true : options.trim\n\n var slug = string.normalize().split('')\n // replace characters based on charMap\n .reduce(function (result, ch) {\n var appendChar = locale[ch];\n if (appendChar === undefined) appendChar = charMap[ch];\n if (appendChar === undefined) appendChar = ch;\n if (appendChar === replacement) appendChar = ' ';\n return result + appendChar\n // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '')\n }, '');\n\n if (options.strict) {\n slug = slug.replace(/[^A-Za-z0-9\\s]/g, '');\n }\n\n if (trim) {\n slug = slug.trim()\n }\n\n // Replace spaces with replacement character, treating multiple consecutive\n // spaces as a single space.\n slug = slug.replace(/\\s+/g, replacement);\n\n if (options.lower) {\n slug = slug.toLowerCase()\n }\n\n return slug\n }\n\n replace.extend = function (customMap) {\n Object.assign(charMap, customMap)\n }\n\n return replace\n}))\n",
7
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n if (!isString) {\n var invalidType = _typeof(input);\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
8
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n <zone_id> part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as <zone_id>, those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n return false;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
9
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
10
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\nvar urlSafeBase64 = /^[A-Z0-9_\\-]*$/i;\nvar defaultBase64Options = {\n urlSafe: false\n};\nfunction isBase64(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase64Options);\n var len = str.length;\n if (options.urlSafe) {\n return urlSafeBase64.test(str);\n }\n if (len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
11
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isBase = _interopRequireDefault(require(\"./isBase64\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n var dotSplit = str.split('.');\n var len = dotSplit.length;\n if (len !== 3) {\n return false;\n }\n return dotSplit.reduce(function (acc, currElem) {\n return acc && (0, _isBase.default)(currElem, {\n urlSafe: true\n });\n }, true);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
12
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
13
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n options = (0, _merge.default)(options, default_url_options);\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n split[0] = url.slice(2);\n }\n url = split.join('://');\n if (url === '') {\n return false;\n }\n split = url.split('/');\n url = split.shift();\n if (url === '' && !options.require_host) {\n return true;\n }\n split = url.split('@');\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n if (split[0] === '') {\n return false;\n }\n auth = split.shift();\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n if (user === '' && password === '') {\n return false;\n }\n }\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n if (split.length) {\n port_str = split.join(':');\n }\n }\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n if (options.host_whitelist) {\n return checkHost(host, options.host_whitelist);\n }\n if (host === '' && !options.require_host) {\n return true;\n }\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n host = host || ipv6;\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
14
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSlug;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar charsetRegex = /^[^\\s-_](?!.*?[-_]{2,})[a-z0-9-\\\\][^\\s]*[^-_\\s]$/;\nfunction isSlug(str) {\n (0, _assertString.default)(str);\n return charsetRegex.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
15
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIBAN;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * List of country codes with\n * corresponding IBAN regular expression\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n */\nvar ibanRegexThroughCountryCode = {\n AD: /^(AD[0-9]{2})\\d{8}[A-Z0-9]{12}$/,\n AE: /^(AE[0-9]{2})\\d{3}\\d{16}$/,\n AL: /^(AL[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n AT: /^(AT[0-9]{2})\\d{16}$/,\n AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n BA: /^(BA[0-9]{2})\\d{16}$/,\n BE: /^(BE[0-9]{2})\\d{12}$/,\n BG: /^(BG[0-9]{2})[A-Z]{4}\\d{6}[A-Z0-9]{8}$/,\n BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,\n BR: /^(BR[0-9]{2})\\d{23}[A-Z]{1}[A-Z0-9]{1}$/,\n BY: /^(BY[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n CH: /^(CH[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n CR: /^(CR[0-9]{2})\\d{18}$/,\n CY: /^(CY[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n CZ: /^(CZ[0-9]{2})\\d{20}$/,\n DE: /^(DE[0-9]{2})\\d{18}$/,\n DK: /^(DK[0-9]{2})\\d{14}$/,\n DO: /^(DO[0-9]{2})[A-Z]{4}\\d{20}$/,\n DZ: /^(DZ\\d{24})$/,\n EE: /^(EE[0-9]{2})\\d{16}$/,\n EG: /^(EG[0-9]{2})\\d{25}$/,\n ES: /^(ES[0-9]{2})\\d{20}$/,\n FI: /^(FI[0-9]{2})\\d{14}$/,\n FO: /^(FO[0-9]{2})\\d{14}$/,\n FR: /^(FR[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n GB: /^(GB[0-9]{2})[A-Z]{4}\\d{14}$/,\n GE: /^(GE[0-9]{2})[A-Z0-9]{2}\\d{16}$/,\n GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,\n GL: /^(GL[0-9]{2})\\d{14}$/,\n GR: /^(GR[0-9]{2})\\d{7}[A-Z0-9]{16}$/,\n GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,\n HR: /^(HR[0-9]{2})\\d{17}$/,\n HU: /^(HU[0-9]{2})\\d{24}$/,\n IE: /^(IE[0-9]{2})[A-Z0-9]{4}\\d{14}$/,\n IL: /^(IL[0-9]{2})\\d{19}$/,\n IQ: /^(IQ[0-9]{2})[A-Z]{4}\\d{15}$/,\n IR: /^(IR[0-9]{2})0\\d{2}0\\d{18}$/,\n IS: /^(IS[0-9]{2})\\d{22}$/,\n IT: /^(IT[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n JO: /^(JO[0-9]{2})[A-Z]{4}\\d{22}$/,\n KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,\n KZ: /^(KZ[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LB: /^(LB[0-9]{2})\\d{4}[A-Z0-9]{20}$/,\n LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,\n LI: /^(LI[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n LT: /^(LT[0-9]{2})\\d{16}$/,\n LU: /^(LU[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,\n MA: /^(MA[0-9]{26})$/,\n MC: /^(MC[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,\n ME: /^(ME[0-9]{2})\\d{18}$/,\n MK: /^(MK[0-9]{2})\\d{3}[A-Z0-9]{10}\\d{2}$/,\n MR: /^(MR[0-9]{2})\\d{23}$/,\n MT: /^(MT[0-9]{2})[A-Z]{4}\\d{5}[A-Z0-9]{18}$/,\n MU: /^(MU[0-9]{2})[A-Z]{4}\\d{19}[A-Z]{3}$/,\n MZ: /^(MZ[0-9]{2})\\d{21}$/,\n NL: /^(NL[0-9]{2})[A-Z]{4}\\d{10}$/,\n NO: /^(NO[0-9]{2})\\d{11}$/,\n PK: /^(PK[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n PL: /^(PL[0-9]{2})\\d{24}$/,\n PS: /^(PS[0-9]{2})[A-Z0-9]{4}\\d{21}$/,\n PT: /^(PT[0-9]{2})\\d{21}$/,\n QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,\n RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,\n RS: /^(RS[0-9]{2})\\d{18}$/,\n SA: /^(SA[0-9]{2})\\d{2}[A-Z0-9]{18}$/,\n SC: /^(SC[0-9]{2})[A-Z]{4}\\d{20}[A-Z]{3}$/,\n SE: /^(SE[0-9]{2})\\d{20}$/,\n SI: /^(SI[0-9]{2})\\d{15}$/,\n SK: /^(SK[0-9]{2})\\d{20}$/,\n SM: /^(SM[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n SV: /^(SV[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n TL: /^(TL[0-9]{2})\\d{19}$/,\n TN: /^(TN[0-9]{2})\\d{20}$/,\n TR: /^(TR[0-9]{2})\\d{5}[A-Z0-9]{17}$/,\n UA: /^(UA[0-9]{2})\\d{6}[A-Z0-9]{19}$/,\n VA: /^(VA[0-9]{2})\\d{18}$/,\n VG: /^(VG[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n XK: /^(XK[0-9]{2})\\d{16}$/\n};\n\n/**\n * Check if the country codes passed are valid using the\n * ibanRegexThroughCountryCode as a reference\n *\n * @param {array} countryCodeArray\n * @return {boolean}\n */\n\nfunction hasOnlyValidCountryCodes(countryCodeArray) {\n var countryCodeArrayFilteredWithObjectIbanCode = countryCodeArray.filter(function (countryCode) {\n return !(countryCode in ibanRegexThroughCountryCode);\n });\n if (countryCodeArrayFilteredWithObjectIbanCode.length > 0) {\n return false;\n }\n return true;\n}\n\n/**\n * Check whether string has correct universal IBAN format\n * The IBAN consists of up to 34 alphanumeric characters, as follows:\n * Country Code using ISO 3166-1 alpha-2, two letters\n * check digits, two digits and\n * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.\n * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]\n *\n * @param {string} str - string under validation\n * @param {object} options - object to pass the countries to be either whitelisted or blacklisted\n * @return {boolean}\n */\nfunction hasValidIbanFormat(str, options) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n var isoCountryCodeInIbanRegexCodeObject = (isoCountryCode in ibanRegexThroughCountryCode);\n if (options.whitelist) {\n if (!hasOnlyValidCountryCodes(options.whitelist)) {\n return false;\n }\n var isoCountryCodeInWhiteList = options.whitelist.includes(isoCountryCode);\n if (!isoCountryCodeInWhiteList) {\n return false;\n }\n }\n if (options.blacklist) {\n var isoCountryCodeInBlackList = options.blacklist.includes(isoCountryCode);\n if (isoCountryCodeInBlackList) {\n return false;\n }\n }\n return isoCountryCodeInIbanRegexCodeObject && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\n}\n\n/**\n * Check whether string has valid IBAN Checksum\n * by performing basic mod-97 operation and\n * the remainder should equal 1\n * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string\n * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35\n * -- Interpret the string as a decimal integer and\n * -- compute the remainder on division by 97 (mod 97)\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n *\n * @param {string} str\n * @return {boolean}\n */\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);\n var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {\n return char.charCodeAt(0) - 55;\n });\n var remainder = alphaCapsReplacedWithDigits.match(/\\d{1,7}/g).reduce(function (acc, value) {\n return Number(acc + value) % 97;\n }, '');\n return remainder === 1;\n}\nfunction isIBAN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str, options) && hasValidIbanChecksum(str);\n}\nvar locales = exports.locales = Object.keys(ibanRegexThroughCountryCode);",
16
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUUID;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar uuid = {\n 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 7: /^[0-9A-F]{8}-[0-9A-F]{4}-7[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\nfunction isUUID(str, version) {\n (0, _assertString.default)(str);\n var pattern = uuid[![undefined, null].includes(version) ? version : 'all'];\n return !!pattern && pattern.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
17
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable no-control-regex */\nvar ascii = /^[\\x00-\\x7F]+$/;\n/* eslint-enable no-control-regex */\n\nfunction isAscii(str) {\n (0, _assertString.default)(str);\n return ascii.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
18
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
19
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)</i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A1-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\nfunction validateDisplayName(display_name) {\n var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1');\n // display name with only spaces is not valid\n if (!display_name_without_quotes.trim()) {\n return false;\n }\n\n // check whether display name contains illegal character\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname <address@gmail.com>\n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !options.host_whitelist.includes(lower_domain)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n return true;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
20
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.farsiLocales = exports.englishLocales = exports.dotDecimal = exports.decimal = exports.commaDecimal = exports.bengaliLocales = exports.arabicLocales = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = exports.alpha = {\n 'en-US': /^[A-Z]+$/i,\n 'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[А-Я]+$/i,\n 'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[A-ZÆØÅ]+$/i,\n 'de-DE': /^[A-ZÄÖÜß]+$/i,\n 'el-GR': /^[Α-ώ]+$/i,\n 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,\n 'fi-FI': /^[A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,\n 'nb-NO': /^[A-ZÆØÅ]+$/i,\n 'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[A-ZÆØÅ]+$/i,\n 'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[А-ЯЁ]+$/i,\n 'kk-KZ': /^[А-ЯЁ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n 'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๐\\s]+$/i,\n 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,\n 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n 'ko-KR': /^[ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[א-ת]+$/,\n fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,\n bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n eo: /^[ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,\n 'hi-IN': /^[\\u0900-\\u0961]+[\\u0972-\\u097F]*$/i,\n 'si-LK': /^[\\u0D80-\\u0DFF]+$/\n};\nvar alphanumeric = exports.alphanumeric = {\n 'en-US': /^[0-9A-Z]+$/i,\n 'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[0-9А-Я]+$/i,\n 'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n 'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n 'el-GR': /^[0-9Α-ω]+$/i,\n 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fi-FI': /^[0-9A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[0-90-9ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,\n 'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[0-9А-ЯЁ]+$/i,\n 'kk-KZ': /^[0-9А-ЯЁ\\u04D8\\u04B0\\u0406\\u04A2\\u0492\\u04AE\\u049A\\u04E8\\u04BA]+$/i,\n 'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๙\\s]+$/i,\n 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,\n 'ko-KR': /^[0-9ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n 'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[0-9א-ת]+$/,\n fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,\n bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n eo: /^[0-9ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,\n 'hi-IN': /^[\\u0900-\\u0963]+[\\u0966-\\u097F]*$/i,\n 'si-LK': /^[0-9\\u0D80-\\u0DFF]+$/\n};\nvar decimal = exports.decimal = {\n 'en-US': '.',\n ar: '٫'\n};\nvar englishLocales = exports.englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n locale = \"en-\".concat(englishLocales[i]);\n alpha[locale] = alpha['en-US'];\n alphanumeric[locale] = alphanumeric['en-US'];\n decimal[locale] = decimal['en-US'];\n}\n\n// Source: http://www.localeplanet.com/java/\nvar arabicLocales = exports.arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n _locale = \"ar-\".concat(arabicLocales[_i]);\n alpha[_locale] = alpha.ar;\n alphanumeric[_locale] = alphanumeric.ar;\n decimal[_locale] = decimal.ar;\n}\nvar farsiLocales = exports.farsiLocales = ['IR', 'AF'];\nfor (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {\n _locale2 = \"fa-\".concat(farsiLocales[_i2]);\n alphanumeric[_locale2] = alphanumeric.fa;\n decimal[_locale2] = decimal.ar;\n}\nvar bengaliLocales = exports.bengaliLocales = ['BD', 'IN'];\nfor (var _locale3, _i3 = 0; _i3 < bengaliLocales.length; _i3++) {\n _locale3 = \"bn-\".concat(bengaliLocales[_i3]);\n alpha[_locale3] = alpha.bn;\n alphanumeric[_locale3] = alphanumeric.bn;\n decimal[_locale3] = decimal['en-US'];\n}\n\n// Source: https://en.wikipedia.org/wiki/Decimal_mark\nvar dotDecimal = exports.dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nvar commaDecimal = exports.commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'eo', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hi-IN', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'kk-KZ', 'si-LK', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];\nfor (var _i4 = 0; _i4 < dotDecimal.length; _i4++) {\n decimal[dotDecimal[_i4]] = decimal['en-US'];\n}\nfor (var _i5 = 0; _i5 < commaDecimal.length; _i5++) {\n decimal[commaDecimal[_i5]] = ',';\n}\nalpha['fr-CA'] = alpha['fr-FR'];\nalphanumeric['fr-CA'] = alphanumeric['fr-FR'];\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT'];\n\n// see #862\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL'];\n\n// see #1455\nalpha['fa-AF'] = alpha.fa;",
21
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlpha;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAlpha(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(_alpha.alpha);",
22
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLatLong;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar lat = /^\\(?[+-]?(90(\\.0+)?|[1-8]?\\d(\\.\\d+)?)$/;\nvar long = /^\\s?[+-]?(180(\\.0+)?|1[0-7]\\d(\\.\\d+)?|\\d{1,2}(\\.\\d+)?)\\)?$/;\nvar latDMS = /^(([1-8]?\\d)\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|90\\D+0\\D+0)\\D+[NSns]?$/i;\nvar longDMS = /^\\s*([1-7]?\\d{1,2}\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|180\\D+0\\D+0)\\D+[EWew]?$/i;\nvar defaultLatLongOptions = {\n checkDMS: false\n};\nfunction isLatLong(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultLatLongOptions);\n if (!str.includes(',')) return false;\n var pair = str.split(',');\n if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;\n if (options.checkDMS) {\n return latDMS.test(pair[0]) && longDMS.test(pair[1]);\n }\n return lat.test(pair[0]) && long.test(pair[1]);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
23
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\nvar _default = exports.default = includes;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
24
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction decimalRegExp(options) {\n var regExp = new RegExp(\"^[-+]?([0-9]+)?(\\\\\".concat(_alpha.decimal[options.locale], \"[0-9]{\").concat(options.decimal_digits, \"})\").concat(options.force_decimal ? '' : '?', \"$\"));\n return regExp;\n}\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
25
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
26
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLuhnNumber;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isLuhnNumber(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n if (shouldDouble) {\n tmpNum *= 2;\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n shouldDouble = !shouldDouble;\n }\n return !!(sum % 10 === 0 ? sanitized : false);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
27
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _isLuhnNumber = _interopRequireDefault(require(\"./isLuhnNumber\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar cards = {\n amex: /^3[47][0-9]{13}$/,\n dinersclub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,\n discover: /^6(?:011|5[0-9][0-9])[0-9]{12,15}$/,\n jcb: /^(?:2131|1800|35\\d{3})\\d{11}$/,\n mastercard: /^5[1-5][0-9]{2}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$/,\n // /^[25][1-7][0-9]{14}$/;\n unionpay: /^(6[27][0-9]{14}|^(81[0-9]{14,17}))$/,\n visa: /^(?:4[0-9]{12})(?:[0-9]{3,6})?$/\n};\nvar allCards = function () {\n var tmpCardsArray = [];\n for (var cardProvider in cards) {\n // istanbul ignore else\n if (cards.hasOwnProperty(cardProvider)) {\n tmpCardsArray.push(cards[cardProvider]);\n }\n }\n return tmpCardsArray;\n}();\nfunction isCreditCard(card) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(card);\n var provider = options.provider;\n var sanitized = card.replace(/[- ]+/g, '');\n if (provider && provider.toLowerCase() in cards) {\n // specific provider in the list\n if (!cards[provider.toLowerCase()].test(sanitized)) {\n return false;\n }\n } else if (provider && !(provider.toLowerCase() in cards)) {\n /* specific provider not in the list */\n throw new Error(\"\".concat(provider, \" is not a valid credit card provider.\"));\n } else if (!allCards.some(function (cardProvider) {\n return cardProvider.test(sanitized);\n })) {\n // no specific provider\n return false;\n }\n return (0, _isLuhnNumber.default)(card);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
28
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nvar _alpha = require(\"./alpha\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction isAlphanumeric(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(_alpha.alphanumeric);",
29
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/**\n * Reference:\n * https://en.wikipedia.org/ -- Wikipedia\n * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number\n * https://countrycode.org/ -- Country Codes\n */\nvar passportRegexByCountryCode = {\n AM: /^[A-Z]{2}\\d{7}$/,\n // ARMENIA\n AR: /^[A-Z]{3}\\d{6}$/,\n // ARGENTINA\n AT: /^[A-Z]\\d{7}$/,\n // AUSTRIA\n AU: /^[A-Z]\\d{7}$/,\n // AUSTRALIA\n AZ: /^[A-Z]{1}\\d{8}$/,\n // AZERBAIJAN\n BE: /^[A-Z]{2}\\d{6}$/,\n // BELGIUM\n BG: /^\\d{9}$/,\n // BULGARIA\n BR: /^[A-Z]{2}\\d{6}$/,\n // BRAZIL\n BY: /^[A-Z]{2}\\d{7}$/,\n // BELARUS\n CA: /^[A-Z]{2}\\d{6}$/,\n // CANADA\n CH: /^[A-Z]\\d{7}$/,\n // SWITZERLAND\n CN: /^G\\d{8}$|^E(?![IO])[A-Z0-9]\\d{7}$/,\n // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits\n CY: /^[A-Z](\\d{6}|\\d{8})$/,\n // CYPRUS\n CZ: /^\\d{8}$/,\n // CZECH REPUBLIC\n DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,\n // GERMANY\n DK: /^\\d{9}$/,\n // DENMARK\n DZ: /^\\d{9}$/,\n // ALGERIA\n EE: /^([A-Z]\\d{7}|[A-Z]{2}\\d{7})$/,\n // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits\n ES: /^[A-Z0-9]{2}([A-Z0-9]?)\\d{6}$/,\n // SPAIN\n FI: /^[A-Z]{2}\\d{7}$/,\n // FINLAND\n FR: /^\\d{2}[A-Z]{2}\\d{5}$/,\n // FRANCE\n GB: /^\\d{9}$/,\n // UNITED KINGDOM\n GR: /^[A-Z]{2}\\d{7}$/,\n // GREECE\n HR: /^\\d{9}$/,\n // CROATIA\n HU: /^[A-Z]{2}(\\d{6}|\\d{7})$/,\n // HUNGARY\n IE: /^[A-Z0-9]{2}\\d{7}$/,\n // IRELAND\n IN: /^[A-Z]{1}-?\\d{7}$/,\n // INDIA\n ID: /^[A-C]\\d{7}$/,\n // INDONESIA\n IR: /^[A-Z]\\d{8}$/,\n // IRAN\n IS: /^(A)\\d{7}$/,\n // ICELAND\n IT: /^[A-Z0-9]{2}\\d{7}$/,\n // ITALY\n JM: /^[Aa]\\d{7}$/,\n // JAMAICA\n JP: /^[A-Z]{2}\\d{7}$/,\n // JAPAN\n KR: /^[MS]\\d{8}$/,\n // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]\n KZ: /^[a-zA-Z]\\d{7}$/,\n // KAZAKHSTAN\n LI: /^[a-zA-Z]\\d{5}$/,\n // LIECHTENSTEIN\n LT: /^[A-Z0-9]{8}$/,\n // LITHUANIA\n LU: /^[A-Z0-9]{8}$/,\n // LUXEMBURG\n LV: /^[A-Z0-9]{2}\\d{7}$/,\n // LATVIA\n LY: /^[A-Z0-9]{8}$/,\n // LIBYA\n MT: /^\\d{7}$/,\n // MALTA\n MZ: /^([A-Z]{2}\\d{7})|(\\d{2}[A-Z]{2}\\d{5})$/,\n // MOZAMBIQUE\n MY: /^[AHK]\\d{8}$/,\n // MALAYSIA\n MX: /^\\d{10,11}$/,\n // MEXICO\n NL: /^[A-Z]{2}[A-Z0-9]{6}\\d$/,\n // NETHERLANDS\n NZ: /^([Ll]([Aa]|[Dd]|[Ff]|[Hh])|[Ee]([Aa]|[Pp])|[Nn])\\d{6}$/,\n // NEW ZEALAND\n PH: /^([A-Z](\\d{6}|\\d{7}[A-Z]))|([A-Z]{2}(\\d{6}|\\d{7}))$/,\n // PHILIPPINES\n PK: /^[A-Z]{2}\\d{7}$/,\n // PAKISTAN\n PL: /^[A-Z]{2}\\d{7}$/,\n // POLAND\n PT: /^[A-Z]\\d{6}$/,\n // PORTUGAL\n RO: /^\\d{8,9}$/,\n // ROMANIA\n RU: /^\\d{9}$/,\n // RUSSIAN FEDERATION\n SE: /^\\d{8}$/,\n // SWEDEN\n SL: /^(P)[A-Z]\\d{7}$/,\n // SLOVENIA\n SK: /^[0-9A-Z]\\d{7}$/,\n // SLOVAKIA\n TH: /^[A-Z]{1,2}\\d{6,7}$/,\n // THAILAND\n TR: /^[A-Z]\\d{8}$/,\n // TURKEY\n UA: /^[A-Z]{2}\\d{6}$/,\n // UKRAINE\n US: /^\\d{9}$/,\n // UNITED STATES\n ZA: /^[TAMD]\\d{8}$/ // SOUTH AFRICA\n};\n\n/**\n * Check if str is a valid passport number\n * relative to provided ISO Country Code.\n *\n * @param {string} str\n * @param {string} countryCode\n * @return {boolean}\n */\nfunction isPassportNumber(str, countryCode) {\n (0, _assertString.default)(str);\n /** Remove All Whitespaces, Convert to UPPERCASE */\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
30
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPostalCode;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n// common patterns\nvar threeDigit = /^\\d{3}$/;\nvar fourDigit = /^\\d{4}$/;\nvar fiveDigit = /^\\d{5}$/;\nvar sixDigit = /^\\d{6}$/;\nvar patterns = {\n AD: /^AD\\d{3}$/,\n AT: fourDigit,\n AU: fourDigit,\n AZ: /^AZ\\d{4}$/,\n BA: /^([7-8]\\d{4}$)/,\n BE: fourDigit,\n BG: fourDigit,\n BR: /^\\d{5}-\\d{3}$/,\n BY: /^2[1-4]\\d{4}$/,\n CA: /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][\\s\\-]?\\d[ABCEGHJ-NPRSTV-Z]\\d$/i,\n CH: fourDigit,\n CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\\d{4}$/,\n CZ: /^\\d{3}\\s?\\d{2}$/,\n DE: fiveDigit,\n DK: fourDigit,\n DO: fiveDigit,\n DZ: fiveDigit,\n EE: fiveDigit,\n ES: /^(5[0-2]{1}|[0-4]{1}\\d{1})\\d{3}$/,\n FI: fiveDigit,\n FR: /^\\d{2}\\s?\\d{3}$/,\n GB: /^(gir\\s?0aa|[a-z]{1,2}\\d[\\da-z]?\\s?(\\d[a-z]{2})?)$/i,\n GR: /^\\d{3}\\s?\\d{2}$/,\n HR: /^([1-5]\\d{4}$)/,\n HT: /^HT\\d{4}$/,\n HU: fourDigit,\n ID: fiveDigit,\n IE: /^(?!.*(?:o))[A-Za-z]\\d[\\dw]\\s\\w{4}$/i,\n IL: /^(\\d{5}|\\d{7})$/,\n IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,\n IR: /^(?!(\\d)\\1{3})[13-9]{4}[1346-9][013-9]{5}$/,\n IS: threeDigit,\n IT: fiveDigit,\n JP: /^\\d{3}\\-\\d{4}$/,\n KE: fiveDigit,\n KR: /^(\\d{5}|\\d{6})$/,\n LI: /^(948[5-9]|949[0-7])$/,\n LT: /^LT\\-\\d{5}$/,\n LU: fourDigit,\n LV: /^LV\\-\\d{4}$/,\n LK: fiveDigit,\n MG: threeDigit,\n MX: fiveDigit,\n MT: /^[A-Za-z]{3}\\s{0,1}\\d{4}$/,\n MY: fiveDigit,\n NL: /^[1-9]\\d{3}\\s?(?!sa|sd|ss)[a-z]{2}$/i,\n NO: fourDigit,\n NP: /^(10|21|22|32|33|34|44|45|56|57)\\d{3}$|^(977)$/i,\n NZ: fourDigit,\n PL: /^\\d{2}\\-\\d{3}$/,\n PR: /^00[679]\\d{2}([ -]\\d{4})?$/,\n PT: /^\\d{4}\\-\\d{3}?$/,\n RO: sixDigit,\n RU: sixDigit,\n SA: fiveDigit,\n SE: /^[1-9]\\d{2}\\s?\\d{2}$/,\n SG: sixDigit,\n SI: fourDigit,\n SK: /^\\d{3}\\s?\\d{2}$/,\n TH: fiveDigit,\n TN: fourDigit,\n TW: /^\\d{3}(\\d{2})?$/,\n UA: fiveDigit,\n US: /^\\d{5}(-\\d{4})?$/,\n ZA: fourDigit,\n ZM: fiveDigit\n};\nvar locales = exports.locales = Object.keys(patterns);\nfunction isPostalCode(str, locale) {\n (0, _assertString.default)(str);\n if (locale in patterns) {\n return patterns[locale].test(str);\n } else if (locale === 'any') {\n for (var key in patterns) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (patterns.hasOwnProperty(key)) {\n var pattern = patterns[key];\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}",
31
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMobilePhone;\nexports.locales = void 0;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)(33|4[134]|55|77|88|9[13-689])\\d{6}$/,\n 'ar-AE': /^((\\+?971)|0)?5[024568]\\d{7}$/,\n 'ar-BH': /^(\\+?973)?(3|6)\\d{7}$/,\n 'ar-DZ': /^(\\+?213|0)(5|6|7)\\d{8}$/,\n 'ar-LB': /^(\\+?961)?((3|81)\\d{6}|7\\d{7})$/,\n 'ar-EG': /^((\\+?20)|0)?1[0125]\\d{8}$/,\n 'ar-IQ': /^(\\+?964|0)?7[0-9]\\d{8}$/,\n 'ar-JO': /^(\\+?962|0)?7[789]\\d{7}$/,\n 'ar-KW': /^(\\+?965)([569]\\d{7}|41\\d{6})$/,\n 'ar-LY': /^((\\+?218)|0)?(9[1-6]\\d{7}|[1-8]\\d{7,9})$/,\n 'ar-MA': /^(?:(?:\\+|00)212|0)[5-7]\\d{8}$/,\n 'ar-OM': /^((\\+|00)968)?(9[1-9])\\d{6}$/,\n 'ar-PS': /^(\\+?970|0)5[6|9](\\d{7})$/,\n 'ar-SA': /^(!?(\\+?966)|0)?5\\d{8}$/,\n 'ar-SD': /^((\\+?249)|0)?(9[012369]|1[012])\\d{7}$/,\n 'ar-SY': /^(!?(\\+?963)|0)?9\\d{8}$/,\n 'ar-TN': /^(\\+?216)?[2459]\\d{7}$/,\n 'az-AZ': /^(\\+994|0)(10|5[015]|7[07]|99)\\d{7}$/,\n 'bs-BA': /^((((\\+|00)3876)|06))((([0-3]|[5-6])\\d{6})|(4\\d{7}))$/,\n 'be-BY': /^(\\+?375)?(24|25|29|33|44)\\d{7}$/,\n 'bg-BG': /^(\\+?359|0)?8[789]\\d{7}$/,\n 'bn-BD': /^(\\+?880|0)1[13456789][0-9]{8}$/,\n 'ca-AD': /^(\\+376)?[346]\\d{5}$/,\n 'cs-CZ': /^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'da-DK': /^(\\+?45)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'de-DE': /^((\\+49|0)1)(5[0-25-9]\\d|6([23]|0\\d?)|7([0-57-9]|6\\d))\\d{7,9}$/,\n 'de-AT': /^(\\+43|0)\\d{1,4}\\d{3,12}$/,\n 'de-CH': /^(\\+41|0)([1-9])\\d{1,9}$/,\n 'de-LU': /^(\\+352)?((6\\d1)\\d{6})$/,\n 'dv-MV': /^(\\+?960)?(7[2-9]|9[1-9])\\d{5}$/,\n 'el-GR': /^(\\+?30|0)?6(8[5-9]|9(?![26])[0-9])\\d{7}$/,\n 'el-CY': /^(\\+?357?)?(9(9|6)\\d{6})$/,\n 'en-AI': /^(\\+?1|0)264(?:2(35|92)|4(?:6[1-2]|76|97)|5(?:3[6-9]|8[1-4])|7(?:2(4|9)|72))\\d{4}$/,\n 'en-AU': /^(\\+?61|0)4\\d{8}$/,\n 'en-AG': /^(?:\\+1|1)268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}$/,\n 'en-BM': /^(\\+?1)?441(((3|7)\\d{6}$)|(5[0-3][0-9]\\d{4}$)|(59\\d{5}$))/,\n 'en-BS': /^(\\+?1[-\\s]?|0)?\\(?242\\)?[-\\s]?\\d{3}[-\\s]?\\d{4}$/,\n 'en-GB': /^(\\+?44|0)7\\d{9}$/,\n 'en-GG': /^(\\+?44|0)1481\\d{6}$/,\n 'en-GH': /^(\\+233|0)(20|50|24|54|27|57|26|56|23|28|55|59)\\d{7}$/,\n 'en-GY': /^(\\+592|0)6\\d{6}$/,\n 'en-HK': /^(\\+?852[-\\s]?)?[456789]\\d{3}[-\\s]?\\d{4}$/,\n 'en-MO': /^(\\+?853[-\\s]?)?[6]\\d{3}[-\\s]?\\d{4}$/,\n 'en-IE': /^(\\+?353|0)8[356789]\\d{7}$/,\n 'en-IN': /^(\\+?91|0)?[6789]\\d{9}$/,\n 'en-JM': /^(\\+?876)?\\d{7}$/,\n 'en-KE': /^(\\+?254|0)(7|1)\\d{8}$/,\n 'fr-CF': /^(\\+?236| ?)(70|75|77|72|21|22)\\d{6}$/,\n 'en-SS': /^(\\+?211|0)(9[1257])\\d{7}$/,\n 'en-KI': /^((\\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,\n 'en-KN': /^(?:\\+1|1)869(?:46\\d|48[89]|55[6-8]|66\\d|76[02-7])\\d{4}$/,\n 'en-LS': /^(\\+?266)(22|28|57|58|59|27|52)\\d{6}$/,\n 'en-MT': /^(\\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,\n 'en-MU': /^(\\+?230|0)?\\d{8}$/,\n 'en-MW': /^(\\+?265|0)(((77|88|31|99|98|21)\\d{7})|(((111)|1)\\d{6})|(32000\\d{4}))$/,\n 'en-NA': /^(\\+?264|0)(6|8)\\d{7}$/,\n 'en-NG': /^(\\+?234|0)?[789]\\d{9}$/,\n 'en-NZ': /^(\\+?64|0)[28]\\d{7,9}$/,\n 'en-PG': /^(\\+?675|0)?(7\\d|8[18])\\d{6}$/,\n 'en-PK': /^((00|\\+)?92|0)3[0-6]\\d{8}$/,\n 'en-PH': /^(09|\\+639)\\d{9}$/,\n 'en-RW': /^(\\+?250|0)?[7]\\d{8}$/,\n 'en-SG': /^(\\+65)?[3689]\\d{7}$/,\n 'en-SL': /^(\\+?232|0)\\d{8}$/,\n 'en-TZ': /^(\\+?255|0)?[67]\\d{8}$/,\n 'en-UG': /^(\\+?256|0)?[7]\\d{8}$/,\n 'en-US': /^((\\+1|1)?( |-)?)?(\\([2-9][0-9]{2}\\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,\n 'en-ZA': /^(\\+?27|0)\\d{9}$/,\n 'en-ZM': /^(\\+?26)?09[567]\\d{7}$/,\n 'en-ZW': /^(\\+263)[0-9]{9}$/,\n 'en-BW': /^(\\+?267)?(7[1-8]{1})\\d{6}$/,\n 'es-AR': /^\\+?549(11|[2368]\\d)\\d{8}$/,\n 'es-BO': /^(\\+?591)?(6|7)\\d{7}$/,\n 'es-CO': /^(\\+?57)?3(0(0|1|2|4|5)|1\\d|2[0-4]|5(0|1))\\d{7}$/,\n 'es-CL': /^(\\+?56|0)[2-9]\\d{1}\\d{7}$/,\n 'es-CR': /^(\\+506)?[2-8]\\d{7}$/,\n 'es-CU': /^(\\+53|0053)?5\\d{7}$/,\n 'es-DO': /^(\\+?1)?8[024]9\\d{7}$/,\n 'es-HN': /^(\\+?504)?[9|8|3|2]\\d{7}$/,\n 'es-EC': /^(\\+?593|0)([2-7]|9[2-9])\\d{7}$/,\n 'es-ES': /^(\\+?34)?[6|7]\\d{8}$/,\n 'es-PE': /^(\\+?51)?9\\d{8}$/,\n 'es-MX': /^(\\+?52)?(1|01)?\\d{10,11}$/,\n 'es-NI': /^(\\+?505)\\d{7,8}$/,\n 'es-PA': /^(\\+?507)\\d{7,8}$/,\n 'es-PY': /^(\\+?595|0)9[9876]\\d{7}$/,\n 'es-SV': /^(\\+?503)?[67]\\d{7}$/,\n 'es-UY': /^(\\+598|0)9[1-9][\\d]{6}$/,\n 'es-VE': /^(\\+?58)?(2|4)\\d{9}$/,\n 'et-EE': /^(\\+?372)?\\s?(5|8[1-4])\\s?([0-9]\\s?){6,7}$/,\n 'fa-IR': /^(\\+?98[\\-\\s]?|0)9[0-39]\\d[\\-\\s]?\\d{3}[\\-\\s]?\\d{4}$/,\n 'fi-FI': /^(\\+?358|0)\\s?(4[0-6]|50)\\s?(\\d\\s?){4,8}$/,\n 'fj-FJ': /^(\\+?679)?\\s?\\d{3}\\s?\\d{4}$/,\n 'fo-FO': /^(\\+?298)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'fr-BF': /^(\\+226|0)[67]\\d{7}$/,\n 'fr-BJ': /^(\\+229)\\d{8}$/,\n 'fr-CD': /^(\\+?243|0)?(8|9)\\d{8}$/,\n 'fr-CM': /^(\\+?237)6[0-9]{8}$/,\n 'fr-FR': /^(\\+?33|0)[67]\\d{8}$/,\n 'fr-GF': /^(\\+?594|0|00594)[67]\\d{8}$/,\n 'fr-GP': /^(\\+?590|0|00590)[67]\\d{8}$/,\n 'fr-MQ': /^(\\+?596|0|00596)[67]\\d{8}$/,\n 'fr-PF': /^(\\+?689)?8[789]\\d{6}$/,\n 'fr-RE': /^(\\+?262|0|00262)[67]\\d{8}$/,\n 'fr-WF': /^(\\+681)?\\d{6}$/,\n 'he-IL': /^(\\+972|0)([23489]|5[012345689]|77)[1-9]\\d{6}$/,\n 'hu-HU': /^(\\+?36|06)(20|30|31|50|70)\\d{7}$/,\n 'id-ID': /^(\\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\\s?|\\d]{5,11})$/,\n 'ir-IR': /^(\\+98|0)?9\\d{9}$/,\n 'it-IT': /^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$/,\n 'it-SM': /^((\\+378)|(0549)|(\\+390549)|(\\+3780549))?6\\d{5,9}$/,\n 'ja-JP': /^(\\+81[ \\-]?(\\(0\\))?|0)[6789]0[ \\-]?\\d{4}[ \\-]?\\d{4}$/,\n 'ka-GE': /^(\\+?995)?(79\\d{7}|5\\d{8})$/,\n 'kk-KZ': /^(\\+?7|8)?7\\d{9}$/,\n 'kl-GL': /^(\\+?299)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'ko-KR': /^((\\+?82)[ \\-]?)?0?1([0|1|6|7|8|9]{1})[ \\-]?\\d{3,4}[ \\-]?\\d{4}$/,\n 'ky-KG': /^(\\+?7\\s?\\+?7|0)\\s?\\d{2}\\s?\\d{3}\\s?\\d{4}$/,\n 'lt-LT': /^(\\+370|8)\\d{8}$/,\n 'lv-LV': /^(\\+?371)2\\d{7}$/,\n 'mg-MG': /^((\\+?261|0)(2|3)\\d)?\\d{7}$/,\n 'mn-MN': /^(\\+|00|011)?976(77|81|88|91|94|95|96|99)\\d{6}$/,\n 'my-MM': /^(\\+?959|09|9)(2[5-7]|3[1-2]|4[0-5]|6[6-9]|7[5-9]|9[6-9])[0-9]{7}$/,\n 'ms-MY': /^(\\+?60|0)1(([0145](-|\\s)?\\d{7,8})|([236-9](-|\\s)?\\d{7}))$/,\n 'mz-MZ': /^(\\+?258)?8[234567]\\d{7}$/,\n 'nb-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'ne-NP': /^(\\+?977)?9[78]\\d{8}$/,\n 'nl-BE': /^(\\+?32|0)4\\d{8}$/,\n 'nl-NL': /^(((\\+|00)?31\\(0\\))|((\\+|00)?31)|0)6{1}\\d{8}$/,\n 'nl-AW': /^(\\+)?297(56|59|64|73|74|99)\\d{5}$/,\n 'nn-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'pl-PL': /^(\\+?48)? ?([5-8]\\d|45) ?\\d{3} ?\\d{2} ?\\d{2}$/,\n 'pt-BR': /^((\\+?55\\ ?[1-9]{2}\\ ?)|(\\+?55\\ ?\\([1-9]{2}\\)\\ ?)|(0[1-9]{2}\\ ?)|(\\([1-9]{2}\\)\\ ?)|([1-9]{2}\\ ?))((\\d{4}\\-?\\d{4})|(9[1-9]{1}\\d{3}\\-?\\d{4}))$/,\n 'pt-PT': /^(\\+?351)?9[1236]\\d{7}$/,\n 'pt-AO': /^(\\+244)\\d{9}$/,\n 'ro-MD': /^(\\+?373|0)((6(0|1|2|6|7|8|9))|(7(6|7|8|9)))\\d{6}$/,\n 'ro-RO': /^(\\+?40|0)\\s?7\\d{2}(\\/|\\s|\\.|-)?\\d{3}(\\s|\\.|-)?\\d{3}$/,\n 'ru-RU': /^(\\+?7|8)?9\\d{9}$/,\n 'si-LK': /^(?:0|94|\\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\\d{7}$/,\n 'sl-SI': /^(\\+386\\s?|0)(\\d{1}\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}|\\d{2}\\s?\\d{3}\\s?\\d{3})$/,\n 'sk-SK': /^(\\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'so-SO': /^(\\+?252|0)((6[0-9])\\d{7}|(7[1-9])\\d{7})$/,\n 'sq-AL': /^(\\+355|0)6[789]\\d{6}$/,\n 'sr-RS': /^(\\+3816|06)[- \\d]{5,9}$/,\n 'sv-SE': /^(\\+?46|0)[\\s\\-]?7[\\s\\-]?[02369]([\\s\\-]?\\d){7}$/,\n 'tg-TJ': /^(\\+?992)?[5][5]\\d{7}$/,\n 'th-TH': /^(\\+66|66|0)\\d{9}$/,\n 'tr-TR': /^(\\+?90|0)?5\\d{9}$/,\n 'tk-TM': /^(\\+993|993|8)\\d{8}$/,\n 'uk-UA': /^(\\+?38|8)?0\\d{9}$/,\n 'uz-UZ': /^(\\+?998)?(6[125-79]|7[1-69]|88|9\\d)\\d{7}$/,\n 'vi-VN': /^((\\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,\n 'zh-CN': /^((\\+|00)86)?(1[3-9]|9[28])\\d{9}$/,\n 'zh-TW': /^(\\+?886\\-?|0)?9\\d{8}$/,\n 'dz-BT': /^(\\+?975|0)?(17|16|77|02)\\d{6}$/,\n 'ar-YE': /^(((\\+|00)9677|0?7)[0137]\\d{7}|((\\+|00)967|0)[1-7]\\d{6})$/,\n 'ar-EH': /^(\\+?212|0)[\\s\\-]?(5288|5289)[\\s\\-]?\\d{5}$/,\n 'fa-AF': /^(\\+93|0)?(2{1}[0-8]{1}|[3-5]{1}[0-4]{1})(\\d{7})$/\n};\n/* eslint-enable max-len */\n\n// aliases\nphones['en-CA'] = phones['en-US'];\nphones['fr-CA'] = phones['en-CA'];\nphones['fr-BE'] = phones['nl-BE'];\nphones['zh-HK'] = phones['en-HK'];\nphones['zh-MO'] = phones['en-MO'];\nphones['ga-IE'] = phones['en-IE'];\nphones['fr-CH'] = phones['de-CH'];\nphones['it-CH'] = phones['fr-CH'];\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\n if (Array.isArray(locale)) {\n return locale.some(function (key) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n if (phone.test(str)) {\n return true;\n }\n }\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str);\n // alias falsey locale as 'any'\n } else if (!locale || locale === 'any') {\n for (var key in phones) {\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n if (phone.test(str)) {\n return true;\n }\n }\n }\n return false;\n }\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\nvar locales = exports.locales = Object.keys(phones);",
32
- "!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));",
33
- "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));",
34
- "!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));",
35
- "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\\[|\\]$/g,\"\")}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if(\"string\"==typeof i)r+=i.length;else{var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,\"\")}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if(\"string\"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if([\"x\",\"X\"].indexOf(t)>-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));",
36
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = escape;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction escape(str) {\n (0, _assertString.default)(str);\n return str.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#x27;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\\//g, '&#x2F;').replace(/\\\\/g, '&#x5C;').replace(/`/g, '&#96;');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
37
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeEmail;\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nvar default_normalize_email_options = {\n // The following options apply to all email addresses\n // Lowercases the local part of the email address.\n // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).\n // The domain is always lowercased, as per RFC 1035\n all_lowercase: true,\n // The following conversions are specific to GMail\n // Lowercases the local part of the GMail address (known to be case-insensitive)\n gmail_lowercase: true,\n // Removes dots from the local part of the email address, as that's ignored by GMail\n gmail_remove_dots: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n gmail_remove_subaddress: true,\n // Conversts the googlemail.com domain to gmail.com\n gmail_convert_googlemaildotcom: true,\n // The following conversions are specific to Outlook.com / Windows Live / Hotmail\n // Lowercases the local part of the Outlook.com address (known to be case-insensitive)\n outlookdotcom_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n outlookdotcom_remove_subaddress: true,\n // The following conversions are specific to Yahoo\n // Lowercases the local part of the Yahoo address (known to be case-insensitive)\n yahoo_lowercase: true,\n // Removes the subaddress (e.g. \"-foo\") from the email address\n yahoo_remove_subaddress: true,\n // The following conversions are specific to Yandex\n // Lowercases the local part of the Yandex address (known to be case-insensitive)\n yandex_lowercase: true,\n // The following conversions are specific to iCloud\n // Lowercases the local part of the iCloud address (known to be case-insensitive)\n icloud_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n icloud_remove_subaddress: true\n};\n\n// List of domains used by iCloud\nvar icloud_domains = ['icloud.com', 'me.com'];\n\n// List of domains used by Outlook.com and its predecessors\n// This list is likely incomplete.\n// Partial reference:\n// https://blogs.office.com/2013/04/17/outlook-com-gets-two-step-verification-sign-in-by-alias-and-new-international-domains/\nvar outlookdotcom_domains = ['hotmail.at', 'hotmail.be', 'hotmail.ca', 'hotmail.cl', 'hotmail.co.il', 'hotmail.co.nz', 'hotmail.co.th', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.au', 'hotmail.com.br', 'hotmail.com.gr', 'hotmail.com.mx', 'hotmail.com.pe', 'hotmail.com.tr', 'hotmail.com.vn', 'hotmail.cz', 'hotmail.de', 'hotmail.dk', 'hotmail.es', 'hotmail.fr', 'hotmail.hu', 'hotmail.id', 'hotmail.ie', 'hotmail.in', 'hotmail.it', 'hotmail.jp', 'hotmail.kr', 'hotmail.lv', 'hotmail.my', 'hotmail.ph', 'hotmail.pt', 'hotmail.sa', 'hotmail.sg', 'hotmail.sk', 'live.be', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.mx', 'live.de', 'live.es', 'live.eu', 'live.fr', 'live.it', 'live.nl', 'msn.com', 'outlook.at', 'outlook.be', 'outlook.cl', 'outlook.co.il', 'outlook.co.nz', 'outlook.co.th', 'outlook.com', 'outlook.com.ar', 'outlook.com.au', 'outlook.com.br', 'outlook.com.gr', 'outlook.com.pe', 'outlook.com.tr', 'outlook.com.vn', 'outlook.cz', 'outlook.de', 'outlook.dk', 'outlook.es', 'outlook.fr', 'outlook.hu', 'outlook.id', 'outlook.ie', 'outlook.in', 'outlook.it', 'outlook.jp', 'outlook.kr', 'outlook.lv', 'outlook.my', 'outlook.ph', 'outlook.pt', 'outlook.sa', 'outlook.sg', 'outlook.sk', 'passport.com'];\n\n// List of domains used by Yahoo Mail\n// This list is likely incomplete\nvar yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com'];\n\n// List of domains used by yandex.ru\nvar yandex_domains = ['yandex.ru', 'yandex.ua', 'yandex.kz', 'yandex.com', 'yandex.by', 'ya.ru'];\n\n// replace single dots, but not multiple consecutive dots\nfunction dotsReplacer(match) {\n if (match.length > 1) {\n return match;\n }\n return '';\n}\nfunction normalizeEmail(email, options) {\n options = (0, _merge.default)(options, default_normalize_email_options);\n var raw_parts = email.split('@');\n var domain = raw_parts.pop();\n var user = raw_parts.join('@');\n var parts = [user, domain];\n\n // The domain is always lowercased, as it's case-insensitive per RFC 1035\n parts[1] = parts[1].toLowerCase();\n if (parts[1] === 'gmail.com' || parts[1] === 'googlemail.com') {\n // Address is GMail\n if (options.gmail_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (options.gmail_remove_dots) {\n // this does not replace consecutive dots like example..email@gmail.com\n parts[0] = parts[0].replace(/\\.+/g, dotsReplacer);\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.gmail_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n parts[1] = options.gmail_convert_googlemaildotcom ? 'gmail.com' : parts[1];\n } else if (icloud_domains.indexOf(parts[1]) >= 0) {\n // Address is iCloud\n if (options.icloud_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.icloud_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) {\n // Address is Outlook.com\n if (options.outlookdotcom_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.outlookdotcom_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yahoo_domains.indexOf(parts[1]) >= 0) {\n // Address is Yahoo\n if (options.yahoo_remove_subaddress) {\n var components = parts[0].split('-');\n parts[0] = components.length > 1 ? components.slice(0, -1).join('-') : components[0];\n }\n if (!parts[0].length) {\n return false;\n }\n if (options.all_lowercase || options.yahoo_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yandex_domains.indexOf(parts[1]) >= 0) {\n if (options.all_lowercase || options.yandex_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n parts[1] = 'yandex.ru'; // all yandex domains are equal, 1st preferred\n } else if (options.all_lowercase) {\n // Any other address\n parts[0] = parts[0].toLowerCase();\n }\n return parts.join('@');\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;",
38
- "const TOKENS = /(\\S+)|(.)/g;\nconst IS_SPECIAL_CASE = /[\\.#][\\p{L}\\p{N}]/u; // #tag, example.com, etc.\nconst IS_MANUAL_CASE = /\\p{Ll}(?=[\\p{Lu}])/u; // iPhone, iOS, etc.\nconst ALPHANUMERIC_PATTERN = /[\\p{L}\\p{N}]+/gu;\nconst IS_ACRONYM = /^([^\\p{L}])*(?:\\p{L}\\.){2,}([^\\p{L}])*$/u;\nexport const WORD_SEPARATORS = new Set([\"—\", \"–\", \"-\", \"―\", \"/\"]);\nexport const SENTENCE_TERMINATORS = new Set([\".\", \"!\", \"?\"]);\nexport const TITLE_TERMINATORS = new Set([\n ...SENTENCE_TERMINATORS,\n \":\",\n '\"',\n \"'\",\n \"”\",\n]);\nexport const SMALL_WORDS = new Set([\n \"a\",\n \"an\",\n \"and\",\n \"as\",\n \"at\",\n \"because\",\n \"but\",\n \"by\",\n \"en\",\n \"for\",\n \"if\",\n \"in\",\n \"neither\",\n \"nor\",\n \"of\",\n \"on\",\n \"only\",\n \"or\",\n \"over\",\n \"per\",\n \"so\",\n \"some\",\n \"than\",\n \"that\",\n \"the\",\n \"to\",\n \"up\",\n \"upon\",\n \"v\",\n \"versus\",\n \"via\",\n \"vs\",\n \"when\",\n \"with\",\n \"without\",\n \"yet\",\n]);\nexport function titleCase(input, options = {}) {\n const { locale = undefined, sentenceCase = false, sentenceTerminators = SENTENCE_TERMINATORS, titleTerminators = TITLE_TERMINATORS, smallWords = SMALL_WORDS, wordSeparators = WORD_SEPARATORS, } = typeof options === \"string\" || Array.isArray(options)\n ? { locale: options }\n : options;\n const terminators = sentenceCase ? sentenceTerminators : titleTerminators;\n let result = \"\";\n let isNewSentence = true;\n // tslint:disable-next-line\n for (const m of input.matchAll(TOKENS)) {\n const { 1: token, 2: whiteSpace, index = 0 } = m;\n if (whiteSpace) {\n result += whiteSpace;\n continue;\n }\n // Ignore URLs, email addresses, acronyms, etc.\n if (IS_SPECIAL_CASE.test(token)) {\n const acronym = token.match(IS_ACRONYM);\n // The period at the end of an acronym is not a new sentence,\n // but we should uppercase first for i.e., e.g., etc.\n if (acronym) {\n const [_, prefix = \"\", suffix = \"\"] = acronym;\n result +=\n sentenceCase && !isNewSentence\n ? token\n : upperAt(token, prefix.length, locale);\n isNewSentence = terminators.has(suffix.charAt(0));\n continue;\n }\n result += token;\n isNewSentence = terminators.has(token.charAt(token.length - 1));\n }\n else {\n const matches = Array.from(token.matchAll(ALPHANUMERIC_PATTERN));\n let value = token;\n let isSentenceEnd = false;\n for (let i = 0; i < matches.length; i++) {\n const { 0: word, index: wordIndex = 0 } = matches[i];\n const nextChar = token.charAt(wordIndex + word.length);\n isSentenceEnd = terminators.has(nextChar);\n // Always the capitalize first word and reset \"new sentence\".\n if (isNewSentence) {\n isNewSentence = false;\n }\n // Skip capitalizing all words if sentence case is enabled.\n else if (sentenceCase || IS_MANUAL_CASE.test(word)) {\n continue;\n }\n // Handle simple words.\n else if (matches.length === 1) {\n // Avoid capitalizing small words, except at the end of a sentence.\n if (smallWords.has(word)) {\n const isFinalToken = index + token.length === input.length;\n if (!isFinalToken && !isSentenceEnd) {\n continue;\n }\n }\n }\n // Multi-word tokens need to be parsed differently.\n else if (i > 0) {\n // Avoid capitalizing words without a valid word separator,\n // e.g. \"apple's\" or \"test(ing)\".\n if (!wordSeparators.has(token.charAt(wordIndex - 1))) {\n continue;\n }\n // Ignore small words in the middle of hyphenated words.\n if (smallWords.has(word) && wordSeparators.has(nextChar)) {\n continue;\n }\n }\n value = upperAt(value, wordIndex, locale);\n }\n result += value;\n isNewSentence =\n isSentenceEnd || terminators.has(token.charAt(token.length - 1));\n }\n }\n return result;\n}\nfunction upperAt(input, index, locale) {\n return (input.slice(0, index) +\n input.charAt(index).toLocaleUpperCase(locale) +\n input.slice(index + 1));\n}\n//# sourceMappingURL=index.js.map",
39
- "export function toString(v: any): string {\n return Object.prototype.toString.call(v)\n}\n",
40
- "import * as pluralize from 'pluralize'\n\ntype Rule = string | RegExp\ntype Replacement = string\ntype Word = string\nexport type PluralizeTest = (word: Word) => boolean\n\nexport interface Pluralize {\n plural: (word: Word, count?: number, inclusive?: boolean) => Word\n singular: (word: Word) => Word\n isPlural: (word: Word) => boolean\n isSingular: (word: Word) => boolean\n addPluralRule: (rule: Rule, replacement: Replacement) => void\n addSingularRule: (rule: Rule, replacement: Replacement) => void\n addIrregularRule: (single: Word, plural: Word) => void\n addUncountableRule: (word: Word | RegExp) => void\n}\n\nexport const plural: Pluralize['plural'] = (word, count, inclusive) => {\n if (count !== undefined && inclusive)\n return `${count} ${pluralize.plural(word)}`\n\n return pluralize.plural(word)\n}\n\nexport const singular: Pluralize['singular'] = word => pluralize.singular(word)\nexport const isPlural: Pluralize['isPlural'] = word => pluralize.isPlural(word)\nexport const isSingular: Pluralize['isSingular'] = word => pluralize.isSingular(word)\nexport const addPluralRule: Pluralize['addPluralRule'] = (rule, replacement) =>\n pluralize.addPluralRule(rule, replacement)\nexport const addSingularRule: Pluralize['addSingularRule'] = (rule, replacement) =>\n pluralize.addSingularRule(rule, replacement)\nexport const addIrregularRule: Pluralize['addIrregularRule'] = (single, plural) =>\n pluralize.addIrregularRule(single, plural)\nexport const addUncountableRule: Pluralize['addUncountableRule'] = word => pluralize.addUncountableRule(word)\n",
41
- "import slugify from 'slugify'\n\ninterface SlugOptions {\n replacement?: string\n remove?: RegExp\n lower?: boolean\n strict?: boolean\n locale?: string\n trim?: boolean\n}\n\n// port from nanoid\n// https://github.com/ai/nanoid\nexport const urlAlphabet = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\n/**\n * Replace backslash to slash\n *\n * @category String\n * @example\n * ```\n * slash('C:\\\\Users\\\\Chris') => 'C:/Users/Chris'\n * ```\n */\nexport function slash(str: string): string {\n return str.replace(/\\\\/g, '/')\n}\n\n/**\n * Ensure prefix of a string\n *\n * @category String\n * @example\n * ```\n * ensurePrefix('https://', 'google.com') => 'https://google.com'\n * ensurePrefix('https://', 'http://google.com') => 'https://google.com'\n */\nexport function ensurePrefix(prefix: string, str: string): string {\n if (!str.startsWith(prefix))\n return prefix + str\n return str\n}\n\n/**\n * Ensure suffix of a string\n *\n * @category String\n * @example\n * ```\n * ensureSuffix('.js', 'index') => 'index.js'\n * ensureSuffix('.js', 'index.js') => 'index.js'\n * ```\n */\nexport function ensureSuffix(suffix: string, str: string): string {\n return str.endsWith(suffix) ? str : str + suffix\n}\n\n/**\n * Dead simple template engine, just like Python's `.format()`\n *\n * @category String\n * @example\n * ```\n * const result = template('Hello {0}! My name is {1}.',\n * 'Buddy',\n * 'Chris'\n * ) // Hello Buddy! My name is Chris.\n * ```\n */\nexport function template(str: string, ...args: any[]): string {\n return str.replace(/\\{(\\d+)\\}/g, (match, key) => {\n const index = Number(key)\n\n return Number.isNaN(index) ? match : args[index]\n })\n}\n\nexport function truncate(str: string, length: number, end = '...'): string {\n if (str.length <= length)\n return str\n\n return str.slice(0, length - end.length) + end\n}\n\n/**\n * Generate a random string\n * @category String\n */\nexport function random(size = 16, dict: string = urlAlphabet): string {\n let id = ''\n let i = size\n const len = dict.length\n while (i--) id += dict[(Math.random() * len) | 0]\n return id\n}\n\n/**\n * Slugify a string\n * @category string\n * @example\n * ```\n * slug('Hello World') => 'hello-world'\n * ```\n */\nexport function slug(str: string, options?: SlugOptions): string {\n if (options)\n return slugify(str, options)\n\n return slugify(str, {\n lower: true,\n strict: true,\n })\n}\n\nexport { default as detectIndent } from 'detect-indent'\nexport { detectNewline } from 'detect-newline'\n",
42
- "// src/defaults.ts\nvar messages = {\n \"required\": \"The {{ field }} field must be defined\",\n \"string\": \"The {{ field }} field must be a string\",\n \"email\": \"The {{ field }} field must be a valid email address\",\n \"mobile\": \"The {{ field }} field must be a valid mobile phone number\",\n \"creditCard\": \"The {{ field }} field must be a valid {{ providersList }} card number\",\n \"passport\": \"The {{ field }} field must be a valid passport number\",\n \"postalCode\": \"The {{ field }} field must be a valid postal code\",\n \"regex\": \"The {{ field }} field format is invalid\",\n \"ascii\": \"The {{ field }} field must only contain ASCII characters\",\n \"iban\": \"The {{ field }} field must be a valid IBAN number\",\n \"jwt\": \"The {{ field }} field must be a valid JWT token\",\n \"coordinates\": \"The {{ field }} field must contain latitude and longitude coordinates\",\n \"url\": \"The {{ field }} field must be a valid URL\",\n \"activeUrl\": \"The {{ field }} field must be a valid URL\",\n \"alpha\": \"The {{ field }} field must contain only letters\",\n \"alphaNumeric\": \"The {{ field }} field must contain only letters and numbers\",\n \"minLength\": \"The {{ field }} field must have at least {{ min }} characters\",\n \"maxLength\": \"The {{ field }} field must not be greater than {{ max }} characters\",\n \"fixedLength\": \"The {{ field }} field must be {{ size }} characters long\",\n \"confirmed\": \"The {{ field }} field and {{ otherField }} field must be the same\",\n \"endsWith\": \"The {{ field }} field must end with {{ substring }}\",\n \"startsWith\": \"The {{ field }} field must start with {{ substring }}\",\n \"sameAs\": \"The {{ field }} field and {{ otherField }} field must be the same\",\n \"notSameAs\": \"The {{ field }} field and {{ otherField }} field must be different\",\n \"in\": \"The selected {{ field }} is invalid\",\n \"notIn\": \"The selected {{ field }} is invalid\",\n \"ipAddress\": \"The {{ field }} field must be a valid IP address\",\n \"uuid\": \"The {{ field }} field must be a valid UUID\",\n \"hexCode\": \"The {{ field }} field must be a valid hex color code\",\n \"boolean\": \"The value must be a boolean\",\n \"number\": \"The {{ field }} field must be a number\",\n \"number.in\": \"The selected {{ field }} is not in {{ values }}\",\n \"min\": \"The {{ field }} field must be at least {{ min }}\",\n \"max\": \"The {{ field }} field must not be greater than {{ max }}\",\n \"range\": \"The {{ field }} field must be between {{ min }} and {{ max }}\",\n \"positive\": \"The {{ field }} field must be positive\",\n \"negative\": \"The {{ field }} field must be negative\",\n \"decimal\": \"The {{ field }} field must have {{ digits }} decimal places\",\n \"withoutDecimals\": \"The {{ field }} field must be an integer\",\n \"accepted\": \"The {{ field }} field must be accepted\",\n \"enum\": \"The selected {{ field }} is invalid\",\n \"literal\": \"The {{ field }} field must be {{ expectedValue }}\",\n \"object\": \"The {{ field }} field must be an object\",\n \"array\": \"The {{ field }} field must be an array\",\n \"array.minLength\": \"The {{ field }} field must have at least {{ min }} items\",\n \"array.maxLength\": \"The {{ field }} field must not have more than {{ max }} items\",\n \"array.fixedLength\": \"The {{ field }} field must contain {{ size }} items\",\n \"notEmpty\": \"The {{ field }} field must not be empty\",\n \"distinct\": \"The {{ field }} field has duplicate values\",\n \"record\": \"The {{ field }} field must be an object\",\n \"record.minLength\": \"The {{ field }} field must have at least {{ min }} items\",\n \"record.maxLength\": \"The {{ field }} field must not have more than {{ max }} items\",\n \"record.fixedLength\": \"The {{ field }} field must contain {{ size }} items\",\n \"tuple\": \"The {{ field }} field must be an array\",\n \"union\": \"Invalid value provided for {{ field }} field\",\n \"unionGroup\": \"Invalid value provided for {{ field }} field\",\n \"unionOfTypes\": \"Invalid value provided for {{ field }} field\",\n \"date\": \"The {{ field }} field must be a datetime value\",\n \"date.equals\": \"The {{ field }} field must be a date equal to {{ expectedValue }}\",\n \"date.after\": \"The {{ field }} field must be a date after {{ expectedValue }}\",\n \"date.before\": \"The {{ field }} field must be a date before {{ expectedValue }}\",\n \"date.afterOrEqual\": \"The {{ field }} field must be a date after or equal to {{ expectedValue }}\",\n \"date.beforeOrEqual\": \"The {{ field }} field must be a date before or equal to {{ expectedValue }}\",\n \"date.sameAs\": \"The {{ field }} field and {{ otherField }} field must be the same\",\n \"date.notSameAs\": \"The {{ field }} field and {{ otherField }} field must be different\",\n \"date.afterField\": \"The {{ field }} field must be a date after {{ otherField }}\",\n \"date.afterOrSameAs\": \"The {{ field }} field must be a date after or same as {{ otherField }}\",\n \"date.beforeField\": \"The {{ field }} field must be a date before {{ otherField }}\",\n \"date.beforeOrSameAs\": \"The {{ field }} field must be a date before or same as {{ otherField }}\",\n \"date.weekend\": \"The {{ field }} field is not a weekend\",\n \"date.weekday\": \"The {{ field }} field is not a weekday\"\n};\nvar fields = {\n \"\": \"data\"\n};\n\nexport {\n messages,\n fields\n};\n//# sourceMappingURL=chunk-577THMJC.js.map",
43
- "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\nexport {\n __export\n};\n//# sourceMappingURL=chunk-CSAU5B4Q.js.map",
44
- "export default function(t,e,l,n,r){for(e=e.split?e.split(\".\"):e,n=0;n<e.length;n++)t=t?t[e[n]]:r;return t===r?l:t}\n//# sourceMappingURL=dlv.es.js.map\n",
45
- "import {\n __export\n} from \"./chunk-CSAU5B4Q.js\";\n\n// src/messages_provider/simple_messages_provider.ts\nvar SimpleMessagesProvider = class {\n #messages;\n #fields;\n constructor(messages, fields) {\n this.#messages = messages;\n this.#fields = fields || {};\n }\n /**\n * Interpolates place holders within error messages\n */\n #interpolate(message, data) {\n if (!message.includes(\"{{\")) {\n return message;\n }\n return message.replace(/(\\\\)?{{(.*?)}}/g, (_, __, key) => {\n const tokens = key.trim().split(\".\");\n let output = data;\n while (tokens.length) {\n if (output === null || typeof output !== \"object\") {\n return;\n }\n const token = tokens.shift();\n output = Object.hasOwn(output, token) ? output[token] : void 0;\n }\n return output;\n });\n }\n /**\n * Returns a validation message for a given field + rule.\n */\n getMessage(rawMessage, rule, field, args) {\n const fieldName = this.#fields[field.name] || field.name;\n const fieldMessage = this.#messages[`${field.getFieldPath()}.${rule}`];\n if (fieldMessage) {\n return this.#interpolate(fieldMessage, {\n field: fieldName,\n ...args\n });\n }\n const wildcardMessage = this.#messages[`${field.wildCardPath}.${rule}`];\n if (wildcardMessage) {\n return this.#interpolate(wildcardMessage, {\n field: fieldName,\n ...args\n });\n }\n const ruleMessage = this.#messages[rule];\n if (ruleMessage) {\n return this.#interpolate(ruleMessage, {\n field: fieldName,\n ...args\n });\n }\n return this.#interpolate(rawMessage, {\n field: fieldName,\n ...args\n });\n }\n toJSON() {\n return {\n messages: this.#messages,\n fields: this.#fields\n };\n }\n};\n\n// src/errors/main.ts\nvar main_exports = {};\n__export(main_exports, {\n E_VALIDATION_ERROR: () => E_VALIDATION_ERROR\n});\n\n// src/errors/validation_error.ts\nvar ValidationError = class extends Error {\n constructor(messages, options) {\n super(\"Validation failure\", options);\n this.messages = messages;\n const ErrorConstructor = this.constructor;\n Error.captureStackTrace(this, ErrorConstructor);\n }\n /**\n * Http status code for the validation error\n */\n status = 422;\n /**\n * Internal code for handling the validation error\n * exception\n */\n code = \"E_VALIDATION_ERROR\";\n get [Symbol.toStringTag]() {\n return this.constructor.name;\n }\n toString() {\n return `${this.name} [${this.code}]: ${this.message}`;\n }\n};\n\n// src/errors/main.ts\nvar E_VALIDATION_ERROR = ValidationError;\n\n// src/reporters/simple_error_reporter.ts\nvar SimpleErrorReporter = class {\n /**\n * Boolean to know one or more errors have been reported\n */\n hasErrors = false;\n /**\n * Collection of errors\n */\n errors = [];\n /**\n * Report an error.\n */\n report(message, rule, field, meta) {\n const error = {\n message,\n rule,\n field: field.getFieldPath()\n };\n if (meta) {\n error.meta = meta;\n }\n if (field.isArrayMember) {\n error.index = field.name;\n }\n this.hasErrors = true;\n this.errors.push(error);\n }\n /**\n * Returns an instance of the validation error\n */\n createError() {\n return new E_VALIDATION_ERROR(this.errors);\n }\n};\n\n// src/vine/helpers.ts\nimport delve from \"dlv\";\nimport isIP from \"validator/lib/isIP.js\";\nimport isJWT from \"validator/lib/isJWT.js\";\nimport isURL from \"validator/lib/isURL.js\";\nimport isSlug from \"validator/lib/isSlug.js\";\nimport isIBAN from \"validator/lib/isIBAN.js\";\nimport isUUID from \"validator/lib/isUUID.js\";\nimport isAscii from \"validator/lib/isAscii.js\";\nimport isEmail from \"validator/lib/isEmail.js\";\nimport isAlpha from \"validator/lib/isAlpha.js\";\nimport isLatLong from \"validator/lib/isLatLong.js\";\nimport isDecimal from \"validator/lib/isDecimal.js\";\nimport isHexColor from \"validator/lib/isHexColor.js\";\nimport isCreditCard from \"validator/lib/isCreditCard.js\";\nimport isAlphanumeric from \"validator/lib/isAlphanumeric.js\";\nimport isPassportNumber from \"validator/lib/isPassportNumber.js\";\nimport isPostalCode from \"validator/lib/isPostalCode.js\";\nimport isMobilePhone from \"validator/lib/isMobilePhone.js\";\nimport { locales as mobilePhoneLocales } from \"validator/lib/isMobilePhone.js\";\nimport { locales as postalCodeLocales } from \"validator/lib/isPostalCode.js\";\nvar BOOLEAN_POSITIVES = [\"1\", 1, \"true\", true, \"on\"];\nvar BOOLEAN_NEGATIVES = [\"0\", 0, \"false\", false];\nvar helpers = {\n /**\n * Returns true when value is not null and neither\n * undefined\n */\n exists(value) {\n return value !== null && value !== void 0;\n },\n /**\n * Returns true when value is null or value is undefined\n */\n isMissing(value) {\n return !this.exists(value);\n },\n /**\n * Returns true when the value is one of the following.\n *\n * true\n * 1\n * \"1\"\n * \"true\"\n * \"on\"\n */\n isTrue(value) {\n return BOOLEAN_POSITIVES.includes(value);\n },\n /**\n * Returns true when the value is one of the following.\n *\n * false\n * 0\n * \"0\"\n * \"false\"\n */\n isFalse(value) {\n return BOOLEAN_NEGATIVES.includes(value);\n },\n /**\n * Check if the value is a valid string. This method narrows\n * the type of value to string.\n */\n isString(value) {\n return typeof value === \"string\";\n },\n /**\n * Check if the value is a plain JavaScript object. This method\n * filters out null and Arrays and does not consider them as Objects.\n */\n isObject(value) {\n return !!(value && typeof value === \"object\" && !Array.isArray(value));\n },\n /**\n * Check if an object has all the mentioned keys\n */\n hasKeys(value, keys) {\n for (let key of keys) {\n if (key in value === false) {\n return false;\n }\n }\n return true;\n },\n /**\n * Check if the value is an Array.\n */\n isArray(value) {\n return Array.isArray(value);\n },\n /**\n * Check if the value is a number or a string representation of a number.\n */\n isNumeric(value) {\n return !Number.isNaN(Number(value));\n },\n /**\n * Casts the value to a number using the Number method.\n * Returns NaN when unable to cast.\n */\n asNumber(value) {\n return value === null ? Number.NaN : Number(value);\n },\n /**\n * Casts the value to a boolean.\n *\n * - [true, 1, \"1\", \"true\", \"on\"] will be converted to true.\n * - [false, 0, \"0\", \"false\"] will be converted to false.\n * - Everything else will return null. So make sure to handle that case.\n */\n asBoolean(value) {\n if (this.isTrue(value)) {\n return true;\n }\n if (this.isFalse(value)) {\n return false;\n }\n return null;\n },\n isEmail: isEmail.default,\n isURL: isURL.default,\n isAlpha: isAlpha.default,\n isAlphaNumeric: isAlphanumeric.default,\n isIP: isIP.default,\n isUUID: isUUID.default,\n isAscii: isAscii.default,\n isCreditCard: isCreditCard.default,\n isIBAN: isIBAN.default,\n isJWT: isJWT.default,\n isLatLong: isLatLong.default,\n isMobilePhone: isMobilePhone.default,\n isPassportNumber: isPassportNumber.default,\n isPostalCode: isPostalCode.default,\n isSlug: isSlug.default,\n isDecimal: isDecimal.default,\n mobileLocales: mobilePhoneLocales,\n postalCountryCodes: postalCodeLocales,\n passportCountryCodes: [\n \"AM\",\n \"AR\",\n \"AT\",\n \"AU\",\n \"AZ\",\n \"BE\",\n \"BG\",\n \"BR\",\n \"BY\",\n \"CA\",\n \"CH\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DK\",\n \"DZ\",\n \"ES\",\n \"FI\",\n \"FR\",\n \"GB\",\n \"GR\",\n \"HR\",\n \"HU\",\n \"IE\",\n \"IN\",\n \"ID\",\n \"IR\",\n \"IS\",\n \"IT\",\n \"JM\",\n \"JP\",\n \"KR\",\n \"KZ\",\n \"LI\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"LY\",\n \"MT\",\n \"MZ\",\n \"MY\",\n \"MX\",\n \"NL\",\n \"NZ\",\n \"PH\",\n \"PK\",\n \"PL\",\n \"PT\",\n \"RO\",\n \"RU\",\n \"SE\",\n \"SL\",\n \"SK\",\n \"TH\",\n \"TR\",\n \"UA\",\n \"US\"\n ],\n /**\n * Check if the value is a valid color hexcode\n */\n isHexColor: (value) => {\n if (!value.startsWith(\"#\")) {\n return false;\n }\n return isHexColor.default(value);\n },\n /**\n * Check if a URL has valid `A` or `AAAA` DNS records\n */\n isActiveURL: async (url) => {\n const { resolve4, resolve6 } = await import(\"node:dns/promises\");\n try {\n const { hostname } = new URL(url);\n const v6Addresses = await resolve6(hostname);\n if (v6Addresses.length) {\n return true;\n } else {\n const v4Addresses = await resolve4(hostname);\n return v4Addresses.length > 0;\n }\n } catch {\n return false;\n }\n },\n /**\n * Check if all the elements inside the dataset are unique.\n *\n * In case of an array of objects, you must provide one or more keys\n * for the fields that must be unique across the objects.\n *\n * ```ts\n * helpers.isDistinct([1, 2, 4, 5]) // true\n *\n * // Null and undefined values are ignored\n * helpers.isDistinct([1, null, 2, null, 4, 5]) // true\n *\n * helpers.isDistinct([\n * {\n * email: 'foo@bar.com',\n * name: 'foo'\n * },\n * {\n * email: 'baz@bar.com',\n * name: 'baz'\n * }\n * ], 'email') // true\n *\n * helpers.isDistinct([\n * {\n * email: 'foo@bar.com',\n * tenant_id: 1,\n * name: 'foo'\n * },\n * {\n * email: 'foo@bar.com',\n * tenant_id: 2,\n * name: 'baz'\n * }\n * ], ['email', 'tenant_id']) // true\n * ```\n */\n isDistinct: (dataSet, fields) => {\n const uniqueItems = /* @__PURE__ */ new Set();\n if (!fields) {\n for (let item of dataSet) {\n if (helpers.exists(item)) {\n if (uniqueItems.has(item)) {\n return false;\n } else {\n uniqueItems.add(item);\n }\n }\n }\n return true;\n }\n const fieldsList = Array.isArray(fields) ? fields : [fields];\n for (let item of dataSet) {\n if (helpers.isObject(item) && helpers.hasKeys(item, fieldsList)) {\n const element = fieldsList.map((field) => item[field]).join(\"_\");\n if (uniqueItems.has(element)) {\n return false;\n } else {\n uniqueItems.add(element);\n }\n }\n }\n return true;\n },\n /**\n * Returns the nested value from the field root\n * object or the sibling value from the field\n * parent object\n */\n getNestedValue(key, field) {\n if (key.indexOf(\".\") > -1) {\n return delve(field.data, key);\n }\n return field.parent[key];\n }\n};\n\nexport {\n helpers,\n SimpleMessagesProvider,\n ValidationError,\n main_exports,\n SimpleErrorReporter\n};\n//# sourceMappingURL=chunk-2W32DW3L.js.map",
46
- "import {\n fields,\n messages\n} from \"./chunk-577THMJC.js\";\nimport {\n SimpleErrorReporter,\n SimpleMessagesProvider,\n ValidationError,\n helpers\n} from \"./chunk-2W32DW3L.js\";\nimport {\n __export\n} from \"./chunk-CSAU5B4Q.js\";\n\n// src/vine/create_rule.ts\nfunction createRule(validator, metaData) {\n const rule = {\n validator,\n isAsync: metaData?.isAsync || validator.constructor.name === \"AsyncFunction\",\n implicit: metaData?.implicit ?? false\n };\n return function(...options) {\n return {\n rule,\n options: options[0]\n };\n };\n}\n\n// src/schema/builder.ts\nimport Macroable3 from \"@poppinss/macroable\";\n\n// src/schema/base/literal.ts\nimport camelcase from \"camelcase\";\nimport Macroable from \"@poppinss/macroable\";\n\n// src/symbols.ts\nvar symbols_exports = {};\n__export(symbols_exports, {\n COTYPE: () => COTYPE,\n IS_OF_TYPE: () => IS_OF_TYPE,\n ITYPE: () => ITYPE,\n OTYPE: () => OTYPE,\n PARSE: () => PARSE,\n UNIQUE_NAME: () => UNIQUE_NAME,\n VALIDATION: () => VALIDATION\n});\nvar UNIQUE_NAME = Symbol.for(\"schema_name\");\nvar IS_OF_TYPE = Symbol.for(\"is_of_type\");\nvar PARSE = Symbol.for(\"parse\");\nvar ITYPE = Symbol.for(\"opaque_input_type\");\nvar OTYPE = Symbol.for(\"opaque_type\");\nvar COTYPE = Symbol.for(\"camelcase_opaque_type\");\nvar VALIDATION = Symbol.for(\"to_validation\");\n\n// src/schema/base/rules.ts\nvar requiredWhen = createRule(\n (_, checker, field) => {\n const shouldBeRequired = checker(field);\n if (!field.isDefined && shouldBeRequired) {\n field.report(messages.required, \"required\", field);\n }\n },\n {\n implicit: true\n }\n);\n\n// src/schema/base/literal.ts\nvar BaseModifiersType = class extends Macroable {\n /**\n * Mark the field under validation as optional. An optional\n * field allows both null and undefined values.\n */\n optional(validations) {\n return new OptionalModifier(this, validations);\n }\n /**\n * Mark the field under validation to be null. The null value will\n * be written to the output as well.\n *\n * If `optional` and `nullable` are used together, then both undefined\n * and null values will be allowed.\n */\n nullable() {\n return new NullableModifier(this);\n }\n /**\n * Apply transform on the final validated value. The transform method may\n * convert the value to any new datatype.\n */\n transform(transformer) {\n return new TransformModifier(transformer, this);\n }\n};\nvar NullableModifier = class _NullableModifier extends BaseModifiersType {\n #parent;\n constructor(parent) {\n super();\n this.#parent = parent;\n }\n /**\n * Creates a fresh instance of the underlying schema type\n * and wraps it inside the nullable modifier\n */\n clone() {\n return new _NullableModifier(this.#parent.clone());\n }\n /**\n * Compiles to compiler node\n */\n [PARSE](propertyName, refs, options) {\n const output = this.#parent[PARSE](propertyName, refs, options);\n output.allowNull = true;\n return output;\n }\n};\nvar OptionalModifier = class _OptionalModifier extends BaseModifiersType {\n #parent;\n /**\n * Optional modifier validations list\n */\n validations;\n constructor(parent, validations) {\n super();\n this.#parent = parent;\n this.validations = validations || [];\n }\n /**\n * Shallow clones the validations. Since, there are no API's to mutate\n * the validation options, we can safely copy them by reference.\n */\n cloneValidations() {\n return this.validations.map((validation) => {\n return {\n options: validation.options,\n rule: validation.rule\n };\n });\n }\n /**\n * Compiles validations\n */\n compileValidations(refs) {\n return this.validations.map((validation) => {\n return {\n ruleFnId: refs.track({\n validator: validation.rule.validator,\n options: validation.options\n }),\n implicit: validation.rule.implicit,\n isAsync: validation.rule.isAsync\n };\n });\n }\n /**\n * Push a validation to the validations chain.\n */\n use(validation) {\n this.validations.push(VALIDATION in validation ? validation[VALIDATION]() : validation);\n return this;\n }\n requiredWhen(otherField, operator, expectedValue) {\n if (typeof otherField === \"function\") {\n return this.use(requiredWhen(otherField));\n }\n let checker;\n switch (operator) {\n case \"=\":\n checker = (value) => value === expectedValue;\n break;\n case \"!=\":\n checker = (value) => value !== expectedValue;\n break;\n case \"in\":\n checker = (value) => expectedValue.includes(value);\n break;\n case \"notIn\":\n checker = (value) => !expectedValue.includes(value);\n break;\n case \">\":\n checker = (value) => value > expectedValue;\n break;\n case \"<\":\n checker = (value) => value < expectedValue;\n break;\n case \">=\":\n checker = (value) => value >= expectedValue;\n break;\n case \"<=\":\n checker = (value) => value <= expectedValue;\n }\n return this.use(\n requiredWhen((field) => {\n const otherFieldValue = helpers.getNestedValue(otherField, field);\n return checker(otherFieldValue);\n })\n );\n }\n /**\n * Mark the field under validation as required when all\n * the other fields are present with value other\n * than `undefined` or `null`.\n */\n requiredIfExists(fields2) {\n const fieldsToExist = Array.isArray(fields2) ? fields2 : [fields2];\n return this.use(\n requiredWhen((field) => {\n return fieldsToExist.every(\n (otherField) => helpers.exists(helpers.getNestedValue(otherField, field))\n );\n })\n );\n }\n /**\n * Mark the field under validation as required when any\n * one of the other fields are present with non-nullable\n * value.\n */\n requiredIfAnyExists(fields2) {\n return this.use(\n requiredWhen((field) => {\n return fields2.some(\n (otherField) => helpers.exists(helpers.getNestedValue(otherField, field))\n );\n })\n );\n }\n /**\n * Mark the field under validation as required when all\n * the other fields are missing or their value is\n * `undefined` or `null`.\n */\n requiredIfMissing(fields2) {\n const fieldsToExist = Array.isArray(fields2) ? fields2 : [fields2];\n return this.use(\n requiredWhen((field) => {\n return fieldsToExist.every(\n (otherField) => helpers.isMissing(helpers.getNestedValue(otherField, field))\n );\n })\n );\n }\n /**\n * Mark the field under validation as required when any\n * one of the other fields are missing.\n */\n requiredIfAnyMissing(fields2) {\n return this.use(\n requiredWhen((field) => {\n return fields2.some(\n (otherField) => helpers.isMissing(helpers.getNestedValue(otherField, field))\n );\n })\n );\n }\n /**\n * Creates a fresh instance of the underlying schema type\n * and wraps it inside the optional modifier\n */\n clone() {\n return new _OptionalModifier(this.#parent.clone(), this.cloneValidations());\n }\n /**\n * Compiles to compiler node\n */\n [PARSE](propertyName, refs, options) {\n const output = this.#parent[PARSE](propertyName, refs, options);\n output.isOptional = true;\n output.validations = output.validations.concat(this.compileValidations(refs));\n return output;\n }\n};\nvar TransformModifier = class _TransformModifier extends BaseModifiersType {\n #parent;\n #transform;\n constructor(transform, parent) {\n super();\n this.#transform = transform;\n this.#parent = parent;\n }\n /**\n * Creates a fresh instance of the underlying schema type\n * and wraps it inside the transform modifier.\n */\n clone() {\n return new _TransformModifier(this.#transform, this.#parent.clone());\n }\n /**\n * Compiles to compiler node\n */\n [PARSE](propertyName, refs, options) {\n const output = this.#parent[PARSE](propertyName, refs, options);\n output.transformFnId = refs.trackTransformer(this.#transform);\n return output;\n }\n};\nvar BaseLiteralType = class extends BaseModifiersType {\n /**\n * Field options\n */\n options;\n /**\n * Set of validations to run\n */\n validations;\n constructor(options, validations) {\n super();\n this.options = {\n bail: true,\n allowNull: false,\n isOptional: false,\n ...options\n };\n this.validations = validations || [];\n }\n /**\n * Shallow clones the validations. Since, there are no API's to mutate\n * the validation options, we can safely copy them by reference.\n */\n cloneValidations() {\n return this.validations.map((validation) => {\n return {\n options: validation.options,\n rule: validation.rule\n };\n });\n }\n /**\n * Shallow clones the options\n */\n cloneOptions() {\n return { ...this.options };\n }\n /**\n * Compiles validations\n */\n compileValidations(refs) {\n return this.validations.map((validation) => {\n return {\n ruleFnId: refs.track({\n validator: validation.rule.validator,\n options: validation.options\n }),\n implicit: validation.rule.implicit,\n isAsync: validation.rule.isAsync\n };\n });\n }\n /**\n * Define a method to parse the input value. The method\n * is invoked before any validation and hence you must\n * perform type-checking to know the value you are\n * working it.\n */\n parse(callback) {\n this.options.parse = callback;\n return this;\n }\n /**\n * Push a validation to the validations chain.\n */\n use(validation) {\n this.validations.push(VALIDATION in validation ? validation[VALIDATION]() : validation);\n return this;\n }\n /**\n * Enable/disable the bail mode. In bail mode, the field validations\n * are stopped after the first error.\n */\n bail(state) {\n this.options.bail = state;\n return this;\n }\n /**\n * Compiles the schema type to a compiler node\n */\n [PARSE](propertyName, refs, options) {\n return {\n type: \"literal\",\n fieldName: propertyName,\n propertyName: options.toCamelCase ? camelcase(propertyName) : propertyName,\n bail: this.options.bail,\n allowNull: this.options.allowNull,\n isOptional: this.options.isOptional,\n parseFnId: this.options.parse ? refs.trackParser(this.options.parse) : void 0,\n validations: this.compileValidations(refs)\n };\n }\n};\n\n// src/schema/any/main.ts\nvar VineAny = class _VineAny extends BaseLiteralType {\n constructor(options, validations) {\n super(options, validations);\n }\n /**\n * Clones the VineAny schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineAny(this.cloneOptions(), this.cloneValidations());\n }\n};\n\n// src/schema/enum/rules.ts\nvar enumRule = createRule((value, options, field) => {\n const choices = typeof options.choices === \"function\" ? options.choices(field) : options.choices;\n if (!choices.includes(value)) {\n field.report(messages.enum, \"enum\", field, { choices });\n }\n});\n\n// src/schema/enum/main.ts\nvar VineEnum = class _VineEnum extends BaseLiteralType {\n /**\n * Default collection of enum rules\n */\n static rules = {\n enum: enumRule\n };\n #values;\n /**\n * Returns the enum choices\n */\n getChoices() {\n return this.#values;\n }\n constructor(values, options, validations) {\n super(options, validations || [enumRule({ choices: values })]);\n this.#values = values;\n }\n /**\n * Clones the VineEnum schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineEnum(this.#values, this.cloneOptions(), this.cloneValidations());\n }\n};\n\n// src/schema/date/main.ts\nimport dayjs2 from \"dayjs\";\n\n// src/schema/date/rules.ts\nimport dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter.js\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore.js\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nvar DEFAULT_DATE_FORMATS = [\"YYYY-MM-DD\", \"YYYY-MM-DD HH:mm:ss\"];\ndayjs.extend(customParseFormat);\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\nvar dateRule = createRule((value, options, field) => {\n if (typeof value !== \"string\" && typeof value !== \"number\") {\n field.report(messages.date, \"date\", field);\n return;\n }\n let isTimestampAllowed = false;\n let formats = options.formats || DEFAULT_DATE_FORMATS;\n if (Array.isArray(formats)) {\n formats = [...formats];\n isTimestampAllowed = formats.includes(\"x\");\n } else if (typeof formats !== \"string\") {\n formats = { ...formats };\n isTimestampAllowed = formats.format === \"x\";\n }\n const valueAsNumber = isTimestampAllowed ? helpers.asNumber(value) : value;\n const dateTime = isTimestampAllowed && !Number.isNaN(valueAsNumber) ? dayjs(valueAsNumber) : dayjs(value, formats, true);\n if (!dateTime.isValid()) {\n field.report(messages.date, \"date\", field);\n return;\n }\n field.meta.$value = dateTime;\n field.meta.$formats = formats;\n field.mutate(dateTime.toDate(), field);\n});\nvar equalsRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const format = options.format || DEFAULT_DATE_FORMATS;\n const dateTime = field.meta.$value;\n const expectedValue = typeof options.expectedValue === \"function\" ? options.expectedValue(field) : options.expectedValue;\n const expectedDateTime = dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n throw new Error(`Invalid datetime value \"${expectedValue}\" value provided to the equals rule`);\n }\n if (!dateTime.isSame(expectedDateTime, compare)) {\n field.report(messages[\"date.equals\"], \"date.equals\", field, {\n expectedValue,\n compare\n });\n }\n});\nvar afterRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const format = options.format || DEFAULT_DATE_FORMATS;\n const dateTime = field.meta.$value;\n const expectedValue = typeof options.expectedValue === \"function\" ? options.expectedValue(field) : options.expectedValue;\n const expectedDateTime = expectedValue === \"today\" ? dayjs() : expectedValue === \"tomorrow\" ? dayjs().add(1, \"day\") : dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n throw new Error(`Invalid datetime value \"${expectedValue}\" value provided to the after rule`);\n }\n if (!dateTime.isAfter(expectedDateTime, compare)) {\n field.report(messages[\"date.after\"], \"date.after\", field, {\n expectedValue,\n compare\n });\n }\n});\nvar afterOrEqualRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const format = options.format || DEFAULT_DATE_FORMATS;\n const dateTime = field.meta.$value;\n const expectedValue = typeof options.expectedValue === \"function\" ? options.expectedValue(field) : options.expectedValue;\n const expectedDateTime = expectedValue === \"today\" ? dayjs() : expectedValue === \"tomorrow\" ? dayjs().add(1, \"day\") : dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n throw new Error(\n `Invalid datetime value \"${expectedValue}\" value provided to the afterOrEqual rule`\n );\n }\n if (!dateTime.isSameOrAfter(expectedDateTime, compare)) {\n field.report(messages[\"date.afterOrEqual\"], \"date.afterOrEqual\", field, {\n expectedValue,\n compare\n });\n }\n});\nvar beforeRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const format = options.format || DEFAULT_DATE_FORMATS;\n const dateTime = field.meta.$value;\n const expectedValue = typeof options.expectedValue === \"function\" ? options.expectedValue(field) : options.expectedValue;\n const expectedDateTime = expectedValue === \"today\" ? dayjs() : expectedValue === \"yesterday\" ? dayjs().subtract(1, \"day\") : dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n throw new Error(`Invalid datetime value \"${expectedValue}\" value provided to the before rule`);\n }\n if (!dateTime.isBefore(expectedDateTime, compare)) {\n field.report(messages[\"date.before\"], \"date.before\", field, {\n expectedValue,\n compare\n });\n }\n});\nvar beforeOrEqualRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const format = options.format || DEFAULT_DATE_FORMATS;\n const dateTime = field.meta.$value;\n const expectedValue = typeof options.expectedValue === \"function\" ? options.expectedValue(field) : options.expectedValue;\n const expectedDateTime = expectedValue === \"today\" ? dayjs() : expectedValue === \"yesterday\" ? dayjs().subtract(1, \"day\") : dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n throw new Error(\n `Invalid datetime value \"${expectedValue}\" value provided to the beforeOrEqual rule`\n );\n }\n if (!dateTime.isSameOrBefore(expectedDateTime, compare)) {\n field.report(messages[\"date.beforeOrEqual\"], \"date.beforeOrEqual\", field, {\n expectedValue,\n compare\n });\n }\n});\nvar sameAsRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const dateTime = field.meta.$value;\n const format = options.format || field.meta.$formats;\n const expectedValue = helpers.getNestedValue(options.otherField, field);\n const expectedDateTime = dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n return;\n }\n if (!dateTime.isSame(expectedDateTime, compare)) {\n field.report(messages[\"date.sameAs\"], \"date.sameAs\", field, {\n otherField: options.otherField,\n expectedValue,\n compare\n });\n }\n});\nvar notSameAsRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const dateTime = field.meta.$value;\n const format = options.format || field.meta.$formats;\n const expectedValue = helpers.getNestedValue(options.otherField, field);\n const expectedDateTime = dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n return;\n }\n if (dateTime.isSame(expectedDateTime, compare)) {\n field.report(messages[\"date.notSameAs\"], \"date.notSameAs\", field, {\n otherField: options.otherField,\n expectedValue,\n compare\n });\n }\n});\nvar afterFieldRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const dateTime = field.meta.$value;\n const format = options.format || field.meta.$formats;\n const expectedValue = helpers.getNestedValue(options.otherField, field);\n const expectedDateTime = dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n return;\n }\n if (!dateTime.isAfter(expectedDateTime, compare)) {\n field.report(messages[\"date.afterField\"], \"date.afterField\", field, {\n otherField: options.otherField,\n expectedValue,\n compare\n });\n }\n});\nvar afterOrSameAsRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const dateTime = field.meta.$value;\n const format = options.format || field.meta.$formats;\n const expectedValue = helpers.getNestedValue(options.otherField, field);\n const expectedDateTime = dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n return;\n }\n if (!dateTime.isSameOrAfter(expectedDateTime, compare)) {\n field.report(messages[\"date.afterOrSameAs\"], \"date.afterOrSameAs\", field, {\n otherField: options.otherField,\n expectedValue,\n compare\n });\n }\n});\nvar beforeFieldRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const dateTime = field.meta.$value;\n const format = options.format || field.meta.$formats;\n const expectedValue = helpers.getNestedValue(options.otherField, field);\n const expectedDateTime = dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n return;\n }\n if (!dateTime.isBefore(expectedDateTime, compare)) {\n field.report(messages[\"date.beforeField\"], \"date.beforeField\", field, {\n otherField: options.otherField,\n expectedValue,\n compare\n });\n }\n});\nvar beforeOrSameAsRule = createRule((_, options, field) => {\n if (!field.meta.$value) {\n return;\n }\n const compare = options.compare || \"day\";\n const dateTime = field.meta.$value;\n const format = options.format || field.meta.$formats;\n const expectedValue = helpers.getNestedValue(options.otherField, field);\n const expectedDateTime = dayjs(expectedValue, format, true);\n if (!expectedDateTime.isValid()) {\n return;\n }\n if (!dateTime.isSameOrBefore(expectedDateTime, compare)) {\n field.report(messages[\"date.beforeOrSameAs\"], \"date.beforeOrSameAs\", field, {\n otherField: options.otherField,\n expectedValue,\n compare\n });\n }\n});\nvar weekendRule = createRule((_, __, field) => {\n if (!field.meta.$value) {\n return;\n }\n const dateTime = field.meta.$value;\n const day = dateTime.day();\n if (day !== 0 && day !== 6) {\n field.report(messages[\"date.weekend\"], \"date.weekend\", field);\n }\n});\nvar weekdayRule = createRule((_, __, field) => {\n if (!field.meta.$value) {\n return;\n }\n const dateTime = field.meta.$value;\n const day = dateTime.day();\n if (day === 0 || day === 6) {\n field.report(messages[\"date.weekday\"], \"date.weekday\", field);\n }\n});\n\n// src/schema/date/main.ts\nvar VineDate = class _VineDate extends BaseLiteralType {\n /**\n * Available VineDate rules\n */\n static rules = {\n equals: equalsRule,\n after: afterRule,\n afterOrEqual: afterOrEqualRule,\n before: beforeRule,\n beforeOrEqual: beforeOrEqualRule,\n sameAs: sameAsRule,\n notSameAs: notSameAsRule,\n afterField: afterFieldRule,\n afterOrSameAs: afterOrSameAsRule,\n beforeField: beforeFieldRule,\n beforeOrSameAs: beforeOrSameAsRule,\n weekend: weekendRule,\n weekday: weekdayRule\n };\n /**\n * The property must be implemented for \"unionOfTypes\"\n */\n [UNIQUE_NAME] = \"vine.date\";\n /**\n * Checks if the value is of date type. The method must be\n * implemented for \"unionOfTypes\"\n */\n [IS_OF_TYPE] = (value) => {\n if (typeof value !== \"string\") {\n return false;\n }\n return dayjs2(value, this.options.formats || DEFAULT_DATE_FORMATS, true).isValid();\n };\n constructor(options, validations) {\n super(options, validations || [dateRule(options || {})]);\n }\n /**\n * The equals rule compares the input value to be same\n * as the expected value.\n *\n * By default, the comparions of day, month and years are performed.\n */\n equals(expectedValue, options) {\n return this.use(equalsRule({ expectedValue, ...options }));\n }\n /**\n * The after rule compares the input value to be after\n * the expected value.\n *\n * By default, the comparions of day, month and years are performed.\n */\n after(expectedValue, options) {\n return this.use(afterRule({ expectedValue, ...options }));\n }\n /**\n * The after or equal rule compares the input value to be\n * after or equal to the expected value.\n *\n * By default, the comparions of day, month and years are performed.\n */\n afterOrEqual(expectedValue, options) {\n return this.use(afterOrEqualRule({ expectedValue, ...options }));\n }\n /**\n * The before rule compares the input value to be before\n * the expected value.\n *\n * By default, the comparions of day, month and years are performed.\n */\n before(expectedValue, options) {\n return this.use(beforeRule({ expectedValue, ...options }));\n }\n /**\n * The before rule compares the input value to be before\n * the expected value.\n *\n * By default, the comparions of day, month and years are performed.\n */\n beforeOrEqual(expectedValue, options) {\n return this.use(beforeOrEqualRule({ expectedValue, ...options }));\n }\n /**\n * The sameAs rule expects the input value to be same\n * as the value of the other field.\n *\n * By default, the comparions of day, month and years are performed\n */\n sameAs(otherField, options) {\n return this.use(sameAsRule({ otherField, ...options }));\n }\n /**\n * The notSameAs rule expects the input value to be different\n * from the other field's value\n *\n * By default, the comparions of day, month and years are performed\n */\n notSameAs(otherField, options) {\n return this.use(notSameAsRule({ otherField, ...options }));\n }\n /**\n * The afterField rule expects the input value to be after\n * the other field's value.\n *\n * By default, the comparions of day, month and years are performed\n */\n afterField(otherField, options) {\n return this.use(afterFieldRule({ otherField, ...options }));\n }\n /**\n * The afterOrSameAs rule expects the input value to be after\n * or equal to the other field's value.\n *\n * By default, the comparions of day, month and years are performed\n */\n afterOrSameAs(otherField, options) {\n return this.use(afterOrSameAsRule({ otherField, ...options }));\n }\n /**\n * The beforeField rule expects the input value to be before\n * the other field's value.\n *\n * By default, the comparions of day, month and years are performed\n */\n beforeField(otherField, options) {\n return this.use(beforeFieldRule({ otherField, ...options }));\n }\n /**\n * The beforeOrSameAs rule expects the input value to be before\n * or same as the other field's value.\n *\n * By default, the comparions of day, month and years are performed\n */\n beforeOrSameAs(otherField, options) {\n return this.use(beforeOrSameAsRule({ otherField, ...options }));\n }\n /**\n * The weekend rule ensures the date falls on a weekend\n */\n weekend() {\n return this.use(weekendRule());\n }\n /**\n * The weekday rule ensures the date falls on a weekday\n */\n weekday() {\n return this.use(weekdayRule());\n }\n /**\n * Clones the VineDate schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineDate(this.cloneOptions(), this.cloneValidations());\n }\n};\n\n// src/schema/union/main.ts\nimport camelcase2 from \"camelcase\";\nvar VineUnion = class _VineUnion {\n #conditionals;\n #otherwiseCallback = (_, field) => {\n field.report(messages.union, \"union\", field);\n };\n constructor(conditionals) {\n this.#conditionals = conditionals;\n }\n /**\n * Define a fallback method to invoke when all of the union conditions\n * fail. You may use this method to report an error.\n */\n otherwise(callback) {\n this.#otherwiseCallback = callback;\n return this;\n }\n /**\n * Clones the VineUnion schema type.\n */\n clone() {\n const cloned = new _VineUnion(this.#conditionals);\n cloned.otherwise(this.#otherwiseCallback);\n return cloned;\n }\n /**\n * Compiles to a union\n */\n [PARSE](propertyName, refs, options) {\n return {\n type: \"union\",\n fieldName: propertyName,\n propertyName: options.toCamelCase ? camelcase2(propertyName) : propertyName,\n elseConditionalFnRefId: refs.trackConditional(this.#otherwiseCallback),\n conditions: this.#conditionals.map(\n (conditional) => conditional[PARSE](propertyName, refs, options)\n )\n };\n }\n};\n\n// src/schema/union/conditional.ts\nvar UnionConditional = class {\n /**\n * Properties to merge when conditonal is true\n */\n #schema;\n /**\n * Conditional to evaluate\n */\n #conditional;\n constructor(conditional, schema) {\n this.#schema = schema;\n this.#conditional = conditional;\n }\n /**\n * Compiles to a union conditional\n */\n [PARSE](propertyName, refs, options) {\n return {\n conditionalFnRefId: refs.trackConditional(this.#conditional),\n schema: this.#schema[PARSE](propertyName, refs, options)\n };\n }\n};\n\n// src/schema/union/builder.ts\nfunction union(conditionals) {\n return new VineUnion(conditionals);\n}\nunion.if = function unionIf(conditon, schema) {\n return new UnionConditional(conditon, schema);\n};\nunion.else = function unionElse(schema) {\n return new UnionConditional(() => true, schema);\n};\n\n// src/schema/tuple/main.ts\nimport camelcase3 from \"camelcase\";\n\n// src/schema/base/main.ts\nimport Macroable2 from \"@poppinss/macroable\";\nvar BaseModifiersType2 = class extends Macroable2 {\n /**\n * Mark the field under validation as optional. An optional\n * field allows both null and undefined values.\n */\n optional() {\n return new OptionalModifier2(this);\n }\n /**\n * Mark the field under validation to be null. The null value will\n * be written to the output as well.\n *\n * If `optional` and `nullable` are used together, then both undefined\n * and null values will be allowed.\n */\n nullable() {\n return new NullableModifier2(this);\n }\n};\nvar NullableModifier2 = class _NullableModifier extends BaseModifiersType2 {\n #parent;\n constructor(parent) {\n super();\n this.#parent = parent;\n }\n /**\n * Creates a fresh instance of the underlying schema type\n * and wraps it inside the nullable modifier\n */\n clone() {\n return new _NullableModifier(this.#parent.clone());\n }\n /**\n * Compiles to compiler node\n */\n [PARSE](propertyName, refs, options) {\n const output = this.#parent[PARSE](propertyName, refs, options);\n if (output.type !== \"union\") {\n output.allowNull = true;\n }\n return output;\n }\n};\nvar OptionalModifier2 = class _OptionalModifier extends BaseModifiersType2 {\n #parent;\n constructor(parent) {\n super();\n this.#parent = parent;\n }\n /**\n * Creates a fresh instance of the underlying schema type\n * and wraps it inside the optional modifier\n */\n clone() {\n return new _OptionalModifier(this.#parent.clone());\n }\n /**\n * Compiles to compiler node\n */\n [PARSE](propertyName, refs, options) {\n const output = this.#parent[PARSE](propertyName, refs, options);\n if (output.type !== \"union\") {\n output.isOptional = true;\n }\n return output;\n }\n};\nvar BaseType = class extends BaseModifiersType2 {\n /**\n * Field options\n */\n options;\n /**\n * Set of validations to run\n */\n validations;\n constructor(options, validations) {\n super();\n this.options = options || {\n bail: true,\n allowNull: false,\n isOptional: false\n };\n this.validations = validations || [];\n }\n /**\n * Shallow clones the validations. Since, there are no API's to mutate\n * the validation options, we can safely copy them by reference.\n */\n cloneValidations() {\n return this.validations.map((validation) => {\n return {\n options: validation.options,\n rule: validation.rule\n };\n });\n }\n /**\n * Shallow clones the options\n */\n cloneOptions() {\n return { ...this.options };\n }\n /**\n * Compiles validations\n */\n compileValidations(refs) {\n return this.validations.map((validation) => {\n return {\n ruleFnId: refs.track({\n validator: validation.rule.validator,\n options: validation.options\n }),\n implicit: validation.rule.implicit,\n isAsync: validation.rule.isAsync\n };\n });\n }\n /**\n * Define a method to parse the input value. The method\n * is invoked before any validation and hence you must\n * perform type-checking to know the value you are\n * working it.\n */\n parse(callback) {\n this.options.parse = callback;\n return this;\n }\n /**\n * Push a validation to the validations chain.\n */\n use(validation) {\n this.validations.push(VALIDATION in validation ? validation[VALIDATION]() : validation);\n return this;\n }\n /**\n * Enable/disable the bail mode. In bail mode, the field validations\n * are stopped after the first error.\n */\n bail(state) {\n this.options.bail = state;\n return this;\n }\n};\n\n// src/schema/tuple/main.ts\nvar VineTuple = class _VineTuple extends BaseType {\n #schemas;\n /**\n * Whether or not to allow unknown properties\n */\n #allowUnknownProperties = false;\n /**\n * The property must be implemented for \"unionOfTypes\"\n */\n [UNIQUE_NAME] = \"vine.array\";\n /**\n * Checks if the value is of array type. The method must be\n * implemented for \"unionOfTypes\"\n */\n [IS_OF_TYPE] = (value) => {\n return Array.isArray(value);\n };\n constructor(schemas, options, validations) {\n super(options, validations);\n this.#schemas = schemas;\n }\n /**\n * Copy unknown properties to the final output.\n */\n allowUnknownProperties() {\n this.#allowUnknownProperties = true;\n return this;\n }\n /**\n * Clone object\n */\n clone() {\n const cloned = new _VineTuple(\n this.#schemas.map((schema) => schema.clone()),\n this.cloneOptions(),\n this.cloneValidations()\n );\n if (this.#allowUnknownProperties) {\n cloned.allowUnknownProperties();\n }\n return cloned;\n }\n /**\n * Compiles to array data type\n */\n [PARSE](propertyName, refs, options) {\n return {\n type: \"tuple\",\n fieldName: propertyName,\n propertyName: options.toCamelCase ? camelcase3(propertyName) : propertyName,\n bail: this.options.bail,\n allowNull: this.options.allowNull,\n isOptional: this.options.isOptional,\n allowUnknownProperties: this.#allowUnknownProperties,\n parseFnId: this.options.parse ? refs.trackParser(this.options.parse) : void 0,\n validations: this.compileValidations(refs),\n properties: this.#schemas.map((schema, index) => schema[PARSE](String(index), refs, options))\n };\n }\n};\n\n// src/schema/array/main.ts\nimport camelcase4 from \"camelcase\";\n\n// src/schema/array/rules.ts\nvar minLengthRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (value.length < options.min) {\n field.report(messages[\"array.minLength\"], \"array.minLength\", field, options);\n }\n});\nvar maxLengthRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (value.length > options.max) {\n field.report(messages[\"array.maxLength\"], \"array.maxLength\", field, options);\n }\n});\nvar fixedLengthRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (value.length !== options.size) {\n field.report(messages[\"array.fixedLength\"], \"array.fixedLength\", field, options);\n }\n});\nvar notEmptyRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (value.length <= 0) {\n field.report(messages.notEmpty, \"notEmpty\", field);\n }\n});\nvar distinctRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isDistinct(value, options.fields)) {\n field.report(messages.distinct, \"distinct\", field, options);\n }\n});\nvar compactRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n field.mutate(\n value.filter((item) => helpers.exists(item) && item !== \"\"),\n field\n );\n});\n\n// src/schema/array/main.ts\nvar VineArray = class _VineArray extends BaseType {\n /**\n * Default collection of array rules\n */\n static rules = {\n compact: compactRule,\n notEmpty: notEmptyRule,\n distinct: distinctRule,\n minLength: minLengthRule,\n maxLength: maxLengthRule,\n fixedLength: fixedLengthRule\n };\n #schema;\n /**\n * The property must be implemented for \"unionOfTypes\"\n */\n [UNIQUE_NAME] = \"vine.array\";\n /**\n * Checks if the value is of array type. The method must be\n * implemented for \"unionOfTypes\"\n */\n [IS_OF_TYPE] = (value) => {\n return Array.isArray(value);\n };\n constructor(schema, options, validations) {\n super(options, validations);\n this.#schema = schema;\n }\n /**\n * Enforce a minimum length on an array field\n */\n minLength(expectedLength) {\n return this.use(minLengthRule({ min: expectedLength }));\n }\n /**\n * Enforce a maximum length on an array field\n */\n maxLength(expectedLength) {\n return this.use(maxLengthRule({ max: expectedLength }));\n }\n /**\n * Enforce a fixed length on an array field\n */\n fixedLength(expectedLength) {\n return this.use(fixedLengthRule({ size: expectedLength }));\n }\n /**\n * Ensure the array is not empty\n */\n notEmpty() {\n return this.use(notEmptyRule());\n }\n /**\n * Ensure array elements are distinct/unique\n */\n distinct(fields2) {\n return this.use(distinctRule({ fields: fields2 }));\n }\n /**\n * Removes empty strings, null and undefined values from the array\n */\n compact() {\n return this.use(compactRule());\n }\n /**\n * Clones the VineArray schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineArray(this.#schema.clone(), this.cloneOptions(), this.cloneValidations());\n }\n /**\n * Compiles to array data type\n */\n [PARSE](propertyName, refs, options) {\n return {\n type: \"array\",\n fieldName: propertyName,\n propertyName: options.toCamelCase ? camelcase4(propertyName) : propertyName,\n bail: this.options.bail,\n allowNull: this.options.allowNull,\n isOptional: this.options.isOptional,\n each: this.#schema[PARSE](\"*\", refs, options),\n parseFnId: this.options.parse ? refs.trackParser(this.options.parse) : void 0,\n validations: this.compileValidations(refs)\n };\n }\n};\n\n// src/schema/object/main.ts\nimport camelcase5 from \"camelcase\";\nvar VineCamelCaseObject = class _VineCamelCaseObject extends BaseModifiersType2 {\n #schema;\n /**\n * The property must be implemented for \"unionOfTypes\"\n */\n [UNIQUE_NAME] = \"types.object\";\n /**\n * Checks if the value is of object type. The method must be\n * implemented for \"unionOfTypes\"\n */\n [IS_OF_TYPE] = (value) => {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n };\n constructor(schema) {\n super();\n this.#schema = schema;\n }\n /**\n * Clone object\n */\n clone() {\n return new _VineCamelCaseObject(this.#schema.clone());\n }\n /**\n * Compiles the schema type to a compiler node\n */\n [PARSE](propertyName, refs, options) {\n options.toCamelCase = true;\n return this.#schema[PARSE](propertyName, refs, options);\n }\n};\nvar VineObject = class _VineObject extends BaseType {\n /**\n * Object properties\n */\n #properties;\n /**\n * Object groups to merge based on conditionals\n */\n #groups = [];\n /**\n * Whether or not to allow unknown properties\n */\n #allowUnknownProperties = false;\n /**\n * The property must be implemented for \"unionOfTypes\"\n */\n [UNIQUE_NAME] = \"vine.object\";\n /**\n * Checks if the value is of object type. The method must be\n * implemented for \"unionOfTypes\"\n */\n [IS_OF_TYPE] = (value) => {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n };\n constructor(properties, options, validations) {\n super(options, validations);\n this.#properties = properties;\n }\n /**\n * Returns a clone copy of the object properties. The object groups\n * are not copied to keep the implementations simple and easy to\n * reason about.\n */\n getProperties() {\n return Object.keys(this.#properties).reduce((result, key) => {\n result[key] = this.#properties[key].clone();\n return result;\n }, {});\n }\n /**\n * Copy unknown properties to the final output.\n */\n allowUnknownProperties() {\n this.#allowUnknownProperties = true;\n return this;\n }\n /**\n * Merge a union to the object groups. The union can be a \"vine.union\"\n * with objects, or a \"vine.object.union\" with properties.\n */\n merge(group2) {\n this.#groups.push(group2);\n return this;\n }\n /**\n * Clone object\n */\n clone() {\n const cloned = new _VineObject(\n this.getProperties(),\n this.cloneOptions(),\n this.cloneValidations()\n );\n this.#groups.forEach((group2) => cloned.merge(group2));\n if (this.#allowUnknownProperties) {\n cloned.allowUnknownProperties();\n }\n return cloned;\n }\n /**\n * Applies camelcase transform\n */\n toCamelCase() {\n return new VineCamelCaseObject(this);\n }\n /**\n * Compiles the schema type to a compiler node\n */\n [PARSE](propertyName, refs, options) {\n return {\n type: \"object\",\n fieldName: propertyName,\n propertyName: options.toCamelCase ? camelcase5(propertyName) : propertyName,\n bail: this.options.bail,\n allowNull: this.options.allowNull,\n isOptional: this.options.isOptional,\n parseFnId: this.options.parse ? refs.trackParser(this.options.parse) : void 0,\n allowUnknownProperties: this.#allowUnknownProperties,\n validations: this.compileValidations(refs),\n properties: Object.keys(this.#properties).map((property) => {\n return this.#properties[property][PARSE](property, refs, options);\n }),\n groups: this.#groups.map((group2) => {\n return group2[PARSE](refs, options);\n })\n };\n }\n};\n\n// src/schema/record/main.ts\nimport camelcase6 from \"camelcase\";\n\n// src/schema/record/rules.ts\nvar minLengthRule2 = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (Object.keys(value).length < options.min) {\n field.report(messages[\"record.minLength\"], \"record.minLength\", field, options);\n }\n});\nvar maxLengthRule2 = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (Object.keys(value).length > options.max) {\n field.report(messages[\"record.maxLength\"], \"record.maxLength\", field, options);\n }\n});\nvar fixedLengthRule2 = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (Object.keys(value).length !== options.size) {\n field.report(messages[\"record.fixedLength\"], \"record.fixedLength\", field, options);\n }\n});\nvar validateKeysRule = createRule(\n (value, callback, field) => {\n if (!field.isValid) {\n return;\n }\n callback(Object.keys(value), field);\n }\n);\n\n// src/schema/record/main.ts\nvar VineRecord = class _VineRecord extends BaseType {\n /**\n * Default collection of record rules\n */\n static rules = {\n maxLength: maxLengthRule2,\n minLength: minLengthRule2,\n fixedLength: fixedLengthRule2,\n validateKeys: validateKeysRule\n };\n #schema;\n /**\n * The property must be implemented for \"unionOfTypes\"\n */\n [UNIQUE_NAME] = \"vine.object\";\n /**\n * Checks if the value is of object type. The method must be\n * implemented for \"unionOfTypes\"\n */\n [IS_OF_TYPE] = (value) => {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n };\n constructor(schema, options, validations) {\n super(options, validations);\n this.#schema = schema;\n }\n /**\n * Enforce a minimum length on an object field\n */\n minLength(expectedLength) {\n return this.use(minLengthRule2({ min: expectedLength }));\n }\n /**\n * Enforce a maximum length on an object field\n */\n maxLength(expectedLength) {\n return this.use(maxLengthRule2({ max: expectedLength }));\n }\n /**\n * Enforce a fixed length on an object field\n */\n fixedLength(expectedLength) {\n return this.use(fixedLengthRule2({ size: expectedLength }));\n }\n /**\n * Register a callback to validate the object keys\n */\n validateKeys(...args) {\n return this.use(validateKeysRule(...args));\n }\n /**\n * Clones the VineRecord schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineRecord(\n this.#schema.clone(),\n this.cloneOptions(),\n this.cloneValidations()\n );\n }\n /**\n * Compiles to record data type\n */\n [PARSE](propertyName, refs, options) {\n return {\n type: \"record\",\n fieldName: propertyName,\n propertyName: options.toCamelCase ? camelcase6(propertyName) : propertyName,\n bail: this.options.bail,\n allowNull: this.options.allowNull,\n isOptional: this.options.isOptional,\n each: this.#schema[PARSE](\"*\", refs, options),\n parseFnId: this.options.parse ? refs.trackParser(this.options.parse) : void 0,\n validations: this.compileValidations(refs)\n };\n }\n};\n\n// src/schema/string/rules.ts\nimport camelcase7 from \"camelcase\";\nimport normalizeUrl from \"normalize-url\";\nimport escape from \"validator/lib/escape.js\";\nimport normalizeEmail from \"validator/lib/normalizeEmail.js\";\nvar stringRule = createRule((value, _, field) => {\n if (typeof value !== \"string\") {\n field.report(messages.string, \"string\", field);\n }\n});\nvar emailRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isEmail(value, options)) {\n field.report(messages.email, \"email\", field);\n }\n});\nvar mobileRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n const normalizedOptions = options && typeof options === \"function\" ? options(field) : options;\n const locales = normalizedOptions?.locale || \"any\";\n if (!helpers.isMobilePhone(value, locales, normalizedOptions)) {\n field.report(messages.mobile, \"mobile\", field);\n }\n});\nvar ipAddressRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isIP(value, options?.version)) {\n field.report(messages.ipAddress, \"ipAddress\", field);\n }\n});\nvar regexRule = createRule((value, expression, field) => {\n if (!field.isValid) {\n return;\n }\n if (!expression.test(value)) {\n field.report(messages.regex, \"regex\", field);\n }\n});\nvar hexCodeRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isHexColor(value)) {\n field.report(messages.hexCode, \"hexCode\", field);\n }\n});\nvar urlRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isURL(value, options)) {\n field.report(messages.url, \"url\", field);\n }\n});\nvar activeUrlRule = createRule(async (value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (!await helpers.isActiveURL(value)) {\n field.report(messages.activeUrl, \"activeUrl\", field);\n }\n});\nvar alphaRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n let characterSet = \"a-zA-Z\";\n if (options) {\n if (options.allowSpaces) {\n characterSet += \"\\\\s\";\n }\n if (options.allowDashes) {\n characterSet += \"-\";\n }\n if (options.allowUnderscores) {\n characterSet += \"_\";\n }\n }\n const expression = new RegExp(`^[${characterSet}]+$`);\n if (!expression.test(value)) {\n field.report(messages.alpha, \"alpha\", field);\n }\n});\nvar alphaNumericRule = createRule(\n (value, options, field) => {\n if (!field.isValid) {\n return;\n }\n let characterSet = \"a-zA-Z0-9\";\n if (options) {\n if (options.allowSpaces) {\n characterSet += \"\\\\s\";\n }\n if (options.allowDashes) {\n characterSet += \"-\";\n }\n if (options.allowUnderscores) {\n characterSet += \"_\";\n }\n }\n const expression = new RegExp(`^[${characterSet}]+$`);\n if (!expression.test(value)) {\n field.report(messages.alphaNumeric, \"alphaNumeric\", field);\n }\n }\n);\nvar minLengthRule3 = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (value.length < options.min) {\n field.report(messages.minLength, \"minLength\", field, options);\n }\n});\nvar maxLengthRule3 = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (value.length > options.max) {\n field.report(messages.maxLength, \"maxLength\", field, options);\n }\n});\nvar fixedLengthRule3 = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (value.length !== options.size) {\n field.report(messages.fixedLength, \"fixedLength\", field, options);\n }\n});\nvar endsWithRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (!value.endsWith(options.substring)) {\n field.report(messages.endsWith, \"endsWith\", field, options);\n }\n});\nvar startsWithRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (!value.startsWith(options.substring)) {\n field.report(messages.startsWith, \"startsWith\", field, options);\n }\n});\nvar sameAsRule2 = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n const input = helpers.getNestedValue(options.otherField, field);\n if (input !== value) {\n field.report(messages.sameAs, \"sameAs\", field, options);\n return;\n }\n});\nvar notSameAsRule2 = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n const input = helpers.getNestedValue(options.otherField, field);\n if (input === value) {\n field.report(messages.notSameAs, \"notSameAs\", field, options);\n return;\n }\n});\nvar confirmedRule = createRule(\n (value, options, field) => {\n if (!field.isValid) {\n return;\n }\n const otherField = options?.confirmationField || `${field.name}_confirmation`;\n const input = field.parent[otherField];\n if (input !== value) {\n field.report(messages.confirmed, \"confirmed\", field, { otherField });\n return;\n }\n }\n);\nvar trimRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n field.mutate(value.trim(), field);\n});\nvar normalizeEmailRule = createRule(\n (value, options, field) => {\n if (!field.isValid) {\n return;\n }\n field.mutate(normalizeEmail.default(value, options), field);\n }\n);\nvar toUpperCaseRule = createRule(\n (value, locales, field) => {\n if (!field.isValid) {\n return;\n }\n field.mutate(value.toLocaleUpperCase(locales), field);\n }\n);\nvar toLowerCaseRule = createRule(\n (value, locales, field) => {\n if (!field.isValid) {\n return;\n }\n field.mutate(value.toLocaleLowerCase(locales), field);\n }\n);\nvar toCamelCaseRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n field.mutate(camelcase7(value), field);\n});\nvar escapeRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n field.mutate(escape.default(value), field);\n});\nvar normalizeUrlRule = createRule(\n (value, options, field) => {\n if (!field.isValid) {\n return;\n }\n field.mutate(normalizeUrl(value, options), field);\n }\n);\nvar inRule = createRule(\n (value, options, field) => {\n if (!field.isValid) {\n return;\n }\n const choices = typeof options.choices === \"function\" ? options.choices(field) : options.choices;\n if (!choices.includes(value)) {\n field.report(messages.in, \"in\", field, options);\n return;\n }\n }\n);\nvar notInRule = createRule(\n (value, options, field) => {\n if (!field.isValid) {\n return;\n }\n const list = typeof options.list === \"function\" ? options.list(field) : options.list;\n if (list.includes(value)) {\n field.report(messages.notIn, \"notIn\", field, options);\n return;\n }\n }\n);\nvar creditCardRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n const providers = options ? typeof options === \"function\" ? options(field)?.provider || [] : options.provider : [];\n if (!providers.length) {\n if (!helpers.isCreditCard(value)) {\n field.report(messages.creditCard, \"creditCard\", field, {\n providersList: \"credit\"\n });\n }\n } else {\n const matchesAnyProvider = providers.find(\n (provider) => helpers.isCreditCard(value, { provider })\n );\n if (!matchesAnyProvider) {\n field.report(messages.creditCard, \"creditCard\", field, {\n providers,\n providersList: providers.join(\"/\")\n });\n }\n }\n});\nvar passportRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n const countryCodes = typeof options === \"function\" ? options(field).countryCode : options.countryCode;\n const matchesAnyCountryCode = countryCodes.find(\n (countryCode) => helpers.isPassportNumber(value, countryCode)\n );\n if (!matchesAnyCountryCode) {\n field.report(messages.passport, \"passport\", field, { countryCodes });\n }\n});\nvar postalCodeRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n const countryCodes = options ? typeof options === \"function\" ? options(field)?.countryCode || [] : options.countryCode : [];\n if (!countryCodes.length) {\n if (!helpers.isPostalCode(value, \"any\")) {\n field.report(messages.postalCode, \"postalCode\", field);\n }\n } else {\n const matchesAnyCountryCode = countryCodes.find(\n (countryCode) => helpers.isPostalCode(value, countryCode)\n );\n if (!matchesAnyCountryCode) {\n field.report(messages.postalCode, \"postalCode\", field, { countryCodes });\n }\n }\n});\nvar uuidRule = createRule(\n (value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (!options || !options.version) {\n if (!helpers.isUUID(value)) {\n field.report(messages.uuid, \"uuid\", field);\n }\n } else {\n const matchesAnyVersion = options.version.find(\n (version) => helpers.isUUID(value, version)\n );\n if (!matchesAnyVersion) {\n field.report(messages.uuid, \"uuid\", field, options);\n }\n }\n }\n);\nvar asciiRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isAscii(value)) {\n field.report(messages.ascii, \"ascii\", field);\n }\n});\nvar ibanRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isIBAN(value)) {\n field.report(messages.iban, \"iban\", field);\n }\n});\nvar jwtRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isJWT(value)) {\n field.report(messages.jwt, \"jwt\", field);\n }\n});\nvar coordinatesRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isLatLong(value)) {\n field.report(messages.coordinates, \"coordinates\", field);\n }\n});\n\n// src/schema/string/main.ts\nvar VineString = class _VineString extends BaseLiteralType {\n static rules = {\n in: inRule,\n jwt: jwtRule,\n url: urlRule,\n iban: ibanRule,\n uuid: uuidRule,\n trim: trimRule,\n email: emailRule,\n alpha: alphaRule,\n ascii: asciiRule,\n notIn: notInRule,\n regex: regexRule,\n escape: escapeRule,\n sameAs: sameAsRule2,\n mobile: mobileRule,\n string: stringRule,\n hexCode: hexCodeRule,\n passport: passportRule,\n endsWith: endsWithRule,\n confirmed: confirmedRule,\n activeUrl: activeUrlRule,\n minLength: minLengthRule3,\n notSameAs: notSameAsRule2,\n maxLength: maxLengthRule3,\n ipAddress: ipAddressRule,\n creditCard: creditCardRule,\n postalCode: postalCodeRule,\n startsWith: startsWithRule,\n toUpperCase: toUpperCaseRule,\n toLowerCase: toLowerCaseRule,\n toCamelCase: toCamelCaseRule,\n fixedLength: fixedLengthRule3,\n coordinates: coordinatesRule,\n normalizeUrl: normalizeUrlRule,\n alphaNumeric: alphaNumericRule,\n normalizeEmail: normalizeEmailRule\n };\n /**\n * The property must be implemented for \"unionOfTypes\"\n */\n [UNIQUE_NAME] = \"vine.string\";\n /**\n * Checks if the value is of string type. The method must be\n * implemented for \"unionOfTypes\"\n */\n [IS_OF_TYPE] = (value) => {\n return typeof value === \"string\";\n };\n constructor(options, validations) {\n super(options, validations || [stringRule()]);\n }\n /**\n * Validates the value to be a valid URL\n */\n url(...args) {\n return this.use(urlRule(...args));\n }\n /**\n * Validates the value to be an active URL\n */\n activeUrl() {\n return this.use(activeUrlRule());\n }\n /**\n * Validates the value to be a valid email address\n */\n email(...args) {\n return this.use(emailRule(...args));\n }\n /**\n * Validates the value to be a valid mobile number\n */\n mobile(...args) {\n return this.use(mobileRule(...args));\n }\n /**\n * Validates the value to be a valid IP address.\n */\n ipAddress(version) {\n return this.use(ipAddressRule(version ? { version } : void 0));\n }\n /**\n * Validates the value to be a valid hex color code\n */\n hexCode() {\n return this.use(hexCodeRule());\n }\n /**\n * Validates the value to be an active URL\n */\n regex(expression) {\n return this.use(regexRule(expression));\n }\n /**\n * Validates the value to contain only letters\n */\n alpha(options) {\n return this.use(alphaRule(options));\n }\n /**\n * Validates the value to contain only letters and\n * numbers\n */\n alphaNumeric(options) {\n return this.use(alphaNumericRule(options));\n }\n /**\n * Enforce a minimum length on a string field\n */\n minLength(expectedLength) {\n return this.use(minLengthRule3({ min: expectedLength }));\n }\n /**\n * Enforce a maximum length on a string field\n */\n maxLength(expectedLength) {\n return this.use(maxLengthRule3({ max: expectedLength }));\n }\n /**\n * Enforce a fixed length on a string field\n */\n fixedLength(expectedLength) {\n return this.use(fixedLengthRule3({ size: expectedLength }));\n }\n /**\n * Ensure the field under validation is confirmed by\n * having another field with the same name.\n */\n confirmed(options) {\n return this.use(confirmedRule(options));\n }\n /**\n * Trims whitespaces around the string value\n */\n trim() {\n return this.use(trimRule());\n }\n /**\n * Normalizes the email address\n */\n normalizeEmail(options) {\n return this.use(normalizeEmailRule(options));\n }\n /**\n * Converts the field value to UPPERCASE.\n */\n toUpperCase() {\n return this.use(toUpperCaseRule());\n }\n /**\n * Converts the field value to lowercase.\n */\n toLowerCase() {\n return this.use(toLowerCaseRule());\n }\n /**\n * Converts the field value to camelCase.\n */\n toCamelCase() {\n return this.use(toCamelCaseRule());\n }\n /**\n * Escape string for HTML entities\n */\n escape() {\n return this.use(escapeRule());\n }\n /**\n * Normalize a URL\n */\n normalizeUrl(...args) {\n return this.use(normalizeUrlRule(...args));\n }\n /**\n * Ensure the value starts with the pre-defined substring\n */\n startsWith(substring) {\n return this.use(startsWithRule({ substring }));\n }\n /**\n * Ensure the value ends with the pre-defined substring\n */\n endsWith(substring) {\n return this.use(endsWithRule({ substring }));\n }\n /**\n * Ensure the value ends with the pre-defined substring\n */\n sameAs(otherField) {\n return this.use(sameAsRule2({ otherField }));\n }\n /**\n * Ensure the value ends with the pre-defined substring\n */\n notSameAs(otherField) {\n return this.use(notSameAsRule2({ otherField }));\n }\n /**\n * Ensure the field's value under validation is a subset of the pre-defined list.\n */\n in(choices) {\n return this.use(inRule({ choices }));\n }\n /**\n * Ensure the field's value under validation is not inside the pre-defined list.\n */\n notIn(list) {\n return this.use(notInRule({ list }));\n }\n /**\n * Validates the value to be a valid credit card number\n */\n creditCard(...args) {\n return this.use(creditCardRule(...args));\n }\n /**\n * Validates the value to be a valid passport number\n */\n passport(...args) {\n return this.use(passportRule(...args));\n }\n /**\n * Validates the value to be a valid postal code\n */\n postalCode(...args) {\n return this.use(postalCodeRule(...args));\n }\n /**\n * Validates the value to be a valid UUID\n */\n uuid(...args) {\n return this.use(uuidRule(...args));\n }\n /**\n * Validates the value contains ASCII characters only\n */\n ascii() {\n return this.use(asciiRule());\n }\n /**\n * Validates the value to be a valid IBAN number\n */\n iban() {\n return this.use(ibanRule());\n }\n /**\n * Validates the value to be a valid JWT token\n */\n jwt() {\n return this.use(jwtRule());\n }\n /**\n * Ensure the value is a string with latitude and longitude coordinates\n */\n coordinates() {\n return this.use(coordinatesRule());\n }\n /**\n * Clones the VineString schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineString(this.cloneOptions(), this.cloneValidations());\n }\n};\n\n// src/schema/number/rules.ts\nvar numberRule = createRule((value, options, field) => {\n const valueAsNumber = options.strict ? value : helpers.asNumber(value);\n if (typeof valueAsNumber !== \"number\" || Number.isNaN(valueAsNumber) || valueAsNumber === Number.POSITIVE_INFINITY || valueAsNumber === Number.NEGATIVE_INFINITY) {\n field.report(messages.number, \"number\", field);\n return;\n }\n field.mutate(valueAsNumber, field);\n});\nvar minRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (value < options.min) {\n field.report(messages.min, \"min\", field, options);\n }\n});\nvar maxRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (value > options.max) {\n field.report(messages.max, \"max\", field, options);\n }\n});\nvar rangeRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (value < options.min || value > options.max) {\n field.report(messages.range, \"range\", field, options);\n }\n});\nvar positiveRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (value < 0) {\n field.report(messages.positive, \"positive\", field);\n }\n});\nvar negativeRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (value >= 0) {\n field.report(messages.negative, \"negative\", field);\n }\n});\nvar decimalRule = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (!helpers.isDecimal(String(value), {\n force_decimal: options.range[0] !== 0,\n decimal_digits: options.range.join(\",\")\n })) {\n field.report(messages.decimal, \"decimal\", field, { digits: options.range.join(\"-\") });\n }\n});\nvar withoutDecimalsRule = createRule((value, _, field) => {\n if (!field.isValid) {\n return;\n }\n if (!Number.isInteger(value)) {\n field.report(messages.withoutDecimals, \"withoutDecimals\", field);\n }\n});\nvar inRule2 = createRule((value, options, field) => {\n if (!field.isValid) {\n return;\n }\n if (!options.values.includes(value)) {\n field.report(messages[\"number.in\"], \"in\", field, options);\n }\n});\n\n// src/schema/number/main.ts\nvar VineNumber = class _VineNumber extends BaseLiteralType {\n /**\n * Default collection of number rules\n */\n static rules = {\n in: inRule2,\n max: maxRule,\n min: minRule,\n range: rangeRule,\n number: numberRule,\n decimal: decimalRule,\n negative: negativeRule,\n positive: positiveRule,\n withoutDecimals: withoutDecimalsRule\n };\n /**\n * The property must be implemented for \"unionOfTypes\"\n */\n [UNIQUE_NAME] = \"vine.number\";\n /**\n * Checks if the value is of number type. The method must be\n * implemented for \"unionOfTypes\"\n */\n [IS_OF_TYPE] = (value) => {\n const valueAsNumber = helpers.asNumber(value);\n return !Number.isNaN(valueAsNumber);\n };\n constructor(options, validations) {\n super(options, validations || [numberRule(options || {})]);\n }\n /**\n * Enforce a minimum value for the number input\n */\n min(value) {\n return this.use(minRule({ min: value }));\n }\n /**\n * Enforce a maximum value for the number input\n */\n max(value) {\n return this.use(maxRule({ max: value }));\n }\n /**\n * Enforce value to be within the range of minimum and maximum output.\n */\n range(value) {\n return this.use(rangeRule({ min: value[0], max: value[1] }));\n }\n /**\n * Enforce the value be a positive number\n */\n positive() {\n return this.use(positiveRule());\n }\n /**\n * Enforce the value be a negative number\n */\n negative() {\n return this.use(negativeRule());\n }\n /**\n * Enforce the value to have fixed or range\n * of decimal places\n */\n decimal(range) {\n return this.use(decimalRule({ range: Array.isArray(range) ? range : [range] }));\n }\n /**\n * Enforce the value to be an integer (aka without decimals)\n */\n withoutDecimals() {\n return this.use(withoutDecimalsRule());\n }\n /**\n * Clones the VineNumber schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineNumber(this.cloneOptions(), this.cloneValidations());\n }\n /**\n * Enforce the value to be in a list of allowed values\n */\n in(values) {\n return this.use(inRule2({ values }));\n }\n};\n\n// src/schema/boolean/rules.ts\nvar booleanRule = createRule((value, options, field) => {\n const valueAsBoolean = options.strict === true ? value : helpers.asBoolean(value);\n if (typeof valueAsBoolean !== \"boolean\") {\n field.report(messages.boolean, \"boolean\", field);\n return;\n }\n field.mutate(valueAsBoolean, field);\n});\n\n// src/schema/boolean/main.ts\nvar VineBoolean = class _VineBoolean extends BaseLiteralType {\n /**\n * Default collection of boolean rules\n */\n static rules = {\n boolean: booleanRule\n };\n /**\n * The property must be implemented for \"unionOfTypes\"\n */\n [UNIQUE_NAME] = \"vine.boolean\";\n /**\n * Checks if the value is of boolean type. The method must be\n * implemented for \"unionOfTypes\"\n */\n [IS_OF_TYPE] = (value) => {\n const valueAsBoolean = this.options.strict === true ? value : helpers.asBoolean(value);\n return typeof valueAsBoolean === \"boolean\";\n };\n constructor(options, validations) {\n super(options, validations || [booleanRule(options || {})]);\n }\n /**\n * Clones the VineBoolean schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineBoolean(this.cloneOptions(), this.cloneValidations());\n }\n};\n\n// src/schema/literal/rules.ts\nvar equalsRule2 = createRule((value, options, field) => {\n let input = value;\n if (typeof options.expectedValue === \"boolean\") {\n input = helpers.asBoolean(value);\n } else if (typeof options.expectedValue === \"number\") {\n input = helpers.asNumber(value);\n }\n if (input !== options.expectedValue) {\n field.report(messages.literal, \"literal\", field, options);\n return;\n }\n field.mutate(input, field);\n});\n\n// src/schema/literal/main.ts\nvar VineLiteral = class _VineLiteral extends BaseLiteralType {\n /**\n * Default collection of literal rules\n */\n static rules = {\n equals: equalsRule2\n };\n #value;\n constructor(value, options, validations) {\n super(options, validations || [equalsRule2({ expectedValue: value })]);\n this.#value = value;\n }\n /**\n * Clones the VineLiteral schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineLiteral(this.#value, this.cloneOptions(), this.cloneValidations());\n }\n};\n\n// src/schema/accepted/rules.ts\nvar ACCEPTED_VALUES = [\"on\", \"1\", \"yes\", \"true\", true, 1];\nvar acceptedRule = createRule((value, _, field) => {\n if (!ACCEPTED_VALUES.includes(value)) {\n field.report(messages.accepted, \"accepted\", field);\n }\n});\n\n// src/schema/accepted/main.ts\nvar VineAccepted = class _VineAccepted extends BaseLiteralType {\n /**\n * Default collection of accepted rules\n */\n static rules = {\n accepted: acceptedRule\n };\n constructor(options, validations) {\n super(options, validations || [acceptedRule()]);\n }\n /**\n * Clones the VineAccepted schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineAccepted(this.cloneOptions(), this.cloneValidations());\n }\n};\n\n// src/schema/object/group.ts\nvar ObjectGroup = class _ObjectGroup {\n #conditionals;\n #otherwiseCallback = (_, field) => {\n field.report(messages.unionGroup, \"unionGroup\", field);\n };\n constructor(conditionals) {\n this.#conditionals = conditionals;\n }\n /**\n * Clones the ObjectGroup schema type.\n */\n clone() {\n const cloned = new _ObjectGroup(this.#conditionals);\n cloned.otherwise(this.#otherwiseCallback);\n return cloned;\n }\n /**\n * Define a fallback method to invoke when all of the group conditions\n * fail. You may use this method to report an error.\n */\n otherwise(callback) {\n this.#otherwiseCallback = callback;\n return this;\n }\n /**\n * Compiles the group\n */\n [PARSE](refs, options) {\n return {\n type: \"group\",\n elseConditionalFnRefId: refs.trackConditional(this.#otherwiseCallback),\n conditions: this.#conditionals.map((conditional) => conditional[PARSE](refs, options))\n };\n }\n};\n\n// src/schema/object/conditional.ts\nvar GroupConditional = class {\n /**\n * Properties to merge when conditonal is true\n */\n #properties;\n /**\n * Conditional to evaluate\n */\n #conditional;\n constructor(conditional, properties) {\n this.#properties = properties;\n this.#conditional = conditional;\n }\n /**\n * Compiles to a union conditional\n */\n [PARSE](refs, options) {\n return {\n schema: {\n type: \"sub_object\",\n properties: Object.keys(this.#properties).map((property) => {\n return this.#properties[property][PARSE](property, refs, options);\n }),\n groups: []\n // Compiler allows nested groups, but we are not implementing it\n },\n conditionalFnRefId: refs.trackConditional(this.#conditional)\n };\n }\n};\n\n// src/schema/object/group_builder.ts\nfunction group(conditionals) {\n return new ObjectGroup(conditionals);\n}\ngroup.if = function groupIf(conditon, properties) {\n return new GroupConditional(conditon, properties);\n};\ngroup.else = function groupElse(properties) {\n return new GroupConditional(() => true, properties);\n};\n\n// src/schema/enum/native_enum.ts\nvar VineNativeEnum = class _VineNativeEnum extends BaseLiteralType {\n /**\n * Default collection of enum rules\n */\n static rules = {\n enum: enumRule\n };\n #values;\n constructor(values, options, validations) {\n super(options, validations || [enumRule({ choices: Object.values(values) })]);\n this.#values = values;\n }\n /**\n * Clones the VineNativeEnum schema type. The applied options\n * and validations are copied to the new instance\n */\n clone() {\n return new _VineNativeEnum(this.#values, this.cloneOptions(), this.cloneValidations());\n }\n};\n\n// src/schema/union_of_types/main.ts\nimport camelcase8 from \"camelcase\";\nvar VineUnionOfTypes = class _VineUnionOfTypes {\n #schemas;\n #otherwiseCallback = (_, field) => {\n field.report(messages.unionOfTypes, \"unionOfTypes\", field);\n };\n constructor(schemas) {\n this.#schemas = schemas;\n }\n /**\n * Define a fallback method to invoke when all of the union conditions\n * fail. You may use this method to report an error.\n */\n otherwise(callback) {\n this.#otherwiseCallback = callback;\n return this;\n }\n /**\n * Clones the VineUnionOfTypes schema type.\n */\n clone() {\n const cloned = new _VineUnionOfTypes(this.#schemas);\n cloned.otherwise(this.#otherwiseCallback);\n return cloned;\n }\n /**\n * Compiles to a union\n */\n [PARSE](propertyName, refs, options) {\n return {\n type: \"union\",\n fieldName: propertyName,\n propertyName: options.toCamelCase ? camelcase8(propertyName) : propertyName,\n elseConditionalFnRefId: refs.trackConditional(this.#otherwiseCallback),\n conditions: this.#schemas.map((schema) => {\n return {\n conditionalFnRefId: refs.trackConditional((value, field) => {\n return schema[IS_OF_TYPE](value, field);\n }),\n schema: schema[PARSE](propertyName, refs, options)\n };\n })\n };\n }\n};\n\n// src/schema/builder.ts\nvar SchemaBuilder = class extends Macroable3 {\n /**\n * Define a sub-object as a union\n */\n group = group;\n /**\n * Define a union value\n */\n union = union;\n /**\n * Define a string value\n */\n string() {\n return new VineString();\n }\n /**\n * Define a boolean value\n */\n boolean(options) {\n return new VineBoolean(options);\n }\n /**\n * Validate a checkbox to be checked\n */\n accepted() {\n return new VineAccepted();\n }\n /**\n * Define a number value\n */\n number(options) {\n return new VineNumber(options);\n }\n /**\n * Define a datetime value\n */\n date(options) {\n return new VineDate(options);\n }\n /**\n * Define a schema type in which the input value\n * matches the pre-defined value\n */\n literal(value) {\n return new VineLiteral(value);\n }\n /**\n * Define an object with known properties. You may call \"allowUnknownProperties\"\n * to merge unknown properties.\n */\n object(properties) {\n return new VineObject(properties);\n }\n /**\n * Define an array field and validate its children elements.\n */\n array(schema) {\n return new VineArray(schema);\n }\n /**\n * Define an array field with known length and each children\n * element may have its own schema.\n */\n tuple(schemas) {\n return new VineTuple(schemas);\n }\n /**\n * Define an object field with key-value pair. The keys in\n * a record are unknown and values can be of a specific\n * schema type.\n */\n record(schema) {\n return new VineRecord(schema);\n }\n enum(values) {\n if (Array.isArray(values) || typeof values === \"function\") {\n return new VineEnum(values);\n }\n return new VineNativeEnum(values);\n }\n /**\n * Allow the field value to be anything\n */\n any() {\n return new VineAny();\n }\n /**\n * Define a union of unique schema types.\n */\n unionOfTypes(schemas) {\n const schemasInUse = /* @__PURE__ */ new Set();\n schemas.forEach((schema) => {\n if (!schema[IS_OF_TYPE] || !schema[UNIQUE_NAME]) {\n throw new Error(\n `Cannot use \"${schema.constructor.name}\". The schema type is not compatible for use with \"vine.unionOfTypes\"`\n );\n }\n if (schemasInUse.has(schema[UNIQUE_NAME])) {\n throw new Error(\n `Cannot use duplicate schema \"${schema[UNIQUE_NAME]}\". \"vine.unionOfTypes\" needs distinct schema types only`\n );\n }\n schemasInUse.add(schema[UNIQUE_NAME]);\n });\n schemasInUse.clear();\n return new VineUnionOfTypes(schemas);\n }\n};\n\n// src/vine/validator.ts\nimport { Compiler, refsBuilder } from \"@vinejs/compiler\";\nvar COMPILER_ERROR_MESSAGES = {\n required: messages.required,\n array: messages.array,\n object: messages.object\n};\nvar VineValidator = class {\n /**\n * Reference to the compiled schema\n */\n #compiled;\n /**\n * Messages provider to use on the validator\n */\n messagesProvider;\n /**\n * Error reporter to use on the validator\n */\n errorReporter;\n /**\n * Parses schema to compiler nodes.\n */\n #parse(schema) {\n const refs = refsBuilder();\n return {\n compilerNode: {\n type: \"root\",\n schema: schema[PARSE](\"\", refs, { toCamelCase: false })\n },\n refs: refs.toJSON()\n };\n }\n constructor(schema, options) {\n const { compilerNode, refs } = this.#parse(schema);\n this.#compiled = { schema: compilerNode, refs };\n const metaDataValidator = options.metaDataValidator;\n const validateFn = new Compiler(compilerNode, {\n convertEmptyStringsToNull: options.convertEmptyStringsToNull,\n messages: COMPILER_ERROR_MESSAGES\n }).compile();\n this.errorReporter = options.errorReporter;\n this.messagesProvider = options.messagesProvider;\n if (metaDataValidator) {\n this.validate = (data, validateOptions) => {\n let normalizedOptions = validateOptions ?? {};\n const meta = normalizedOptions.meta ?? {};\n const errorReporter = normalizedOptions.errorReporter ?? this.errorReporter;\n const messagesProvider = normalizedOptions.messagesProvider ?? this.messagesProvider;\n metaDataValidator(meta);\n return validateFn(data, meta, refs, messagesProvider, errorReporter());\n };\n } else {\n this.validate = (data, validateOptions) => {\n let normalizedOptions = validateOptions ?? {};\n const meta = normalizedOptions.meta ?? {};\n const errorReporter = normalizedOptions.errorReporter ?? this.errorReporter;\n const messagesProvider = normalizedOptions.messagesProvider ?? this.messagesProvider;\n return validateFn(data, meta, refs, messagesProvider, errorReporter());\n };\n }\n }\n /**\n * Performs validation without throwing the validation\n * exception. Instead, the validation errors are\n * returned as the first argument.\n *\n *\n * ```ts\n * await validator.tryValidate(data)\n * await validator.tryValidate(data, { meta: {} })\n *\n * await validator.tryValidate(data, {\n * meta: { userId: auth.user.id },\n * errorReporter,\n * messagesProvider\n * })\n * ```\n *\n */\n async tryValidate(data, ...[options]) {\n try {\n const result = await this.validate(data, options);\n return [null, result];\n } catch (error) {\n if (error instanceof ValidationError) {\n return [error, null];\n }\n throw error;\n }\n }\n /**\n * Returns the compiled schema and refs.\n */\n toJSON() {\n const { schema, refs } = this.#compiled;\n return {\n schema: structuredClone(schema),\n refs\n };\n }\n};\n\n// src/vine/main.ts\nvar Vine = class extends SchemaBuilder {\n /**\n * Messages provider to use on the validator\n */\n messagesProvider = new SimpleMessagesProvider(messages, fields);\n /**\n * Error reporter to use on the validator\n */\n errorReporter = () => new SimpleErrorReporter();\n /**\n * Control whether or not to convert empty strings to null\n */\n convertEmptyStringsToNull = false;\n /**\n * Helpers to perform type-checking or cast types keeping\n * HTML forms serialization behavior in mind.\n */\n helpers = helpers;\n /**\n * Convert a validation function to a Vine schema rule\n */\n createRule = createRule;\n /**\n * Pre-compiles a schema into a validation function.\n *\n * ```ts\n * const validate = vine.compile(schema)\n * await validate({ data })\n * ```\n */\n compile(schema) {\n return new VineValidator(schema, {\n convertEmptyStringsToNull: this.convertEmptyStringsToNull,\n messagesProvider: this.messagesProvider,\n errorReporter: this.errorReporter\n });\n }\n /**\n * Define a callback to validate the metadata given to the validator\n * at runtime\n */\n withMetaData(callback) {\n return {\n compile: (schema) => {\n return new VineValidator(schema, {\n convertEmptyStringsToNull: this.convertEmptyStringsToNull,\n messagesProvider: this.messagesProvider,\n errorReporter: this.errorReporter,\n metaDataValidator: callback\n });\n }\n };\n }\n /**\n * Validate data against a schema. Optionally, you can define\n * error messages, fields, a custom messages provider,\n * or an error reporter.\n *\n * ```ts\n * await vine.validate({ schema, data })\n * await vine.validate({ schema, data, messages, fields })\n *\n * await vine.validate({ schema, data, messages, fields }, {\n * errorReporter\n * })\n * ```\n */\n validate(options) {\n const validator = this.compile(options.schema);\n return validator.validate(options.data, options);\n }\n /**\n * Validate data against a schema without throwing the\n * \"ValidationError\" exception. Instead the validation\n * errors are returned within the return value.\n *\n * ```ts\n * await vine.tryValidate({ schema, data })\n * await vine.tryValidate({ schema, data, messages, fields })\n *\n * await vine.tryValidate({ schema, data, messages, fields }, {\n * errorReporter\n * })\n * ```\n */\n tryValidate(options) {\n const validator = this.compile(options.schema);\n return validator.tryValidate(options.data, options);\n }\n};\n\n// index.ts\nvar vine = new Vine();\nvar vine_default = vine;\n\nexport {\n symbols_exports,\n BaseLiteralType,\n VineAny,\n VineEnum,\n VineDate,\n VineUnion,\n BaseModifiersType2 as BaseModifiersType,\n BaseType,\n VineTuple,\n VineArray,\n VineObject,\n VineRecord,\n VineString,\n VineNumber,\n VineBoolean,\n VineLiteral,\n VineAccepted,\n VineValidator,\n Vine,\n vine_default\n};\n//# sourceMappingURL=chunk-46WINKKP.js.map",
47
- "// index.ts\nvar Macroable = class {\n /**\n *\n * Macros are standard properties that gets added to the class prototype.\n *\n * ```ts\n * MyClass.macro('foo', 'bar')\n * ```\n */\n static macro(name, value) {\n this.prototype[name] = value;\n }\n /**\n *\n * Getters are added to the class prototype using the Object.defineProperty.\n *\n * ```ts\n * MyClass.getter('foo', function foo () {\n * return 'bar'\n * })\n * ```\n *\n * You can add a singleton getter by enabling the `singleton` flag.\n *\n * ```ts\n * const singleton = true\n *\n * MyClass.getter('foo', function foo () {\n * return 'bar'\n * }, singleton)\n * ```\n */\n static getter(name, accumulator, singleton = false) {\n Object.defineProperty(this.prototype, name, {\n get() {\n const value = accumulator.call(this);\n if (singleton) {\n Object.defineProperty(this, name, {\n configurable: false,\n enumerable: false,\n value,\n writable: false\n });\n }\n return value;\n },\n configurable: true,\n enumerable: false\n });\n }\n};\nexport {\n Macroable as default\n};\n//# sourceMappingURL=index.js.map",
48
- "const UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase, preserveConsecutiveUppercase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\tlet isLastLastCharPreserved = false;\n\n\tfor (let index = 0; index < string.length; index++) {\n\t\tconst character = string[index];\n\t\tisLastLastCharPreserved = index > 2 ? string[index - 3] === '-' : true;\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, index) + '-' + string.slice(index);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\tindex++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character) && (!isLastLastCharPreserved || preserveConsecutiveUppercase)) {\n\t\t\tstring = string.slice(0, index - 1) + '-' + string.slice(index - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replaceAll(LEADING_CAPITAL, match => toLowerCase(match));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input\n\t\t.replaceAll(NUMBERS_AND_IDENTIFIER, (match, pattern, offset) => ['_', '-'].includes(input.charAt(offset + match.length)) ? match : toUpperCase(match))\n\t\t.replaceAll(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier));\n};\n\nexport default function camelCase(input, options) {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options,\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false\n\t\t? string => string.toLowerCase()\n\t\t: string => string.toLocaleLowerCase(options.locale);\n\n\tconst toUpperCase = options.locale === false\n\t\t? string => string.toUpperCase()\n\t\t: string => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\tif (SEPARATORS.test(input)) {\n\t\t\treturn '';\n\t\t}\n\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase, options.preserveConsecutiveUppercase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\tinput = options.preserveConsecutiveUppercase ? preserveConsecutiveUppercase(input, toLowerCase) : toLowerCase(input);\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n}\n",
49
- "// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\nconst DATA_URL_DEFAULT_MIME_TYPE = 'text/plain';\nconst DATA_URL_DEFAULT_CHARSET = 'us-ascii';\n\nconst testParameter = (name, filters) => filters.some(filter => filter instanceof RegExp ? filter.test(name) : filter === name);\n\nconst supportedProtocols = new Set([\n\t'https:',\n\t'http:',\n\t'file:',\n]);\n\nconst hasCustomProtocol = urlString => {\n\ttry {\n\t\tconst {protocol} = new URL(urlString);\n\n\t\treturn protocol.endsWith(':')\n\t\t\t&& !protocol.includes('.')\n\t\t\t&& !supportedProtocols.has(protocol);\n\t} catch {\n\t\treturn false;\n\t}\n};\n\nconst normalizeDataURL = (urlString, {stripHash}) => {\n\tconst match = /^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(urlString);\n\n\tif (!match) {\n\t\tthrow new Error(`Invalid URL: ${urlString}`);\n\t}\n\n\tlet {type, data, hash} = match.groups;\n\tconst mediaType = type.split(';');\n\thash = stripHash ? '' : hash;\n\n\tlet isBase64 = false;\n\tif (mediaType[mediaType.length - 1] === 'base64') {\n\t\tmediaType.pop();\n\t\tisBase64 = true;\n\t}\n\n\t// Lowercase MIME type\n\tconst mimeType = mediaType.shift()?.toLowerCase() ?? '';\n\tconst attributes = mediaType\n\t\t.map(attribute => {\n\t\t\tlet [key, value = ''] = attribute.split('=').map(string => string.trim());\n\n\t\t\t// Lowercase `charset`\n\t\t\tif (key === 'charset') {\n\t\t\t\tvalue = value.toLowerCase();\n\n\t\t\t\tif (value === DATA_URL_DEFAULT_CHARSET) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn `${key}${value ? `=${value}` : ''}`;\n\t\t})\n\t\t.filter(Boolean);\n\n\tconst normalizedMediaType = [\n\t\t...attributes,\n\t];\n\n\tif (isBase64) {\n\t\tnormalizedMediaType.push('base64');\n\t}\n\n\tif (normalizedMediaType.length > 0 || (mimeType && mimeType !== DATA_URL_DEFAULT_MIME_TYPE)) {\n\t\tnormalizedMediaType.unshift(mimeType);\n\t}\n\n\treturn `data:${normalizedMediaType.join(';')},${isBase64 ? data.trim() : data}${hash ? `#${hash}` : ''}`;\n};\n\nexport default function normalizeUrl(urlString, options) {\n\toptions = {\n\t\tdefaultProtocol: 'http',\n\t\tnormalizeProtocol: true,\n\t\tforceHttp: false,\n\t\tforceHttps: false,\n\t\tstripAuthentication: true,\n\t\tstripHash: false,\n\t\tstripTextFragment: true,\n\t\tstripWWW: true,\n\t\tremoveQueryParameters: [/^utm_\\w+/i],\n\t\tremoveTrailingSlash: true,\n\t\tremoveSingleSlash: true,\n\t\tremoveDirectoryIndex: false,\n\t\tremoveExplicitPort: false,\n\t\tsortQueryParameters: true,\n\t\t...options,\n\t};\n\n\t// Legacy: Append `:` to the protocol if missing.\n\tif (typeof options.defaultProtocol === 'string' && !options.defaultProtocol.endsWith(':')) {\n\t\toptions.defaultProtocol = `${options.defaultProtocol}:`;\n\t}\n\n\turlString = urlString.trim();\n\n\t// Data URL\n\tif (/^data:/i.test(urlString)) {\n\t\treturn normalizeDataURL(urlString, options);\n\t}\n\n\tif (hasCustomProtocol(urlString)) {\n\t\treturn urlString;\n\t}\n\n\tconst hasRelativeProtocol = urlString.startsWith('//');\n\tconst isRelativeUrl = !hasRelativeProtocol && /^\\.*\\//.test(urlString);\n\n\t// Prepend protocol\n\tif (!isRelativeUrl) {\n\t\turlString = urlString.replace(/^(?!(?:\\w+:)?\\/\\/)|^\\/\\//, options.defaultProtocol);\n\t}\n\n\tconst urlObject = new URL(urlString);\n\n\tif (options.forceHttp && options.forceHttps) {\n\t\tthrow new Error('The `forceHttp` and `forceHttps` options cannot be used together');\n\t}\n\n\tif (options.forceHttp && urlObject.protocol === 'https:') {\n\t\turlObject.protocol = 'http:';\n\t}\n\n\tif (options.forceHttps && urlObject.protocol === 'http:') {\n\t\turlObject.protocol = 'https:';\n\t}\n\n\t// Remove auth\n\tif (options.stripAuthentication) {\n\t\turlObject.username = '';\n\t\turlObject.password = '';\n\t}\n\n\t// Remove hash\n\tif (options.stripHash) {\n\t\turlObject.hash = '';\n\t} else if (options.stripTextFragment) {\n\t\turlObject.hash = urlObject.hash.replace(/#?:~:text.*?$/i, '');\n\t}\n\n\t// Remove duplicate slashes if not preceded by a protocol\n\t// NOTE: This could be implemented using a single negative lookbehind\n\t// regex, but we avoid that to maintain compatibility with older js engines\n\t// which do not have support for that feature.\n\tif (urlObject.pathname) {\n\t\t// TODO: Replace everything below with `urlObject.pathname = urlObject.pathname.replace(/(?<!\\b[a-z][a-z\\d+\\-.]{1,50}:)\\/{2,}/g, '/');` when Safari supports negative lookbehind.\n\n\t\t// Split the string by occurrences of this protocol regex, and perform\n\t\t// duplicate-slash replacement on the strings between those occurrences\n\t\t// (if any).\n\t\tconst protocolRegex = /\\b[a-z][a-z\\d+\\-.]{1,50}:\\/\\//g;\n\n\t\tlet lastIndex = 0;\n\t\tlet result = '';\n\t\tfor (;;) {\n\t\t\tconst match = protocolRegex.exec(urlObject.pathname);\n\t\t\tif (!match) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst protocol = match[0];\n\t\t\tconst protocolAtIndex = match.index;\n\t\t\tconst intermediate = urlObject.pathname.slice(lastIndex, protocolAtIndex);\n\n\t\t\tresult += intermediate.replace(/\\/{2,}/g, '/');\n\t\t\tresult += protocol;\n\t\t\tlastIndex = protocolAtIndex + protocol.length;\n\t\t}\n\n\t\tconst remnant = urlObject.pathname.slice(lastIndex, urlObject.pathname.length);\n\t\tresult += remnant.replace(/\\/{2,}/g, '/');\n\n\t\turlObject.pathname = result;\n\t}\n\n\t// Decode URI octets\n\tif (urlObject.pathname) {\n\t\ttry {\n\t\t\turlObject.pathname = decodeURI(urlObject.pathname);\n\t\t} catch {}\n\t}\n\n\t// Remove directory index\n\tif (options.removeDirectoryIndex === true) {\n\t\toptions.removeDirectoryIndex = [/^index\\.[a-z]+$/];\n\t}\n\n\tif (Array.isArray(options.removeDirectoryIndex) && options.removeDirectoryIndex.length > 0) {\n\t\tlet pathComponents = urlObject.pathname.split('/');\n\t\tconst lastComponent = pathComponents[pathComponents.length - 1];\n\n\t\tif (testParameter(lastComponent, options.removeDirectoryIndex)) {\n\t\t\tpathComponents = pathComponents.slice(0, -1);\n\t\t\turlObject.pathname = pathComponents.slice(1).join('/') + '/';\n\t\t}\n\t}\n\n\tif (urlObject.hostname) {\n\t\t// Remove trailing dot\n\t\turlObject.hostname = urlObject.hostname.replace(/\\.$/, '');\n\n\t\t// Remove `www.`\n\t\tif (options.stripWWW && /^www\\.(?!www\\.)[a-z\\-\\d]{1,63}\\.[a-z.\\-\\d]{2,63}$/.test(urlObject.hostname)) {\n\t\t\t// Each label should be max 63 at length (min: 1).\n\t\t\t// Source: https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names\n\t\t\t// Each TLD should be up to 63 characters long (min: 2).\n\t\t\t// It is technically possible to have a single character TLD, but none currently exist.\n\t\t\turlObject.hostname = urlObject.hostname.replace(/^www\\./, '');\n\t\t}\n\t}\n\n\t// Remove query unwanted parameters\n\tif (Array.isArray(options.removeQueryParameters)) {\n\t\t// eslint-disable-next-line unicorn/no-useless-spread -- We are intentionally spreading to get a copy.\n\t\tfor (const key of [...urlObject.searchParams.keys()]) {\n\t\t\tif (testParameter(key, options.removeQueryParameters)) {\n\t\t\t\turlObject.searchParams.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!Array.isArray(options.keepQueryParameters) && options.removeQueryParameters === true) {\n\t\turlObject.search = '';\n\t}\n\n\t// Keep wanted query parameters\n\tif (Array.isArray(options.keepQueryParameters) && options.keepQueryParameters.length > 0) {\n\t\t// eslint-disable-next-line unicorn/no-useless-spread -- We are intentionally spreading to get a copy.\n\t\tfor (const key of [...urlObject.searchParams.keys()]) {\n\t\t\tif (!testParameter(key, options.keepQueryParameters)) {\n\t\t\t\turlObject.searchParams.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Sort query parameters\n\tif (options.sortQueryParameters) {\n\t\turlObject.searchParams.sort();\n\n\t\t// Calling `.sort()` encodes the search parameters, so we need to decode them again.\n\t\ttry {\n\t\t\turlObject.search = decodeURIComponent(urlObject.search);\n\t\t} catch {}\n\t}\n\n\tif (options.removeTrailingSlash) {\n\t\turlObject.pathname = urlObject.pathname.replace(/\\/$/, '');\n\t}\n\n\t// Remove an explicit port number, excluding a default port number, if applicable\n\tif (options.removeExplicitPort && urlObject.port) {\n\t\turlObject.port = '';\n\t}\n\n\tconst oldUrlString = urlString;\n\n\t// Take advantage of many of the Node `url` normalizations\n\turlString = urlObject.toString();\n\n\tif (!options.removeSingleSlash && urlObject.pathname === '/' && !oldUrlString.endsWith('/') && urlObject.hash === '') {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Remove ending `/` unless removeSingleSlash is false\n\tif ((options.removeTrailingSlash || urlObject.pathname === '/') && urlObject.hash === '' && options.removeSingleSlash) {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Restore relative protocol, if applicable\n\tif (hasRelativeProtocol && !options.normalizeProtocol) {\n\t\turlString = urlString.replace(/^http:\\/\\//, '//');\n\t}\n\n\t// Remove http/https\n\tif (options.stripProtocol) {\n\t\turlString = urlString.replace(/^(?:https?:)?\\/\\//, '');\n\t}\n\n\treturn urlString;\n}\n",
50
- "// src/compiler/buffer.ts\nvar CompilerBuffer = class _CompilerBuffer {\n #content = \"\";\n /**\n * The character used to create a new line\n */\n newLine = \"\\n\";\n /**\n * Write statement ot the output\n */\n writeStatement(statement) {\n this.#content = `${this.#content}${this.newLine}${statement}`;\n }\n /**\n * Creates a child buffer\n */\n child() {\n return new _CompilerBuffer();\n }\n /**\n * Returns the buffer contents as string\n */\n toString() {\n return this.#content;\n }\n /**\n * Flush in-memory string\n */\n flush() {\n this.#content = \"\";\n }\n};\n\n// src/scripts/field/variables.ts\nfunction defineFieldVariables({\n parseFnRefId,\n variableName,\n wildCardPath,\n isArrayMember,\n valueExpression,\n parentExpression,\n fieldNameExpression,\n parentValueExpression\n}) {\n const inValueExpression = parseFnRefId ? `refs['${parseFnRefId}'](${valueExpression}, {\n data: root,\n meta: meta,\n parent: ${parentValueExpression}\n })` : valueExpression;\n let fieldPathOutputExpression = \"\";\n if (parentExpression === \"root\" || parentExpression === \"root_item\") {\n fieldPathOutputExpression = fieldNameExpression;\n } else if (fieldNameExpression !== \"''\") {\n fieldPathOutputExpression = `${parentExpression}.getFieldPath() + '.' + ${fieldNameExpression}`;\n }\n return `const ${variableName} = defineValue(${inValueExpression}, {\n data: root,\n meta: meta,\n name: ${fieldNameExpression},\n wildCardPath: '${wildCardPath}',\n getFieldPath() {\n return ${fieldPathOutputExpression};\n },\n mutate: defineValue,\n report: report,\n isValid: true,\n parent: ${parentValueExpression},\n isArrayMember: ${isArrayMember},\n});`;\n}\n\n// src/compiler/nodes/base.ts\nvar BaseNode = class {\n #node;\n #parentField;\n field;\n constructor(node, compiler, parent, parentField) {\n this.#parentField = parentField;\n this.#node = node;\n if (this.#parentField) {\n this.field = this.#parentField;\n } else {\n compiler.variablesCounter++;\n this.field = compiler.createFieldFor(node, parent);\n }\n }\n defineField(buffer) {\n if (!this.#parentField) {\n buffer.writeStatement(\n defineFieldVariables({\n fieldNameExpression: this.field.fieldNameExpression,\n isArrayMember: this.field.isArrayMember,\n parentExpression: this.field.parentExpression,\n parentValueExpression: this.field.parentValueExpression,\n valueExpression: this.field.valueExpression,\n variableName: this.field.variableName,\n wildCardPath: this.field.wildCardPath,\n parseFnRefId: \"parseFnId\" in this.#node ? this.#node.parseFnId : void 0\n })\n );\n }\n }\n};\n\n// src/scripts/array/guard.ts\nfunction defineArrayGuard({ variableName, guardedCodeSnippet }) {\n return `if (ensureIsArray(${variableName})) {\n${guardedCodeSnippet}\n}`;\n}\n\n// src/scripts/field/is_valid_guard.ts\nfunction defineIsValidGuard({ variableName, bail, guardedCodeSnippet }) {\n if (!bail) {\n return guardedCodeSnippet;\n }\n return `if (${variableName}.isValid) {\n${guardedCodeSnippet}\n}`;\n}\n\n// src/scripts/field/null_output.ts\nfunction defineFieldNullOutput({\n allowNull,\n conditional,\n variableName,\n outputExpression,\n transformFnRefId\n}) {\n if (!allowNull) {\n return \"\";\n }\n return `${conditional || \"if\"}(${variableName}.value === null) {\n ${outputExpression} = ${transformFnRefId ? `refs['${transformFnRefId}'](null, ${variableName});` : \"null;\"}\n}`;\n}\n\n// src/scripts/field/validations.ts\nfunction wrapInConditional(conditions, wrappingCode) {\n const [first, second] = conditions;\n if (first && second) {\n return `if (${first} && ${second}) {\n ${wrappingCode}\n}`;\n }\n if (first) {\n return `if (${first}) {\n ${wrappingCode}\n}`;\n }\n if (second) {\n return `if (${second}) {\n ${wrappingCode}\n}`;\n }\n return wrappingCode;\n}\nfunction emitValidationSnippet({ isAsync, implicit, ruleFnId }, variableName, bail, dropMissingCheck) {\n const rule = `refs['${ruleFnId}']`;\n const callable = `${rule}.validator(${variableName}.value, ${rule}.options, ${variableName});`;\n const bailCondition = bail ? `${variableName}.isValid` : \"\";\n const implicitCondition = implicit || dropMissingCheck ? \"\" : `${variableName}.isDefined`;\n return wrapInConditional(\n [bailCondition, implicitCondition],\n isAsync ? `await ${callable}` : `${callable}`\n );\n}\nfunction defineFieldValidations({\n bail,\n validations,\n variableName,\n dropMissingCheck\n}) {\n return `${validations.map((one) => emitValidationSnippet(one, variableName, bail, dropMissingCheck)).join(\"\\n\")}`;\n}\n\n// src/scripts/array/initial_output.ts\nfunction defineArrayInitialOutput({\n variableName,\n outputExpression,\n outputValueExpression\n}) {\n return `const ${variableName}_out = ${outputValueExpression};\n${outputExpression} = ${variableName}_out;`;\n}\n\n// src/scripts/field/existence_validations.ts\nfunction defineFieldExistenceValidations({\n allowNull,\n isOptional,\n variableName\n}) {\n if (isOptional === false) {\n if (allowNull === false) {\n return `ensureExists(${variableName});`;\n } else {\n return `ensureIsDefined(${variableName});`;\n }\n }\n return \"\";\n}\n\n// src/compiler/nodes/tuple.ts\nvar TupleNodeCompiler = class extends BaseNode {\n #node;\n #buffer;\n #compiler;\n constructor(node, buffer, compiler, parent, parentField) {\n super(node, compiler, parent, parentField);\n this.#node = node;\n this.#buffer = buffer;\n this.#compiler = compiler;\n }\n /**\n * Compiles the tuple children to a JS fragment\n */\n #compileTupleChildren() {\n const buffer = this.#buffer.child();\n const parent = {\n type: \"tuple\",\n fieldPathExpression: this.field.fieldPathExpression,\n outputExpression: this.field.outputExpression,\n variableName: this.field.variableName,\n wildCardPath: this.field.wildCardPath\n };\n this.#node.properties.forEach((child) => {\n this.#compiler.compileNode(child, buffer, parent);\n });\n return buffer.toString();\n }\n compile() {\n this.defineField(this.#buffer);\n this.#buffer.writeStatement(\n defineFieldExistenceValidations({\n allowNull: this.#node.allowNull,\n isOptional: this.#node.isOptional,\n variableName: this.field.variableName\n })\n );\n const isArrayValidBlock = defineIsValidGuard({\n variableName: this.field.variableName,\n bail: this.#node.bail,\n guardedCodeSnippet: `${defineArrayInitialOutput({\n variableName: this.field.variableName,\n outputExpression: this.field.outputExpression,\n outputValueExpression: this.#node.allowUnknownProperties ? `copyProperties(${this.field.variableName}.value)` : `[]`\n })}${this.#compileTupleChildren()}`\n });\n const isValueAnArrayBlock = defineArrayGuard({\n variableName: this.field.variableName,\n guardedCodeSnippet: `${defineFieldValidations({\n variableName: this.field.variableName,\n validations: this.#node.validations,\n bail: this.#node.bail,\n dropMissingCheck: true\n })}${this.#buffer.newLine}${isArrayValidBlock}`\n });\n this.#buffer.writeStatement(\n `${isValueAnArrayBlock}${this.#buffer.newLine}${defineFieldNullOutput({\n allowNull: this.#node.allowNull,\n outputExpression: this.field.outputExpression,\n variableName: this.field.variableName,\n conditional: \"else if\"\n })}`\n );\n }\n};\n\n// src/scripts/array/loop.ts\nfunction defineArrayLoop({\n variableName,\n loopCodeSnippet,\n startingIndex\n}) {\n startingIndex = startingIndex || 0;\n return `const ${variableName}_items_size = ${variableName}.value.length;\nfor (let ${variableName}_i = ${startingIndex}; ${variableName}_i < ${variableName}_items_size; ${variableName}_i++) {\n${loopCodeSnippet}\n}`;\n}\n\n// src/compiler/nodes/array.ts\nvar ArrayNodeCompiler = class extends BaseNode {\n #node;\n #buffer;\n #compiler;\n constructor(node, buffer, compiler, parent, parentField) {\n super(node, compiler, parent, parentField);\n this.#node = node;\n this.#buffer = buffer;\n this.#compiler = compiler;\n }\n /**\n * Compiles the array elements to a JS fragment\n */\n #compileArrayElements() {\n const arrayElementsBuffer = this.#buffer.child();\n this.#compiler.compileNode(this.#node.each, arrayElementsBuffer, {\n type: \"array\",\n fieldPathExpression: this.field.fieldPathExpression,\n outputExpression: this.field.outputExpression,\n variableName: this.field.variableName,\n wildCardPath: this.field.wildCardPath\n });\n const buffer = this.#buffer.child();\n buffer.writeStatement(\n defineArrayLoop({\n variableName: this.field.variableName,\n startingIndex: 0,\n loopCodeSnippet: arrayElementsBuffer.toString()\n })\n );\n arrayElementsBuffer.flush();\n return buffer.toString();\n }\n compile() {\n this.defineField(this.#buffer);\n this.#buffer.writeStatement(\n defineFieldExistenceValidations({\n allowNull: this.#node.allowNull,\n isOptional: this.#node.isOptional,\n variableName: this.field.variableName\n })\n );\n const isArrayValidBlock = defineIsValidGuard({\n variableName: this.field.variableName,\n bail: this.#node.bail,\n guardedCodeSnippet: `${defineArrayInitialOutput({\n variableName: this.field.variableName,\n outputExpression: this.field.outputExpression,\n outputValueExpression: `[]`\n })}${this.#buffer.newLine}${this.#compileArrayElements()}`\n });\n const isValueAnArrayBlock = defineArrayGuard({\n variableName: this.field.variableName,\n guardedCodeSnippet: `${defineFieldValidations({\n variableName: this.field.variableName,\n validations: this.#node.validations,\n bail: this.#node.bail,\n dropMissingCheck: true\n })}${this.#buffer.newLine}${isArrayValidBlock}`\n });\n this.#buffer.writeStatement(\n `${isValueAnArrayBlock}${this.#buffer.newLine}${defineFieldNullOutput({\n allowNull: this.#node.allowNull,\n outputExpression: this.field.outputExpression,\n variableName: this.field.variableName,\n conditional: \"else if\"\n })}`\n );\n }\n};\n\n// src/scripts/union/parse.ts\nfunction callParseFunction({ parseFnRefId, variableName }) {\n if (parseFnRefId) {\n return `${variableName}.value = refs['${parseFnRefId}'](${variableName}.value);`;\n }\n return \"\";\n}\n\n// src/scripts/define_else_conditon.ts\nfunction defineElseCondition({ variableName, conditionalFnRefId }) {\n return `else {\nrefs['${conditionalFnRefId}'](${variableName}.value, ${variableName});\n}`;\n}\n\n// src/scripts/define_conditional_guard.ts\nfunction defineConditionalGuard({\n conditional,\n variableName,\n conditionalFnRefId,\n guardedCodeSnippet\n}) {\n return `${conditional}(refs['${conditionalFnRefId}'](${variableName}.value, ${variableName})) {\n${guardedCodeSnippet}\n}`;\n}\n\n// src/compiler/nodes/union.ts\nvar UnionNodeCompiler = class extends BaseNode {\n #compiler;\n #node;\n #buffer;\n #parent;\n constructor(node, buffer, compiler, parent, parentField) {\n super(node, compiler, parent, parentField);\n this.#node = node;\n this.#buffer = buffer;\n this.#parent = parent;\n this.#compiler = compiler;\n }\n /**\n * Compiles union children by wrapping each conditon inside a conditional\n * guard block\n */\n #compileUnionChildren() {\n const childrenBuffer = this.#buffer.child();\n this.#node.conditions.forEach((child, index) => {\n const conditionalBuffer = this.#buffer.child();\n if (\"parseFnId\" in child.schema) {\n conditionalBuffer.writeStatement(\n callParseFunction({\n parseFnRefId: child.schema.parseFnId,\n variableName: this.field.variableName\n })\n );\n }\n this.#compiler.compileNode(child.schema, conditionalBuffer, this.#parent, this.field);\n childrenBuffer.writeStatement(\n defineConditionalGuard({\n conditional: index === 0 ? \"if\" : \"else if\",\n variableName: this.field.variableName,\n conditionalFnRefId: child.conditionalFnRefId,\n guardedCodeSnippet: conditionalBuffer.toString()\n })\n );\n conditionalBuffer.flush();\n });\n if (this.#node.elseConditionalFnRefId && this.#node.conditions.length) {\n childrenBuffer.writeStatement(\n defineElseCondition({\n variableName: this.field.variableName,\n conditionalFnRefId: this.#node.elseConditionalFnRefId\n })\n );\n }\n return childrenBuffer.toString();\n }\n compile() {\n this.defineField(this.#buffer);\n this.#buffer.writeStatement(this.#compileUnionChildren());\n }\n};\n\n// src/scripts/record/loop.ts\nfunction defineRecordLoop({ variableName, loopCodeSnippet }) {\n return `const ${variableName}_keys = Object.keys(${variableName}.value);\nconst ${variableName}_keys_size = ${variableName}_keys.length;\nfor (let ${variableName}_key_i = 0; ${variableName}_key_i < ${variableName}_keys_size; ${variableName}_key_i++) {\nconst ${variableName}_i = ${variableName}_keys[${variableName}_key_i];\n${loopCodeSnippet}\n}`;\n}\n\n// src/scripts/object/guard.ts\nfunction defineObjectGuard({ variableName, guardedCodeSnippet }) {\n return `if (ensureIsObject(${variableName})) {\n${guardedCodeSnippet}\n}`;\n}\n\n// src/scripts/object/initial_output.ts\nfunction defineObjectInitialOutput({\n variableName,\n outputExpression,\n outputValueExpression\n}) {\n return `const ${variableName}_out = ${outputValueExpression};\n${outputExpression} = ${variableName}_out;`;\n}\n\n// src/compiler/nodes/record.ts\nvar RecordNodeCompiler = class extends BaseNode {\n #node;\n #buffer;\n #compiler;\n constructor(node, buffer, compiler, parent, parentField) {\n super(node, compiler, parent, parentField);\n this.#node = node;\n this.#buffer = buffer;\n this.#compiler = compiler;\n }\n /**\n * Compiles the record elements to a JS fragment\n */\n #compileRecordElements() {\n const buffer = this.#buffer.child();\n const recordElementsBuffer = this.#buffer.child();\n this.#compiler.compileNode(this.#node.each, recordElementsBuffer, {\n type: \"record\",\n fieldPathExpression: this.field.fieldPathExpression,\n outputExpression: this.field.outputExpression,\n variableName: this.field.variableName,\n wildCardPath: this.field.wildCardPath\n });\n buffer.writeStatement(\n defineRecordLoop({\n variableName: this.field.variableName,\n loopCodeSnippet: recordElementsBuffer.toString()\n })\n );\n recordElementsBuffer.flush();\n return buffer.toString();\n }\n compile() {\n this.defineField(this.#buffer);\n this.#buffer.writeStatement(\n defineFieldExistenceValidations({\n allowNull: this.#node.allowNull,\n isOptional: this.#node.isOptional,\n variableName: this.field.variableName\n })\n );\n const isObjectValidBlock = defineIsValidGuard({\n variableName: this.field.variableName,\n bail: this.#node.bail,\n guardedCodeSnippet: `${defineObjectInitialOutput({\n variableName: this.field.variableName,\n outputExpression: this.field.outputExpression,\n outputValueExpression: `{}`\n })}${this.#compileRecordElements()}`\n });\n const isValueAnObjectBlock = defineObjectGuard({\n variableName: this.field.variableName,\n guardedCodeSnippet: `${defineFieldValidations({\n variableName: this.field.variableName,\n validations: this.#node.validations,\n bail: this.#node.bail,\n dropMissingCheck: true\n })}${this.#buffer.newLine}${isObjectValidBlock}`\n });\n this.#buffer.writeStatement(\n `${isValueAnObjectBlock}${this.#buffer.newLine}${defineFieldNullOutput({\n allowNull: this.#node.allowNull,\n outputExpression: this.field.outputExpression,\n variableName: this.field.variableName,\n conditional: \"else if\"\n })}`\n );\n }\n};\n\n// src/scripts/object/move_unknown_properties.ts\nfunction arrayToString(arr) {\n return `[${arr.map((str) => `\"${str}\"`).join(\", \")}]`;\n}\nfunction defineMoveProperties({\n variableName,\n fieldsToIgnore,\n allowUnknownProperties\n}) {\n if (!allowUnknownProperties) {\n return \"\";\n }\n const serializedFieldsToIgnore = arrayToString(fieldsToIgnore);\n return `moveProperties(${variableName}.value, ${variableName}_out, ${serializedFieldsToIgnore});`;\n}\n\n// src/compiler/nodes/object.ts\nvar ObjectNodeCompiler = class extends BaseNode {\n #node;\n #buffer;\n #compiler;\n constructor(node, buffer, compiler, parent, parentField) {\n super(node, compiler, parent, parentField);\n this.#node = node;\n this.#buffer = buffer;\n this.#compiler = compiler;\n }\n /**\n * Returns known field names for the object\n */\n #getFieldNames(node) {\n let fieldNames = node.properties.map((child) => child.fieldName);\n const groupsFieldNames = node.groups.flatMap((group) => this.#getGroupFieldNames(group));\n return fieldNames.concat(groupsFieldNames);\n }\n /**\n * Returns field names of a group.\n */\n #getGroupFieldNames(group) {\n return group.conditions.flatMap((condition) => {\n return this.#getFieldNames(condition.schema);\n });\n }\n /**\n * Compiles object children to JS output\n */\n #compileObjectChildren() {\n const buffer = this.#buffer.child();\n const parent = {\n type: \"object\",\n fieldPathExpression: this.field.fieldPathExpression,\n outputExpression: this.field.outputExpression,\n variableName: this.field.variableName,\n wildCardPath: this.field.wildCardPath\n };\n this.#node.properties.forEach((child) => this.#compiler.compileNode(child, buffer, parent));\n return buffer.toString();\n }\n /**\n * Compiles object groups with conditions to JS output.\n */\n #compileObjectGroups() {\n const buffer = this.#buffer.child();\n const parent = {\n type: \"object\",\n fieldPathExpression: this.field.fieldPathExpression,\n outputExpression: this.field.outputExpression,\n variableName: this.field.variableName,\n wildCardPath: this.field.wildCardPath\n };\n this.#node.groups.forEach((group) => this.#compileObjectGroup(group, buffer, parent));\n return buffer.toString();\n }\n /**\n * Compiles an object groups recursively\n */\n #compileObjectGroup(group, buffer, parent) {\n group.conditions.forEach((condition, index) => {\n const guardBuffer = buffer.child();\n condition.schema.properties.forEach((child) => {\n this.#compiler.compileNode(child, guardBuffer, parent);\n });\n condition.schema.groups.forEach((child) => {\n this.#compileObjectGroup(child, guardBuffer, parent);\n });\n buffer.writeStatement(\n defineConditionalGuard({\n variableName: this.field.variableName,\n conditional: index === 0 ? \"if\" : \"else if\",\n conditionalFnRefId: condition.conditionalFnRefId,\n guardedCodeSnippet: guardBuffer.toString()\n })\n );\n });\n if (group.elseConditionalFnRefId && group.conditions.length) {\n buffer.writeStatement(\n defineElseCondition({\n variableName: this.field.variableName,\n conditionalFnRefId: group.elseConditionalFnRefId\n })\n );\n }\n }\n compile() {\n this.defineField(this.#buffer);\n this.#buffer.writeStatement(\n defineFieldExistenceValidations({\n allowNull: this.#node.allowNull,\n isOptional: this.#node.isOptional,\n variableName: this.field.variableName\n })\n );\n const isObjectValidBlock = defineIsValidGuard({\n variableName: this.field.variableName,\n bail: this.#node.bail,\n guardedCodeSnippet: `${defineObjectInitialOutput({\n variableName: this.field.variableName,\n outputExpression: this.field.outputExpression,\n outputValueExpression: \"{}\"\n })}${this.#buffer.newLine}${this.#compileObjectChildren()}${this.#buffer.newLine}${this.#compileObjectGroups()}${this.#buffer.newLine}${defineMoveProperties({\n variableName: this.field.variableName,\n allowUnknownProperties: this.#node.allowUnknownProperties,\n fieldsToIgnore: this.#node.allowUnknownProperties ? this.#getFieldNames(this.#node) : []\n })}`\n });\n const isValueAnObject = defineObjectGuard({\n variableName: this.field.variableName,\n guardedCodeSnippet: `${defineFieldValidations({\n variableName: this.field.variableName,\n validations: this.#node.validations,\n bail: this.#node.bail,\n dropMissingCheck: true\n })}${isObjectValidBlock}`\n });\n this.#buffer.writeStatement(\n `${isValueAnObject}${this.#buffer.newLine}${defineFieldNullOutput({\n variableName: this.field.variableName,\n allowNull: this.#node.allowNull,\n outputExpression: this.field.outputExpression,\n conditional: \"else if\"\n })}`\n );\n }\n};\n\n// src/compiler/fields/root_field.ts\nfunction createRootField(parent) {\n return {\n parentExpression: parent.variableName,\n parentValueExpression: parent.variableName,\n fieldNameExpression: `''`,\n fieldPathExpression: `''`,\n wildCardPath: \"\",\n variableName: `${parent.variableName}_item`,\n valueExpression: \"root\",\n outputExpression: parent.outputExpression,\n isArrayMember: false\n };\n}\n\n// src/scripts/field/value_output.ts\nfunction defineFieldValueOutput({\n variableName,\n outputExpression,\n transformFnRefId\n}) {\n const outputValueExpression = transformFnRefId ? `refs['${transformFnRefId}'](${variableName}.value, ${variableName})` : `${variableName}.value`;\n return `if (${variableName}.isDefined && ${variableName}.isValid) {\n ${outputExpression} = ${outputValueExpression};\n}`;\n}\n\n// src/compiler/nodes/literal.ts\nvar LiteralNodeCompiler = class extends BaseNode {\n #node;\n #buffer;\n constructor(node, buffer, compiler, parent, parentField) {\n super(node, compiler, parent, parentField);\n this.#node = node;\n this.#buffer = buffer;\n }\n compile() {\n this.defineField(this.#buffer);\n this.#buffer.writeStatement(\n defineFieldExistenceValidations({\n allowNull: this.#node.allowNull,\n isOptional: this.#node.isOptional,\n variableName: this.field.variableName\n })\n );\n this.#buffer.writeStatement(\n defineFieldValidations({\n variableName: this.field.variableName,\n validations: this.#node.validations,\n bail: this.#node.bail,\n dropMissingCheck: false\n })\n );\n this.#buffer.writeStatement(\n `${defineFieldValueOutput({\n variableName: this.field.variableName,\n outputExpression: this.field.outputExpression,\n transformFnRefId: this.#node.transformFnId\n })}${this.#buffer.newLine}${defineFieldNullOutput({\n variableName: this.field.variableName,\n allowNull: this.#node.allowNull,\n outputExpression: this.field.outputExpression,\n transformFnRefId: this.#node.transformFnId,\n conditional: \"else if\"\n })}`\n );\n }\n};\n\n// src/compiler/fields/array_field.ts\nfunction createArrayField(parent) {\n const wildCardPath = parent.wildCardPath !== \"\" ? `${parent.wildCardPath}.*` : `*`;\n return {\n parentExpression: parent.variableName,\n parentValueExpression: `${parent.variableName}.value`,\n fieldNameExpression: `${parent.variableName}_i`,\n fieldPathExpression: wildCardPath,\n wildCardPath,\n variableName: `${parent.variableName}_item`,\n valueExpression: `${parent.variableName}.value[${parent.variableName}_i]`,\n outputExpression: `${parent.variableName}_out[${parent.variableName}_i]`,\n isArrayMember: true\n };\n}\n\n// src/compiler/fields/tuple_field.ts\nfunction createTupleField(node, parent) {\n const wildCardPath = parent.wildCardPath !== \"\" ? `${parent.wildCardPath}.${node.fieldName}` : node.fieldName;\n return {\n parentExpression: parent.variableName,\n parentValueExpression: `${parent.variableName}.value`,\n fieldNameExpression: `${node.fieldName}`,\n fieldPathExpression: wildCardPath,\n wildCardPath,\n variableName: `${parent.variableName}_item_${node.fieldName}`,\n valueExpression: `${parent.variableName}.value[${node.fieldName}]`,\n outputExpression: `${parent.variableName}_out[${node.propertyName}]`,\n isArrayMember: true\n };\n}\n\n// src/scripts/report_errors.ts\nfunction reportErrors() {\n return `if(errorReporter.hasErrors) {\n throw errorReporter.createError();\n}`;\n}\n\n// src/compiler/fields/object_field.ts\nfunction createObjectField(node, variablesCounter, parent) {\n const wildCardPath = parent.wildCardPath !== \"\" ? `${parent.wildCardPath}.${node.fieldName}` : node.fieldName;\n return {\n parentExpression: parent.variableName,\n parentValueExpression: `${parent.variableName}.value`,\n fieldNameExpression: `'${node.fieldName}'`,\n fieldPathExpression: wildCardPath,\n wildCardPath,\n variableName: `${node.propertyName}_${variablesCounter}`,\n valueExpression: `${parent.variableName}.value['${node.fieldName}']`,\n outputExpression: `${parent.variableName}_out['${node.propertyName}']`,\n isArrayMember: false\n };\n}\n\n// src/compiler/fields/record_field.ts\nfunction createRecordField(parent) {\n const wildCardPath = parent.wildCardPath !== \"\" ? `${parent.wildCardPath}.*` : `*`;\n return {\n parentExpression: parent.variableName,\n parentValueExpression: `${parent.variableName}.value`,\n fieldNameExpression: `${parent.variableName}_i`,\n fieldPathExpression: wildCardPath,\n wildCardPath,\n variableName: `${parent.variableName}_item`,\n valueExpression: `${parent.variableName}.value[${parent.variableName}_i]`,\n outputExpression: `${parent.variableName}_out[${parent.variableName}_i]`,\n isArrayMember: false\n };\n}\n\n// src/scripts/define_inline_functions.ts\nfunction defineInlineFunctions(options) {\n return `function report(message, rule, field, args) {\n field.isValid = false;\n errorReporter.report(messagesProvider.getMessage(message, rule, field, args), rule, field, args);\n};\nfunction defineValue(value, field) {\n ${options.convertEmptyStringsToNull ? `if (value === '') { value = null; }` : \"\"}\n field.value = value;\n field.isDefined = value !== undefined && value !== null;\n return field;\n};\nfunction ensureExists(field) {\n if (field.value === undefined || field.value === null) {\n field.report(REQUIRED, 'required', field);\n return false;\n }\n return true;\n};\nfunction ensureIsDefined(field) {\n if (field.value === undefined) {\n field.report(REQUIRED, 'required', field);\n return false;\n }\n return true;\n};\nfunction ensureIsObject(field) {\n if (!field.isDefined) {\n return false;\n }\n if (typeof field.value == 'object' && !Array.isArray(field.value)) {\n return true;\n }\n field.report(NOT_AN_OBJECT, 'object', field);\n return false;\n};\nfunction ensureIsArray(field) {\n if (!field.isDefined) {\n return false;\n }\n if (Array.isArray(field.value)) {\n return true;\n }\n field.report(NOT_AN_ARRAY, 'array', field);\n return false;\n};\nfunction copyProperties(val) {\n let k, out, tmp;\n\n if (Array.isArray(val)) {\n out = Array((k = val.length))\n while (k--) out[k] = (tmp = val[k]) && typeof tmp == 'object' ? copyProperties(tmp) : tmp\n return out\n }\n\n if (Object.prototype.toString.call(val) === '[object Object]') {\n out = {} // null\n for (k in val) {\n out[k] = (tmp = val[k]) && typeof tmp == 'object' ? copyProperties(tmp) : tmp\n }\n return out\n }\n return val\n};\nfunction moveProperties(source, destination, ignoreKeys) {\n for (let key in source) {\n if (!ignoreKeys.includes(key)) {\n const value = source[key]\n destination[key] = copyProperties(value)\n }\n }\n};`;\n}\n\n// src/scripts/define_error_messages.ts\nfunction defineInlineErrorMessages(messages) {\n return `const REQUIRED = '${messages.required}';\nconst NOT_AN_OBJECT = '${messages.object}';\nconst NOT_AN_ARRAY = '${messages.array}';`;\n}\n\n// src/compiler/main.ts\nvar AsyncFunction = Object.getPrototypeOf(async function() {\n}).constructor;\nvar Compiler = class {\n /**\n * Variables counter is used to generate unique variable\n * names with a counter suffix.\n */\n variablesCounter = 0;\n /**\n * An array of nodes to process\n */\n #rootNode;\n /**\n * Options to configure the compiler behavior\n */\n #options;\n /**\n * Buffer for collection the JS output string\n */\n #buffer = new CompilerBuffer();\n constructor(rootNode, options) {\n this.#rootNode = rootNode;\n this.#options = options || { convertEmptyStringsToNull: false };\n }\n /**\n * Initiates the JS output\n */\n #initiateJSOutput() {\n this.#buffer.writeStatement(\n defineInlineErrorMessages({\n required: \"value is required\",\n object: \"value is not a valid object\",\n array: \"value is not a valid array\",\n ...this.#options.messages\n })\n );\n this.#buffer.writeStatement(defineInlineFunctions(this.#options));\n this.#buffer.writeStatement(\"let out;\");\n }\n /**\n * Finished the JS output\n */\n #finishJSOutput() {\n this.#buffer.writeStatement(reportErrors());\n this.#buffer.writeStatement(\"return out;\");\n }\n /**\n * Compiles all the nodes\n */\n #compileNodes() {\n this.compileNode(this.#rootNode.schema, this.#buffer, {\n type: \"root\",\n variableName: \"root\",\n outputExpression: \"out\",\n fieldPathExpression: \"out\",\n wildCardPath: \"\"\n });\n }\n /**\n * Returns compiled output as a function\n */\n #toAsyncFunction() {\n return new AsyncFunction(\n \"root\",\n \"meta\",\n \"refs\",\n \"messagesProvider\",\n \"errorReporter\",\n this.#buffer.toString()\n );\n }\n /**\n * Converts a node to a field. Optionally accepts a parent node to create\n * a field for a specific parent type.\n */\n createFieldFor(node, parent) {\n switch (parent.type) {\n case \"array\":\n return createArrayField(parent);\n case \"root\":\n return createRootField(parent);\n case \"object\":\n return createObjectField(node, this.variablesCounter, parent);\n case \"tuple\":\n return createTupleField(node, parent);\n case \"record\":\n return createRecordField(parent);\n }\n }\n /**\n * Compiles a given compiler node\n */\n compileNode(node, buffer, parent, parentField) {\n switch (node.type) {\n case \"literal\":\n return new LiteralNodeCompiler(node, buffer, this, parent, parentField).compile();\n case \"array\":\n return new ArrayNodeCompiler(node, buffer, this, parent, parentField).compile();\n case \"record\":\n return new RecordNodeCompiler(node, buffer, this, parent, parentField).compile();\n case \"object\":\n return new ObjectNodeCompiler(node, buffer, this, parent, parentField).compile();\n case \"tuple\":\n return new TupleNodeCompiler(node, buffer, this, parent, parentField).compile();\n case \"union\":\n return new UnionNodeCompiler(node, buffer, this, parent, parentField).compile();\n }\n }\n /**\n * Compile schema nodes to an async function\n */\n compile() {\n this.#initiateJSOutput();\n this.#compileNodes();\n this.#finishJSOutput();\n const outputFunction = this.#toAsyncFunction();\n this.variablesCounter = 0;\n this.#buffer.flush();\n return outputFunction;\n }\n};\n\n// src/refs_builder.ts\nfunction refsBuilder() {\n let counter = 0;\n const refs = {};\n return {\n toJSON() {\n return refs;\n },\n /**\n * Track a value inside refs\n */\n track(value) {\n counter++;\n const ref = `ref://${counter}`;\n refs[ref] = value;\n return ref;\n },\n /**\n * Track a validation inside refs\n */\n trackValidation(validation) {\n return this.track(validation);\n },\n /**\n * Track input value parser inside refs\n */\n trackParser(fn) {\n return this.track(fn);\n },\n /**\n * Track output value transformer inside refs\n */\n trackTransformer(fn) {\n return this.track(fn);\n },\n /**\n * Track a conditional inside refs\n */\n trackConditional(fn) {\n return this.track(fn);\n }\n };\n}\nexport {\n Compiler,\n refsBuilder\n};\n//# sourceMappingURL=index.js.map",
51
- "import type { Model, VineType } from '@stacksjs/types'\nimport type { SchemaTypes } from '@vinejs/vine/types'\nimport { HttpError } from '@stacksjs/error-handling'\nimport { path } from '@stacksjs/path'\nimport { snakeCase } from '@stacksjs/strings'\nimport { reportError, schema, SimpleMessagesProvider, VineError } from './'\n\ninterface RequestData {\n [key: string]: any\n}\n\ninterface ValidationField {\n rule: VineType\n message: Record<string, string>\n}\n\ninterface CustomAttributes {\n [key: string]: ValidationField\n}\n\nexport function isObjectNotEmpty(obj: object | undefined): boolean {\n if (obj === undefined)\n return false\n\n return Object.keys(obj).length > 0\n}\n\nexport async function validateField(modelFile: string, params: RequestData): Promise<any> {\n const model = (await import(/* @vite-ignore */ path.userModelsPath(`${modelFile}.ts`))).default as Model\n const attributes = model.attributes\n\n const ruleObject: Record<string, SchemaTypes> = {}\n const messageObject: Record<string, string> = {}\n\n for (const key in attributes) {\n if (Object.prototype.hasOwnProperty.call(attributes, key)) {\n ruleObject[snakeCase(key)] = attributes[key]?.validation?.rule\n const validatorMessages = attributes[key]?.validation?.message\n\n for (const validatorMessageKey in validatorMessages) {\n const validatorMessageString = `${key}.${validatorMessageKey}`\n messageObject[validatorMessageString] = attributes[key]?.validation?.message[validatorMessageKey] || ''\n }\n }\n }\n\n schema.messagesProvider = new SimpleMessagesProvider(messageObject)\n\n try {\n const vineSchema = schema.object(ruleObject)\n const validator = schema.compile(vineSchema)\n await validator.validate(params)\n }\n catch (error: any) {\n if (error instanceof VineError.E_VALIDATION_ERROR)\n reportError(error.messages)\n\n throw new HttpError(422, JSON.stringify(error.messages))\n }\n}\n\nexport async function customValidate(attributes: CustomAttributes, params: RequestData): Promise<any> {\n const ruleObject: Record<string, SchemaTypes> = {}\n const messageObject: Record<string, string> = {}\n\n for (const key in attributes) {\n if (Object.prototype.hasOwnProperty.call(attributes, key)) {\n const rule = attributes[key]?.rule\n if (rule)\n ruleObject[key] = rule as SchemaTypes\n\n const validatorMessages = attributes[key]?.message\n\n for (const validatorMessageKey in validatorMessages) {\n const validatorMessageString = `${key}.${validatorMessageKey}`\n messageObject[validatorMessageString] = attributes[key]?.message[validatorMessageKey] || ''\n }\n }\n }\n\n schema.messagesProvider = new SimpleMessagesProvider(messageObject)\n\n try {\n const vineSchema = schema.object(ruleObject)\n const validator = schema.compile(vineSchema)\n await validator.validate(params)\n }\n catch (error: any) {\n if (error instanceof VineError.E_VALIDATION_ERROR)\n reportError(error.messages)\n\n throw new HttpError(422, JSON.stringify(error.messages))\n }\n}\n",
52
- "export { toString } from '@stacksjs/strings'\n\n// export function assert(condition: boolean, message: string): asserts condition {\n// if (!condition)\n// throw new Error(message)\n// }\n\n// export function noop() {}\n\nexport async function loop(times: number, callback: any): Promise<void> {\n Array.from({ length: times }).forEach(async (_, i) => await callback(i))\n}\n",
53
- "const DEBOUNCE_DEFAULTS = {\n trailing: true\n};\nfunction debounce(fn, wait = 25, options = {}) {\n options = { ...DEBOUNCE_DEFAULTS, ...options };\n if (!Number.isFinite(wait)) {\n throw new TypeError(\"Expected `wait` to be a finite number\");\n }\n let leadingValue;\n let timeout;\n let resolveList = [];\n let currentPromise;\n let trailingArgs;\n const applyFn = (_this, args) => {\n currentPromise = _applyPromised(fn, _this, args);\n currentPromise.finally(() => {\n currentPromise = null;\n if (options.trailing && trailingArgs && !timeout) {\n const promise = applyFn(_this, trailingArgs);\n trailingArgs = null;\n return promise;\n }\n });\n return currentPromise;\n };\n return function(...args) {\n if (currentPromise) {\n if (options.trailing) {\n trailingArgs = args;\n }\n return currentPromise;\n }\n return new Promise((resolve) => {\n const shouldCallNow = !timeout && options.leading;\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n const promise = options.leading ? leadingValue : applyFn(this, args);\n for (const _resolve of resolveList) {\n _resolve(promise);\n }\n resolveList = [];\n }, wait);\n if (shouldCallNow) {\n leadingValue = applyFn(this, args);\n resolve(leadingValue);\n } else {\n resolveList.push(resolve);\n }\n });\n };\n}\nasync function _applyPromised(fn, _this, args) {\n return await fn.apply(_this, args);\n}\n\nexport { debounce };\n",
54
- "import type { Fn, Nullable } from '@stacksjs/types'\n\n/**\n * Call every function in an array\n */\nexport function batchInvoke(functions: Nullable<Fn>[]): void {\n functions.forEach(fn => fn?.())\n}\n\n// /**\n// * Call the function\n// */\n// export function invoke(fn: Fn) {\n// return fn()\n// }\n\n/**\n * Pass the value through the callback, and return the value\n *\n * @example\n * ```\n * function createUser(name: string): User {\n * return tap(new User, user => {\n * user.name = name\n * })\n * }\n * ```\n */\nexport function tap<T>(value: T, callback: (value: T) => void): T {\n callback(value)\n return value\n}\n",
55
- "/**\n * Type guard to filter out null-ish values\n *\n * @category Guards\n * @example array.filter(notNullish)\n */\nexport function notNullish<T>(v: T | null | undefined): v is NonNullable<T> {\n return v != null\n}\n\n/**\n * Type guard to filter out null values\n *\n * @category Guards\n * @example array.filter(noNull)\n */\nexport function noNull<T>(v: T | null): v is Exclude<T, null> {\n return v !== null\n}\n\n/**\n * Type guard to filter out null-ish values\n *\n * @category Guards\n * @example array.filter(notUndefined)\n */\nexport function notUndefined<T>(v: T): v is Exclude<T, undefined> {\n return v !== undefined\n}\n\n/**\n * Type guard to filter out falsy values\n *\n * @category Guards\n * @example array.filter(isTruthy)\n */\nexport function isTruthy<T>(v: T): v is NonNullable<T> {\n return Boolean(v)\n}\n",
56
- "export const clamp = (n: number, min: number, max: number): number => Math.min(max, Math.max(min, n))\n\nexport function rand(min: number, max: number): number {\n min = Math.ceil(min)\n max = Math.floor(max)\n return Math.floor(Math.random() * (max - min + 1)) + min\n}\n\n// not, -> exported as well in ../regex\nexport {\n and,\n createGenericProjection,\n createProjection,\n logicNot,\n logicOr,\n or,\n useAbs,\n useAverage,\n useCeil,\n useClamp,\n useFloor,\n useMath,\n useMax,\n useMin,\n usePrecision,\n useProjection,\n useRound,\n useSum,\n useTrunc,\n} from '@vueuse/math'\n",
57
- "/**\n* @vue/shared v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \"&quot;\";\n break;\n case 38:\n escaped = \"&amp;\";\n break;\n case 39:\n escaped = \"&#39;\";\n break;\n case 60:\n escaped = \"&lt;\";\n break;\n case 62:\n escaped = \"&gt;\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n",
58
- "/**\n* @vue/reactivity v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { hasChanged, extend, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, NOOP, remove } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= ~64;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= ~2;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= ~1;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= ~16;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n const dep = computed.dep;\n computed.flags |= 2;\n if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {\n computed.flags &= ~2;\n return;\n }\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= ~2;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (!dep.subs && dep.computed) {\n dep.computed.flags &= ~4;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n let wrappedFn = fn;\n if (arr !== self) {\n if (!isShallow(self)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly2 = false, isShallow2 = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly2 = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly2 = false) {\n target = target[\"__v_raw\"];\n !isReadonly2 && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value, _isShallow = false) {\n if (!_isShallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value, _isShallow = false) {\n if (!_isShallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly2, isShallow2) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add(value) {\n return add.call(this, value, true);\n },\n set(key, value) {\n return set.call(this, key, value, true);\n },\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n oldValue = newValue;\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n",
59
- "/**\n* @vue/runtime-core v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, shallowReadArray, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, EMPTY_OBJ, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, isGloballyAllowed, NO, hyphenate, EMPTY_ARR, toRawType, makeMap, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= ~1;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= ~1;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= ~1;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2);\n }\n if (isTeleportDeferred(n2.props)) {\n queuePostRenderEffect(mountToTarget, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node = vnode.targetStart;\n while (node && node !== vnode.targetAnchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getInnerChild$1(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n let desc;\n if (!!(process.env.NODE_ENV !== \"production\") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n if (el.textContent !== clientText) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n expectedMap.set(\n `--${getEscapedCssVarName(key, false)}`,\n String(cssVars[key])\n );\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return allowedAttr.split(\",\").includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n hydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : hydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= ~256;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: (props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} should not start with _ which is a reserved prefix for Vue internals.`\n );\n }\n return has;\n }\n});\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction defineOptions(options) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineOptions`);\n }\n}\nfunction defineSlots() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineSlots`);\n }\n return null;\n}\nfunction defineModel() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(\"defineModel\");\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\")) continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction mergeModels(a, b) {\n if (!a || !b) return a || b;\n if (isArray(a) && isArray(b)) return a.concat(b);\n return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components) instance.components = components;\n if (directives) instance.directives = directives;\n if (serverPrefetch) {\n markAsyncBoundary(instance);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n let getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n {\n watch(getter, handler);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n {\n watch(getter, raw.bind(publicThis));\n }\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to) return from;\n if (!from) return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const pluginCleanupFns = [];\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = app._ceVNode || createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n render(\n cloneVNode(vnode),\n rootContainer,\n namespace\n );\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getComponentPublicInstance(vnode.component);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n onUnmount(cleanupFn) {\n if (!!(process.env.NODE_ENV !== \"production\") && typeof cleanupFn !== \"function\") {\n warn$1(\n `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`\n );\n }\n pluginCleanupFns.push(cleanupFn);\n },\n unmount() {\n if (isMounted) {\n callWithAsyncErrorHandling(\n pluginCleanupFns,\n app._instance,\n 16\n );\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\nconst internalObjectProto = {};\nconst createInternalObject = () => Object.create(internalObjectProto);\nconst isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = createInternalObject();\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId) return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance.attrs, \"set\", \"\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n if (instance.ce) {\n instance.ce._setProp(key, value);\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nconst mixinPropsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = __VUE_OPTIONS_API__ && asMixin ? mixinPropsCache : appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys) needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n const propType = prop.type;\n let shouldCast = false;\n let shouldCastTrue = true;\n if (isArray(propType)) {\n for (let index = 0; index < propType.length; ++index) {\n const type = propType[index];\n const typeName = isFunction(type) && type.name;\n if (typeName === \"Boolean\") {\n shouldCast = true;\n break;\n } else if (typeName === \"String\") {\n shouldCastTrue = false;\n }\n }\n } else {\n shouldCast = isFunction(propType) && propType.name === \"Boolean\";\n }\n prop[0 /* shouldCast */] = shouldCast;\n prop[1 /* shouldCastTrue */] = shouldCastTrue;\n if (shouldCast || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null) continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (expectedType === \"null\") {\n valid = value === null;\n } else if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key)) continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && true) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst assignSlots = (slots, children, optimized) => {\n for (const key in children) {\n if (optimized || key !== \"_\") {\n slots[key] = children[key];\n }\n }\n};\nconst initSlots = (instance, children, optimized) => {\n const slots = instance.slots = createInternalObject();\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n assignSlots(slots, children, optimized);\n if (optimized) {\n def(slots, \"_\", type, true);\n }\n } else {\n normalizeObjectSlots(children, slots);\n }\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n }\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n assignSlots(slots, children, optimized);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n assignSlots(slots, children, optimized);\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], namespace, parentComponent);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(el, \"__vnode\", vnode, true);\n def(el, \"__vueParentComponent\", parentComponent, true);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n el.__vnode = n2;\n }\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {\n hostSetElementText(el, \"\");\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n parentComponent\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key)) continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n ));\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance, false, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (instance.asyncDep) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) initialVNode.el = null;\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent, root, type } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(\n el,\n instance.subTree,\n instance,\n parentSuspense,\n null\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode && type.__asyncHydrate) {\n type.__asyncHydrate(\n el,\n instance,\n hydrateSubTree\n );\n } else {\n hydrateSubTree();\n }\n } else {\n if (root.ce) {\n root.ce._injectChildStyle(type);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n if (!instance.isUnmounted) {\n componentUpdateFn();\n }\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n instance.scope.on();\n const effect = instance.effect = new ReactiveEffect(componentUpdateFn);\n instance.scope.off();\n const update = instance.update = effect.run.bind(effect);\n const job = instance.job = effect.runIfDirty.bind(effect);\n job.i = instance;\n job.id = instance.uid;\n effect.scheduler = () => queueJob(job);\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove2 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove2();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove2, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs,\n cacheIndex\n } = vnode;\n if (patchFlag === -2) {\n optimized = false;\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (cacheIndex != null) {\n parentComponent.renderCache[cacheIndex] = void 0;\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #5154\n // when v-once is used inside a block, setBlockTracking(-1) marks the\n // parent block with hasOnce: true\n // so that it doesn't take the fast path during unmount - otherwise\n // components nested in v-once are never unmounted.\n !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, job, subTree, um, m, a } = instance;\n invalidateMount(m);\n invalidateMount(a);\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (job) {\n job.flags |= 8;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n const el = hostNextSibling(vnode.anchor || vnode.el);\n const teleportEnd = el && el[TeleportEndKey];\n return teleportEnd ? hostNextSibling(teleportEnd) : el;\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n container._vnode = vnode;\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs();\n flushPostFlushCbs();\n isFlushing = false;\n }\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(\n internals\n );\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, job }, allowed) {\n if (allowed) {\n effect.flags |= 32;\n job.flags |= 4;\n } else {\n effect.flags &= ~32;\n job.flags &= ~4;\n }\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow && c2.patchFlag !== -2)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\nfunction invalidateMount(hooks) {\n if (hooks) {\n for (let i = 0; i < hooks.length; i++)\n hooks[i].flags |= 8;\n }\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!cb || immediate) {\n baseWatchOptions.once = true;\n } else {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (ssrCleanup) ssrCleanup.push(watchHandle);\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useModel() called without active instance.`);\n return ref();\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][name]) {\n warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n return ref();\n }\n const camelizedName = camelize(name);\n const hyphenatedName = hyphenate(name);\n const modifiers = getModelModifiers(props, name);\n const res = customRef((track, trigger) => {\n let localValue;\n let prevSetValue = EMPTY_OBJ;\n let prevEmittedValue;\n watchSyncEffect(() => {\n const propValue = props[name];\n if (hasChanged(localValue, propValue)) {\n localValue = propValue;\n trigger();\n }\n });\n return {\n get() {\n track();\n return options.get ? options.get(localValue) : localValue;\n },\n set(value) {\n const emittedValue = options.set ? options.set(value) : value;\n if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {\n return;\n }\n const rawProps = i.vnode.props;\n if (!(rawProps && // check if parent has passed v-model\n (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {\n localValue = value;\n trigger();\n }\n i.emit(`update:${name}`, emittedValue);\n if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {\n trigger();\n }\n prevSetValue = value;\n prevEmittedValue = emittedValue;\n }\n };\n });\n res[Symbol.iterator] = () => {\n let i2 = 0;\n return {\n next() {\n if (i2 < 2) {\n return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false };\n } else {\n return { done: true };\n }\n }\n };\n };\n return res;\n}\nconst getModelModifiers = (props, modelName) => {\n return modelName === \"modelValue\" || modelName === \"model-value\" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];\n};\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted) return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(camelize(event))}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modifiers = isModelListener && getModelModifiers(props, event.slice(7));\n if (modifiers) {\n if (modifiers.trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (modifiers.number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n props,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n const prev = setCurrentRenderingInstance(instance);\n let result;\n let fallthroughAttrs;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return shallowReadonly(attrs);\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n null\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs, false, true);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root, null, false, true);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n setTransitionHooks(root, vnode.transition);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n `<Suspense> is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) === container2) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect, optimized2) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized2\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n const suspensible = vnode.props && vnode.props.suspensible;\n return suspensible != null && suspensible !== false;\n}\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n if (value < 0 && currentBlock) {\n currentBlock.hasOnce = true;\n }\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(\n createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n true\n )\n );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(\n createVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n true\n )\n );\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && n1.component) {\n const dirtyInstances = hmrDirtyComponents.get(n2.type);\n if (dirtyInstances && dirtyInstances.has(n1.component)) {\n n1.shapeFlag &= ~256;\n n2.shapeFlag &= ~512;\n return false;\n }\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n );\n};\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetStart: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag = -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props) return null;\n return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {\n const { props, ref, patchFlag, children, transition } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetStart: vnode.targetStart,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n if (transition && cloneTransition) {\n setTransitionHooks(\n cloned,\n transition.clone(cloned)\n );\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (isVNode(child)) {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !isInternalObject(children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n job: null,\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n ids: parent ? parent.ids : [\"\", 0, 0],\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key])) setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1) setters.forEach((set) => set(v));\n else setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false, optimized = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children, optimized);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n resetTracking();\n reset();\n if (isPromise(setupResult)) {\n if (!isAsyncWrapper(instance)) markAsyncBoundary(instance);\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = (i) => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n if (!isSSR && compile && !Component.render) {\n const template = Component.template || resolveMergedOptions(instance).template;\n if (template) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(\n extend(\n {\n isCustomElement,\n delimiters\n },\n compilerOptions\n ),\n componentCompilerOptions\n );\n Component.render = compile(template, finalCompilerOptions);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = Component.render || NOOP;\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n if (__VUE_OPTIONS_API__ && true) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (!compile && Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function: `, Component);\n }\n }\n}\nconst attrsProxyHandlers = !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(target, \"get\", \"\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n} : {\n get(target, key) {\n track(target, \"get\", \"\");\n return target[key];\n }\n};\nfunction getSlotsProxy(instance) {\n return new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n let attrsProxy;\n let slotsProxy;\n return Object.freeze({\n get attrs() {\n return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));\n },\n get slots() {\n return slotsProxy || (slotsProxy = getSlotsProxy(instance));\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n attrs: new Proxy(instance.attrs, attrsProxyHandlers),\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getComponentPublicInstance(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n } else {\n return instance.proxy;\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\n\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n __vue_custom_formatter: true,\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n // avoid debugger accessing value affecting behavior\n formatValue(\"_value\" in obj ? obj._value : obj),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed = extractKeys(instance, \"computed\");\n if (computed) {\n blocks.push(createInstanceBlock(\"computed\", computed));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n ret.memo = memo.slice();\n ret.cacheIndex = index;\n return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\nconst version = \"3.5.11\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode: isVNode,\n normalizeVNode,\n getComponentPublicInstance,\n ensureValidVNode,\n pushWarningContext,\n popWarningContext\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = null;\nconst compatUtils = null;\nconst DeprecationTypes = null;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useId, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n",
60
- "/**\n* @vue/runtime-dom v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { warn, h, BaseTransition, assertNumber, BaseTransitionPropsValidators, getCurrentInstance, onBeforeMount, watchPostEffect, onMounted, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, unref, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, isRuntimeOnly, createRenderer, createHydrationRenderer } from '@vue/runtime-core';\nexport * from '@vue/runtime-core';\nimport { extend, isObject, toNumber, isArray, isString, hyphenate, capitalize, includeBooleanAttr, isSymbol, isSpecialBooleanAttr, isFunction, NOOP, isOn, isModelListener, camelize as camelize$1, isPlainObject, hasOwn, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';\n\nlet policy = void 0;\nconst tt = typeof window !== \"undefined\" && window.trustedTypes;\nif (tt) {\n try {\n policy = /* @__PURE__ */ tt.createPolicy(\"vue\", {\n createHTML: (val) => val\n });\n } catch (e) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Error creating trusted types policy: ${e}`);\n }\n}\nconst unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, namespace, is, props) => {\n const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text) => doc.createTextNode(text),\n createComment: (text) => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, namespace, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling)) break;\n }\n } else {\n templateContainer.innerHTML = unsafeToTrustedHTML(\n namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content\n );\n const template = templateContainer.content;\n if (namespace === \"svg\" || namespace === \"mathml\") {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = Symbol(\"_vtc\");\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = /* @__PURE__ */ extend(\n {},\n BaseTransitionPropsValidators,\n DOMTransitionPropsValidators\n);\nconst decorate$1 = (t) => {\n t.displayName = \"Transition\";\n t.props = TransitionPropsValidators;\n return t;\n};\nconst Transition = /* @__PURE__ */ decorate$1(\n (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots)\n);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const {\n name = \"v\",\n type,\n duration,\n enterFromClass = `${name}-enter-from`,\n enterActiveClass = `${name}-enter-active`,\n enterToClass = `${name}-enter-to`,\n appearFromClass = enterFromClass,\n appearActiveClass = enterActiveClass,\n appearToClass = enterToClass,\n leaveFromClass = `${name}-leave-from`,\n leaveActiveClass = `${name}-leave-active`,\n leaveToClass = `${name}-leave-to`\n } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const {\n onBeforeEnter,\n onEnter,\n onEnterCancelled,\n onLeave,\n onLeaveCancelled,\n onBeforeAppear = onBeforeEnter,\n onAppear = onEnter,\n onAppearCancelled = onEnterCancelled\n } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveActiveClass);\n forceReflow();\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(res, \"<transition> explicit duration\");\n }\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el[vtcKey] = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout != null) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(\n getStyleProperties(`${TRANSITION}Property`).toString()\n );\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n if (s === \"auto\") return 0;\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el[vtcKey];\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\n\nconst vShowOriginalDisplay = Symbol(\"_vod\");\nconst vShowHidden = Symbol(\"_vsh\");\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el[vShowOriginalDisplay] = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue) return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\")) {\n vShow.name = \"show\";\n}\nfunction setDisplay(el, value) {\n el.style.display = value ? el[vShowOriginalDisplay] : \"none\";\n el[vShowHidden] = !value;\n}\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: \"none\" } };\n }\n };\n}\n\nconst CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n return;\n }\n const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {\n Array.from(\n document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)\n ).forEach((node) => setVarsOnNode(node, vars));\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.getCssVars = () => getter(instance.proxy);\n }\n const setVars = () => {\n const vars = getter(instance.proxy);\n if (instance.ce) {\n setVarsOnNode(instance.ce, vars);\n } else {\n setVarsOnVNode(instance.subTree, vars);\n }\n updateTeleports(vars);\n };\n onBeforeMount(() => {\n watchPostEffect(setVars);\n });\n onMounted(() => {\n const ob = new MutationObserver(setVars);\n ob.observe(instance.subTree.el.parentNode, { childList: true });\n onUnmounted(() => ob.disconnect());\n });\n}\nfunction setVarsOnVNode(vnode, vars) {\n if (vnode.shapeFlag & 128) {\n const suspense = vnode.suspense;\n vnode = suspense.activeBranch;\n if (suspense.pendingBranch && !suspense.isHydrating) {\n suspense.effects.push(() => {\n setVarsOnVNode(suspense.activeBranch, vars);\n });\n }\n }\n while (vnode.component) {\n vnode = vnode.component.subTree;\n }\n if (vnode.shapeFlag & 1 && vnode.el) {\n setVarsOnNode(vnode.el, vars);\n } else if (vnode.type === Fragment) {\n vnode.children.forEach((c) => setVarsOnVNode(c, vars));\n } else if (vnode.type === Static) {\n let { el, anchor } = vnode;\n while (el) {\n setVarsOnNode(el, vars);\n if (el === anchor) break;\n el = el.nextSibling;\n }\n }\n}\nfunction setVarsOnNode(el, vars) {\n if (el.nodeType === 1) {\n const style = el.style;\n let cssText = \"\";\n for (const key in vars) {\n style.setProperty(`--${key}`, vars[key]);\n cssText += `--${key}: ${vars[key]};`;\n }\n style[CSS_VAR_TEXT] = cssText;\n }\n}\n\nconst displayRE = /(^|;)\\s*display\\s*:/;\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = isString(next);\n let hasControlledDisplay = false;\n if (next && !isCssString) {\n if (prev) {\n if (!isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n } else {\n for (const prevStyle of prev.split(\";\")) {\n const key = prevStyle.slice(0, prevStyle.indexOf(\":\")).trim();\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n }\n for (const key in next) {\n if (key === \"display\") {\n hasControlledDisplay = true;\n }\n setStyle(style, key, next[key]);\n }\n } else {\n if (isCssString) {\n if (prev !== next) {\n const cssVarText = style[CSS_VAR_TEXT];\n if (cssVarText) {\n next += \";\" + cssVarText;\n }\n style.cssText = next;\n hasControlledDisplay = displayRE.test(next);\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n }\n if (vShowOriginalDisplay in el) {\n el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : \"\";\n if (el[vShowHidden]) {\n style.display = \"none\";\n }\n }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null) val = \"\";\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (semicolonRE.test(val)) {\n warn(\n `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n );\n }\n }\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(\n hyphenate(prefixed),\n val.replace(importantRE, \"\"),\n \"important\"\n );\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(\n key,\n isBoolean ? \"\" : isSymbol(value) ? String(value) : value\n );\n }\n }\n}\n\nfunction patchDOMProp(el, key, value, parentComponent) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (value != null) {\n el[key] = key === \"innerHTML\" ? unsafeToTrustedHTML(value) : value;\n }\n return;\n }\n const tag = el.tagName;\n if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n !tag.includes(\"-\")) {\n const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") || \"\" : el.value;\n const newValue = value == null ? (\n // #11647: value should be set as empty string for null and undefined,\n // but <input type=\"checkbox\"> should be set as 'on'.\n el.type === \"checkbox\" ? \"on\" : \"\"\n ) : String(value);\n if (oldValue !== newValue || !(\"_value\" in el)) {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n el._value = value;\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n if (!!(process.env.NODE_ENV !== \"production\") && !needRemove) {\n warn(\n `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n e\n );\n }\n }\n needRemove && el.removeAttribute(key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nconst veiKey = Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n const invokers = el[veiKey] || (el[veiKey] = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(\n !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue,\n instance\n );\n addEventListener(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === \":\" ? name.slice(3) : hyphenate(name.slice(2));\n return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n if (!e._vts) {\n e._vts = Date.now();\n } else if (e._vts <= invoker.attached) {\n return;\n }\n callWithAsyncErrorHandling(\n patchStopImmediatePropagation(e, invoker.value),\n instance,\n 5,\n [e]\n );\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction sanitizeEventValue(value, propName) {\n if (isFunction(value) || isArray(value)) {\n return value;\n }\n warn(\n `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`\n );\n return NOOP;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map(\n (fn) => (e2) => !e2._stopped && fn && fn(e2)\n );\n } else {\n return value;\n }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {\n const isSVG = namespace === \"svg\";\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue);\n if (!el.tagName.includes(\"-\") && (key === \"value\" || key === \"checked\" || key === \"selected\")) {\n patchAttr(el, key, nextValue, isSVG, parentComponent, key !== \"value\");\n }\n } else if (\n // #11081 force set props for possible async custom element\n el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue))\n ) {\n patchDOMProp(el, camelize$1(key), nextValue);\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && isNativeOn(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (key === \"width\" || key === \"height\") {\n const tag = el.tagName;\n if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n return false;\n }\n }\n if (isNativeOn(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\n\nconst REMOVAL = {};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, extraOptions, _createApp) {\n const Comp = defineComponent(options, extraOptions);\n if (isPlainObject(Comp)) extend(Comp, extraOptions);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, _createApp);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\n/*! #__NO_SIDE_EFFECTS__ */\nconst defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {\n return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);\n};\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, _createApp = createApp) {\n super();\n this._def = _def;\n this._props = _props;\n this._createApp = _createApp;\n this._isVueCE = true;\n /**\n * @internal\n */\n this._instance = null;\n /**\n * @internal\n */\n this._app = null;\n /**\n * @internal\n */\n this._nonce = this._def.nonce;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n this._styleChildren = /* @__PURE__ */ new WeakSet();\n this._ob = null;\n if (this.shadowRoot && _createApp !== createApp) {\n this._root = this.shadowRoot;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && this.shadowRoot) {\n warn(\n `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n );\n }\n if (_def.shadowRoot !== false) {\n this.attachShadow({ mode: \"open\" });\n this._root = this.shadowRoot;\n } else {\n this._root = this;\n }\n }\n if (!this._def.__asyncLoader) {\n this._resolveProps(this._def);\n }\n }\n connectedCallback() {\n if (!this.isConnected) return;\n if (!this.shadowRoot) {\n this._parseSlots();\n }\n this._connected = true;\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n this._parent = parent;\n break;\n }\n }\n if (!this._instance) {\n if (this._resolved) {\n this._setParent();\n this._update();\n } else {\n if (parent && parent._pendingResolve) {\n this._pendingResolve = parent._pendingResolve.then(() => {\n this._pendingResolve = void 0;\n this._resolveDef();\n });\n } else {\n this._resolveDef();\n }\n }\n }\n }\n _setParent(parent = this._parent) {\n if (parent) {\n this._instance.parent = parent._instance;\n this._instance.provides = parent._instance.provides;\n }\n }\n disconnectedCallback() {\n this._connected = false;\n nextTick(() => {\n if (!this._connected) {\n if (this._ob) {\n this._ob.disconnect();\n this._ob = null;\n }\n this._app && this._app.unmount();\n if (this._instance) this._instance.ce = void 0;\n this._app = this._instance = null;\n }\n });\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n if (this._pendingResolve) {\n return;\n }\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n this._ob = new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n });\n this._ob.observe(this, { attributes: true });\n const resolve = (def, isAsync = false) => {\n this._resolved = true;\n this._pendingResolve = void 0;\n const { props, styles } = def;\n let numberProps;\n if (props && !isArray(props)) {\n for (const key in props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n if (key in this._props) {\n this._props[key] = toNumber(this._props[key]);\n }\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize$1(key)] = true;\n }\n }\n }\n this._numberProps = numberProps;\n if (isAsync) {\n this._resolveProps(def);\n }\n if (this.shadowRoot) {\n this._applyStyles(styles);\n } else if (!!(process.env.NODE_ENV !== \"production\") && styles) {\n warn(\n \"Custom element style injection is not supported when using shadowRoot: false\"\n );\n }\n this._mount(def);\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n this._pendingResolve = asyncDef().then(\n (def) => resolve(this._def = def, true)\n );\n } else {\n resolve(this._def);\n }\n }\n _mount(def) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) && !def.name) {\n def.name = \"VueElement\";\n }\n this._app = this._createApp(def);\n if (def.configureApp) {\n def.configureApp(this._app);\n }\n this._app._ceVNode = this._createVNode();\n this._app.mount(this._root);\n const exposed = this._instance && this._instance.exposed;\n if (!exposed) return;\n for (const key in exposed) {\n if (!hasOwn(this, key)) {\n Object.defineProperty(this, key, {\n // unwrap ref to be consistent with public instance behavior\n get: () => unref(exposed[key])\n });\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`Exposed property \"${key}\" already exists on custom element.`);\n }\n }\n }\n _resolveProps(def) {\n const { props } = def;\n const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n this._setProp(key, this[key]);\n }\n }\n for (const key of declaredPropKeys.map(camelize$1)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val, true, true);\n }\n });\n }\n }\n _setAttr(key) {\n if (key.startsWith(\"data-v-\")) return;\n const has = this.hasAttribute(key);\n let value = has ? this.getAttribute(key) : REMOVAL;\n const camelKey = camelize$1(key);\n if (has && this._numberProps && this._numberProps[camelKey]) {\n value = toNumber(value);\n }\n this._setProp(camelKey, value, false, true);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = false) {\n if (val !== this._props[key]) {\n if (val === REMOVAL) {\n delete this._props[key];\n } else {\n this._props[key] = val;\n if (key === \"key\" && this._app) {\n this._app._ceVNode.key = val;\n }\n }\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this._root);\n }\n _createVNode() {\n const baseProps = {};\n if (!this.shadowRoot) {\n baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);\n }\n const vnode = createVNode(this._def, extend(baseProps, this._props));\n if (!this._instance) {\n vnode.ce = (instance) => {\n this._instance = instance;\n instance.ce = this;\n instance.isCE = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ceReload = (newStyles) => {\n if (this._styles) {\n this._styles.forEach((s) => this._root.removeChild(s));\n this._styles.length = 0;\n }\n this._applyStyles(newStyles);\n this._instance = null;\n this._update();\n };\n }\n const dispatch = (event, args) => {\n this.dispatchEvent(\n new CustomEvent(\n event,\n isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args }\n )\n );\n };\n instance.emit = (event, ...args) => {\n dispatch(event, args);\n if (hyphenate(event) !== event) {\n dispatch(hyphenate(event), args);\n }\n };\n this._setParent();\n };\n }\n return vnode;\n }\n _applyStyles(styles, owner) {\n if (!styles) return;\n if (owner) {\n if (owner === this._def || this._styleChildren.has(owner)) {\n return;\n }\n this._styleChildren.add(owner);\n }\n const nonce = this._nonce;\n for (let i = styles.length - 1; i >= 0; i--) {\n const s = document.createElement(\"style\");\n if (nonce) s.setAttribute(\"nonce\", nonce);\n s.textContent = styles[i];\n this.shadowRoot.prepend(s);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (owner) {\n if (owner.__hmrId) {\n if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();\n let entry = this._childStyles.get(owner.__hmrId);\n if (!entry) {\n this._childStyles.set(owner.__hmrId, entry = []);\n }\n entry.push(s);\n }\n } else {\n (this._styles || (this._styles = [])).push(s);\n }\n }\n }\n }\n /**\n * Only called when shadowRoot is false\n */\n _parseSlots() {\n const slots = this._slots = {};\n let n;\n while (n = this.firstChild) {\n const slotName = n.nodeType === 1 && n.getAttribute(\"slot\") || \"default\";\n (slots[slotName] || (slots[slotName] = [])).push(n);\n this.removeChild(n);\n }\n }\n /**\n * Only called when shadowRoot is false\n */\n _renderSlots() {\n const outlets = (this._teleportTarget || this).querySelectorAll(\"slot\");\n const scopeId = this._instance.type.__scopeId;\n for (let i = 0; i < outlets.length; i++) {\n const o = outlets[i];\n const slotName = o.getAttribute(\"name\") || \"default\";\n const content = this._slots[slotName];\n const parent = o.parentNode;\n if (content) {\n for (const n of content) {\n if (scopeId && n.nodeType === 1) {\n const id = scopeId + \"-s\";\n const walker = document.createTreeWalker(n, 1);\n n.setAttribute(id, \"\");\n let child;\n while (child = walker.nextNode()) {\n child.setAttribute(id, \"\");\n }\n }\n parent.insertBefore(n, o);\n }\n } else {\n while (o.firstChild) parent.insertBefore(o.firstChild, o);\n }\n parent.removeChild(o);\n }\n }\n /**\n * @internal\n */\n _injectChildStyle(comp) {\n this._applyStyles(comp.styles, comp);\n }\n /**\n * @internal\n */\n _removeChildStyle(comp) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this._styleChildren.delete(comp);\n if (this._childStyles && comp.__hmrId) {\n const oldStyles = this._childStyles.get(comp.__hmrId);\n if (oldStyles) {\n oldStyles.forEach((s) => this._root.removeChild(s));\n oldStyles.length = 0;\n }\n }\n }\n }\n}\nfunction useHost(caller) {\n const instance = getCurrentInstance();\n const el = instance && instance.ce;\n if (el) {\n return el;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!instance) {\n warn(\n `${caller || \"useHost\"} called without an active component instance.`\n );\n } else {\n warn(\n `${caller || \"useHost\"} can only be used in components defined via defineCustomElement.`\n );\n }\n }\n return null;\n}\nfunction useShadowRoot() {\n const el = !!(process.env.NODE_ENV !== \"production\") ? useHost(\"useShadowRoot\") : useHost();\n return el && el.shadowRoot;\n}\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = Symbol(\"_moveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nconst decorate = (t) => {\n delete t.props.mode;\n return t;\n};\nconst TransitionGroupImpl = /* @__PURE__ */ decorate({\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(\n prevChildren[0].el,\n instance.vnode.el,\n moveClass\n )) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el[moveCbKey] = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el[moveCbKey] = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = [];\n if (children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.el && child.el instanceof Element) {\n prevChildren.push(child);\n setTransitionHooks(\n child,\n resolveTransitionHooks(\n child,\n cssTransitionProps,\n state,\n instance\n )\n );\n positionMap.set(\n child,\n child.el.getBoundingClientRect()\n );\n }\n }\n }\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") && child.type !== Text) {\n warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n return createVNode(tag, null, children);\n };\n }\n});\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el[moveCbKey]) {\n el[moveCbKey]();\n }\n if (el[enterCbKey]) {\n el[enterCbKey]();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props[\"onUpdate:modelValue\"] || false;\n return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event(\"input\"));\n }\n}\nconst assignKey = Symbol(\"_assign\");\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n if (e.target.composing) return;\n let domValue = el.value;\n if (trim) {\n domValue = domValue.trim();\n }\n if (castToNumber) {\n domValue = looseToNumber(domValue);\n }\n el[assignKey](domValue);\n });\n if (trim) {\n addEventListener(el, \"change\", () => {\n el.value = el.value.trim();\n });\n }\n if (!lazy) {\n addEventListener(el, \"compositionstart\", onCompositionStart);\n addEventListener(el, \"compositionend\", onCompositionEnd);\n addEventListener(el, \"change\", onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? \"\" : value;\n },\n beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (el.composing) return;\n const elValue = (number || el.type === \"number\") && !/^0\\d/.test(el.value) ? looseToNumber(el.value) : el.value;\n const newValue = value == null ? \"\" : value;\n if (elValue === newValue) {\n return;\n }\n if (document.activeElement === el && el.type !== \"range\") {\n if (lazy && value === oldValue) {\n return;\n }\n if (trim && el.value.trim() === newValue) {\n return;\n }\n }\n el.value = newValue;\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el[assignKey];\n if (isArray(modelValue)) {\n const index = looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n } else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n } else if (isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n } else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n } else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value }, vnode) {\n el._modelValue = value;\n let checked;\n if (isArray(value)) {\n checked = looseIndexOf(value, vnode.props.value) > -1;\n } else if (isSet(value)) {\n checked = value.has(vnode.props.value);\n } else {\n checked = looseEqual(value, getCheckboxValue(el, true));\n }\n if (el.checked !== checked) {\n el.checked = checked;\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = looseEqual(value, vnode.props.value);\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n el[assignKey](getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = isSet(value);\n addEventListener(el, \"change\", () => {\n const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n (o) => number ? looseToNumber(getValue(o)) : getValue(o)\n );\n el[assignKey](\n el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n );\n el._assigning = true;\n nextTick(() => {\n el._assigning = false;\n });\n });\n el[assignKey] = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value }) {\n setSelected(el, value);\n },\n beforeUpdate(el, _binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n },\n updated(el, { value }) {\n if (!el._assigning) {\n setSelected(el, value);\n }\n }\n};\nfunction setSelected(el, value) {\n const isMultiple = el.multiple;\n const isArrayValue = isArray(value);\n if (isMultiple && !isArrayValue && !isSet(value)) {\n !!(process.env.NODE_ENV !== \"production\") && warn(\n `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n );\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArrayValue) {\n const optionType = typeof optionValue;\n if (optionType === \"string\" || optionType === \"number\") {\n option.selected = value.some((v) => String(v) === String(optionValue));\n } else {\n option.selected = looseIndexOf(value, optionValue) > -1;\n }\n } else {\n option.selected = value.has(optionValue);\n }\n } else if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) el.selectedIndex = i;\n return;\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\nfunction getValue(el) {\n return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n const key = checked ? \"_trueValue\" : \"_falseValue\";\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"created\");\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"mounted\");\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"updated\");\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case \"SELECT\":\n return vModelSelect;\n case \"TEXTAREA\":\n return vModelText;\n default:\n switch (type) {\n case \"checkbox\":\n return vModelCheckbox;\n case \"radio\":\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(\n el.tagName,\n vnode.props && vnode.props.type\n );\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (isArray(value)) {\n if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n } else if (isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n } else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== \"string\") {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(),\n vnode.props && vnode.props.type\n );\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n const cache = fn._withMods || (fn._withMods = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers)) return;\n }\n return fn(event, ...args);\n });\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n const cache = fn._withKeys || (fn._withKeys = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some(\n (k) => k === eventKey || keyNames[k] === eventKey\n )) {\n return fn(event);\n }\n });\n};\n\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nconst hydrate = (...args) => {\n ensureHydrationRenderer().hydrate(...args);\n};\nconst createApp = (...args) => {\n const app = ensureRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container) return;\n const component = app._component;\n if (!isFunction(component) && !component.render && !component.template) {\n component.template = container.innerHTML;\n }\n if (container.nodeType === 1) {\n container.textContent = \"\";\n }\n const proxy = mount(container, false, resolveRootNamespace(container));\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n return proxy;\n };\n return app;\n};\nconst createSSRApp = (...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, resolveRootNamespace(container));\n }\n };\n return app;\n};\nfunction resolveRootNamespace(container) {\n if (container instanceof SVGElement) {\n return \"svg\";\n }\n if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n return \"mathml\";\n }\n}\nfunction injectNativeTagCheck(app) {\n Object.defineProperty(app.config, \"isNativeTag\", {\n value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n writable: false\n });\n}\nfunction injectCompilerOptionsCheck(app) {\n if (isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, \"isCustomElement\", {\n get() {\n return isCustomElement;\n },\n set() {\n warn(\n `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n );\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n Object.defineProperty(app.config, \"compilerOptions\", {\n get() {\n warn(msg);\n return compilerOptions;\n },\n set() {\n warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (isString(container)) {\n const res = document.querySelector(container);\n if (!!(process.env.NODE_ENV !== \"production\") && !res) {\n warn(\n `Failed to mount app: mount target selector \"${container}\" returned null.`\n );\n }\n return res;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n warn(\n `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n );\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n} ;\n\nexport { Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, useHost, useShadowRoot, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers };\n",
61
- "/**\n* vue v3.5.11\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { initCustomFormatter, warn } from '@vue/runtime-dom';\nexport * from '@vue/runtime-dom';\n\nfunction initDev() {\n {\n initCustomFormatter();\n }\n}\n\nif (!!(process.env.NODE_ENV !== \"production\")) {\n initDev();\n}\nconst compile = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n }\n};\n\nexport { compile };\n",
62
- "import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n",
63
- "import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, inject, provide, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get(v);\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!scope) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n",
64
- "import { toValue, clamp, reactify } from '@vueuse/shared';\nimport { computed, isReadonly, ref } from 'vue-demi';\n\nfunction createGenericProjection(fromDomain, toDomain, projector) {\n return (input) => {\n return computed(() => projector(toValue(input), toValue(fromDomain), toValue(toDomain)));\n };\n}\n\nfunction defaultNumericProjector(input, from, to) {\n return (input - from[0]) / (from[1] - from[0]) * (to[1] - to[0]) + to[0];\n}\nfunction createProjection(fromDomain, toDomain, projector = defaultNumericProjector) {\n return createGenericProjection(fromDomain, toDomain, projector);\n}\n\nfunction logicAnd(...args) {\n return computed(() => args.every((i) => toValue(i)));\n}\n\nfunction logicNot(v) {\n return computed(() => !toValue(v));\n}\n\nfunction logicOr(...args) {\n return computed(() => args.some((i) => toValue(i)));\n}\n\nfunction useAbs(value) {\n return computed(() => Math.abs(toValue(value)));\n}\n\nfunction toValueArgsFlat(args) {\n return args.flatMap((i) => {\n const v = toValue(i);\n if (Array.isArray(v))\n return v.map((i2) => toValue(i2));\n return [v];\n });\n}\n\nfunction useAverage(...args) {\n return computed(() => {\n const array = toValueArgsFlat(args);\n return array.reduce((sum, v) => sum += v, 0) / array.length;\n });\n}\n\nfunction useCeil(value) {\n return computed(() => Math.ceil(toValue(value)));\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useFloor(value) {\n return computed(() => Math.floor(toValue(value)));\n}\n\nfunction useMath(key, ...args) {\n return reactify(Math[key])(...args);\n}\n\nfunction useMax(...args) {\n return computed(() => {\n const array = toValueArgsFlat(args);\n return Math.max(...array);\n });\n}\n\nfunction useMin(...args) {\n return computed(() => {\n const array = toValueArgsFlat(args);\n return Math.min(...array);\n });\n}\n\nfunction accurateMultiply(value, power) {\n const valueStr = value.toString();\n if (value > 0 && valueStr.includes(\".\")) {\n const decimalPlaces = valueStr.split(\".\")[1].length;\n const multiplier = 10 ** decimalPlaces;\n return value * multiplier * power / multiplier;\n } else {\n return value * power;\n }\n}\nfunction usePrecision(value, digits, options) {\n return computed(() => {\n var _a;\n const _value = toValue(value);\n const _digits = toValue(digits);\n const power = 10 ** _digits;\n return Math[((_a = toValue(options)) == null ? void 0 : _a.math) || \"round\"](accurateMultiply(_value, power)) / power;\n });\n}\n\nfunction useProjection(input, fromDomain, toDomain, projector) {\n return createProjection(fromDomain, toDomain, projector)(input);\n}\n\nfunction useRound(value) {\n return computed(() => Math.round(toValue(value)));\n}\n\nfunction useSum(...args) {\n return computed(() => toValueArgsFlat(args).reduce((sum, v) => sum += v, 0));\n}\n\nfunction useTrunc(value) {\n return computed(() => Math.trunc(toValue(value)));\n}\n\nexport { logicAnd as and, createGenericProjection, createProjection, logicAnd, logicNot, logicOr, logicNot as not, logicOr as or, useAbs, useAverage, useCeil, useClamp, useFloor, useMath, useMax, useMin, usePrecision, useProjection, useRound, useSum, useTrunc };\n",
65
- "export interface SingletonPromiseReturn<T> {\n (): Promise<T>\n /**\n * Reset current staled promise.\n * Await it to have proper shutdown.\n */\n reset: () => Promise<void>\n}\n\n// export { peek } from 'bun'\n\n/**\n * Promise with `resolve` and `reject` methods of itself\n */\nexport interface ControlledPromise<T = void> extends Promise<T> {\n resolve: (value: T | PromiseLike<T>) => void\n reject: (reason?: any) => void\n}\n\n/**\n * Create singleton promise function.\n *\n * @category Promise\n */\nexport function createSingletonPromise<T>(fn: () => Promise<T>): SingletonPromiseReturn<T> {\n let _promise: Promise<T> | undefined\n\n function wrapper() {\n if (!_promise)\n _promise = fn()\n return _promise\n }\n\n wrapper.reset = async () => {\n const _prev = _promise\n _promise = undefined\n if (_prev)\n await _prev\n }\n\n return wrapper\n}\n\n/**\n * Create a promise lock.\n *\n * @category Promise\n * @example\n * ```\n * const lock = createPromiseLock()\n *\n * lock.run(async () => {\n * await doSomething()\n * })\n *\n * // in anther context:\n * await lock.wait() // it will wait all tasking finished\n * ```\n */\nexport function createPromiseLock() {\n let currentPromise = Promise.resolve()\n const queue: Promise<any>[] = []\n\n return {\n async run<T = void>(fn: () => Promise<T>): Promise<T> {\n const runTask = async (): Promise<T> => {\n await currentPromise\n return fn()\n }\n\n const taskPromise = runTask()\n queue.push(taskPromise)\n\n currentPromise = taskPromise\n .catch(() => {})\n .finally(() => {\n const index = queue.indexOf(taskPromise)\n if (index > -1)\n queue.splice(index, 1)\n }) as Promise<void>\n\n return taskPromise\n },\n\n async wait(): Promise<void> {\n while (queue.length > 0) {\n await Promise.all(queue)\n }\n },\n\n isWaiting(): boolean {\n return queue.length > 0\n },\n\n clear(): void {\n queue.length = 0\n currentPromise = Promise.resolve()\n },\n }\n}\n\n/**\n * Return a Promise with `resolve` and `reject` methods\n *\n * @category Promise\n * @example\n * ```\n * const promise = createControlledPromise()\n *\n * await promise\n *\n * // in anther context:\n * promise.resolve(data)\n * ```\n */\nexport function createControlledPromise<T>(): ControlledPromise<T> {\n let resolve: any\n let reject: any\n\n const promise = new Promise<T>((_resolve, _reject) => {\n resolve = _resolve\n reject = _reject\n }) as ControlledPromise<T>\n\n promise.resolve = resolve\n\n promise.reject = reject\n return promise\n}\n\n/**\n * Create a promise that will be resolved after `ms` milliseconds.\n */\n// export { sleep, sleepSync } from 'bun'\n",
66
- "const NO_WRAP_RE = /^(\\(.*\\)|\\\\?.)$/;\nfunction wrap(s) {\n const v = s.toString();\n return NO_WRAP_RE.test(v) ? v : `(?:${v})`;\n}\n\nconst GROUPED_AS_REPLACE_RE = /^(?:\\(\\?:(.+)\\)|(\\(?.+\\)?))$/;\nconst GROUPED_REPLACE_RE = /^(?:\\(\\?:(.+)\\)([?+*]|{[\\d,]+})?|(.+))$/;\nfunction createInput(s) {\n const groupedAsFn = (key) => createInput(`(?<${key}>${`${s}`.replace(GROUPED_AS_REPLACE_RE, \"$1$2\")})`);\n return {\n toString: () => s.toString(),\n and: Object.assign((...inputs) => createInput(`${s}${exactly(...inputs)}`), {\n referenceTo: (groupName) => createInput(`${s}\\\\k<${groupName}>`)\n }),\n or: (...inputs) => createInput(`(?:${s}|${exactly(...inputs)})`),\n after: (...input) => createInput(`(?<=${exactly(...input)})${s}`),\n before: (...input) => createInput(`${s}(?=${exactly(...input)})`),\n notAfter: (...input) => createInput(`(?<!${exactly(...input)})${s}`),\n notBefore: (...input) => createInput(`${s}(?!${exactly(...input)})`),\n times: Object.assign((number) => createInput(`${wrap(s)}{${number}}`), {\n any: () => createInput(`${wrap(s)}*`),\n atLeast: (min) => createInput(`${wrap(s)}{${min},}`),\n atMost: (max) => createInput(`${wrap(s)}{0,${max}}`),\n between: (min, max) => createInput(`${wrap(s)}{${min},${max}}`)\n }),\n optionally: () => createInput(`${wrap(s)}?`),\n as: groupedAsFn,\n groupedAs: groupedAsFn,\n grouped: () => createInput(`${s}`.replace(GROUPED_REPLACE_RE, \"($1$3)$2\")),\n at: {\n lineStart: () => createInput(`^${s}`),\n lineEnd: () => createInput(`${s}$`)\n }\n };\n}\n\nconst ESCAPE_REPLACE_RE = /[.*+?^${}()|[\\]\\\\/]/g;\nfunction charIn(chars) {\n return createInput(`[${chars.replace(/[-\\\\^\\]]/g, \"\\\\$&\")}]`);\n}\nfunction charNotIn(chars) {\n return createInput(`[^${chars.replace(/[-\\\\^\\]]/g, \"\\\\$&\")}]`);\n}\nfunction anyOf(...inputs) {\n return createInput(`(?:${inputs.map((a) => exactly(a)).join(\"|\")})`);\n}\nconst char = createInput(\".\");\nconst word = createInput(\"\\\\b\\\\w+\\\\b\");\nconst wordChar = createInput(\"\\\\w\");\nconst wordBoundary = createInput(\"\\\\b\");\nconst digit = createInput(\"\\\\d\");\nconst whitespace = createInput(\"\\\\s\");\nconst letter = Object.assign(createInput(\"[a-zA-Z]\"), {\n lowercase: createInput(\"[a-z]\"),\n uppercase: createInput(\"[A-Z]\")\n});\nconst tab = createInput(\"\\\\t\");\nconst linefeed = createInput(\"\\\\n\");\nconst carriageReturn = createInput(\"\\\\r\");\nconst not = {\n word: createInput(\"\\\\W+\"),\n wordChar: createInput(\"\\\\W\"),\n wordBoundary: createInput(\"\\\\B\"),\n digit: createInput(\"\\\\D\"),\n whitespace: createInput(\"\\\\S\"),\n letter: Object.assign(createInput(\"[^a-zA-Z]\"), {\n lowercase: createInput(\"[^a-z]\"),\n uppercase: createInput(\"[^A-Z]\")\n }),\n tab: createInput(\"[^\\\\t]\"),\n linefeed: createInput(\"[^\\\\n]\"),\n carriageReturn: createInput(\"[^\\\\r]\")\n};\nfunction maybe(...inputs) {\n return createInput(`${wrap(exactly(...inputs))}?`);\n}\nfunction exactly(...inputs) {\n return createInput(\n inputs.map((input) => typeof input === \"string\" ? input.replace(ESCAPE_REPLACE_RE, \"\\\\$&\") : input).join(\"\")\n );\n}\nfunction oneOrMore(...inputs) {\n return createInput(`${wrap(exactly(...inputs))}+`);\n}\n\nconst withIndices = \"d\";\nconst caseInsensitive = \"i\";\nconst global = \"g\";\nconst multiline = \"m\";\nconst dotAll = \"s\";\nconst unicode = \"u\";\nconst sticky = \"y\";\n\nexport { charIn as a, charNotIn as b, caseInsensitive as c, dotAll as d, exactly as e, anyOf as f, global as g, char as h, word as i, wordChar as j, wordBoundary as k, digit as l, multiline as m, whitespace as n, letter as o, linefeed as p, carriageReturn as q, not as r, sticky as s, tab as t, unicode as u, maybe as v, withIndices as w, oneOrMore as x };\n",
67
- "export type {\n Flag,\n Input,\n MagicRegExp,\n MagicRegExpMatchArray,\n MapToStringCapturedBy,\n StringCapturedBy,\n} from 'magic-regexp'\nexport {\n anyOf,\n carriageReturn,\n caseInsensitive,\n char,\n charIn,\n charNotIn,\n digit,\n dotAll,\n exactly,\n global,\n letter,\n linefeed,\n maybe,\n multiline,\n not,\n oneOrMore,\n sticky,\n tab,\n unicode,\n whitespace,\n withIndices,\n word,\n wordBoundary,\n wordChar,\n} from 'magic-regexp'\n\n// export function caseInsensitive(pattern: string): RegExp {\n// return new RegExp(pattern, 'i')\n// }\n\nexport function createRegExp(pattern: string, options: { flags?: string } = {}): RegExp {\n return new RegExp(pattern, options.flags)\n}\n",
68
- "// eslint-disable-next-line ts/no-unsafe-function-type\nexport function retry(fn: Function, options: any): Promise<any> {\n const { retries = 3, initialDelay = 1000, backoffFactor = 2, jitter = true } = options\n\n return new Promise((resolve, reject) => {\n let attemptCount = 0\n\n const attempt = async () => {\n try {\n resolve(await fn())\n }\n catch (err) {\n if (attemptCount >= retries) {\n reject(err)\n }\n else {\n const delay = calculateDelay(attemptCount, initialDelay, backoffFactor, jitter)\n setTimeout(() => attempt(), delay)\n attemptCount++\n }\n }\n }\n\n attempt()\n })\n}\n\nexport function calculateDelay(\n attemptCount: number,\n initialDelay: number,\n backoffFactor: number,\n jitter?: boolean,\n): number {\n let delay = initialDelay * backoffFactor ** attemptCount\n\n if (jitter) {\n const random = Math.random() // Generates a number between 0 and 1\n const jitterValue = delay * 0.3 // Jitter will be up to 30% of the delay\n delay = delay + jitterValue * (random - 0.5) * 2 // Adjust delay randomly within ±30%\n }\n\n return delay\n}\n",
69
- "export type NonNegativeInteger<T extends number> = number extends T\n ? never\n : `${T}` extends `-${string}` | `${string}.${string}`\n ? never\n : T\n\n/**\n * Pauses execution for a specified number of milliseconds.\n * @param ms The number of milliseconds to pause execution.\n * @returns A promise that resolves after the specified delay.\n */\nexport function sleep(ms: number): Promise<void> {\n if (ms < 0 || !Number.isInteger(ms)) {\n throw new Error('sleep() requires a non-negative integer')\n }\n\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\n/**\n * Pauses execution for a specified number of milliseconds.\n * @param ms The number of milliseconds to pause execution.\n * @returns A promise that resolves after the specified delay.\n */\nexport function wait(ms: number): Promise<void> {\n if (ms < 0 || !Number.isInteger(ms)) {\n throw new Error('wait() requires a non-negative integer')\n }\n\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\n/**\n * Pauses execution for a specified number of milliseconds.\n * @param ms The number of milliseconds to pause execution.\n * @returns A promise that resolves after the specified delay.\n */\nexport function delay(ms: number): Promise<void> {\n if (ms < 0 || !Number.isInteger(ms)) {\n throw new Error('delay() requires a non-negative integer')\n }\n\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\nexport type WaitOptions = number | {\n interval?: number\n timeout?: number\n}\n\n/**\n * Pauses execution until a specified condition is met.\n * @param condition The condition to wait for.\n * @param interval The interval at which to check the condition, in milliseconds. Defaults to 1000.\n * @returns A promise that resolves when the condition is met.\n */\nexport function waitUntil(condition: () => boolean, options: WaitOptions = {}): Promise<void> {\n return new Promise((resolve) => {\n const { interval, timeout } = normalizeOptions(options)\n\n // Immediately resolve if the condition is initially true\n if (condition()) {\n resolve()\n return\n }\n\n const check = () => {\n if (condition()) {\n resolve()\n }\n else {\n setTimeout(check, interval)\n }\n }\n\n if (timeout) {\n setTimeout(resolve, timeout)\n }\n\n check()\n })\n}\n\nfunction normalizeOptions(options: WaitOptions): { interval: number, timeout: number } {\n if (typeof options === 'number') {\n return { interval: 100, timeout: options }\n }\n return {\n interval: options.interval ?? 100,\n timeout: options.timeout ?? 0,\n }\n}\n\n/**\n * Pauses execution while a specified condition is met.\n * @param condition The condition to wait while.\n * @param interval The interval at which to check the condition, in milliseconds. Defaults to 1000.\n * @returns A promise that resolves when the condition is no longer met.\n */\nexport function waitWhile(condition: () => boolean, options: WaitOptions = {}): Promise<void> {\n return new Promise((resolve) => {\n const { interval = 100, timeout = 0 } = options\n\n // Immediately resolve if the condition is initially false\n if (!condition()) {\n resolve()\n return\n }\n\n const check = () => {\n if (!condition()) {\n resolve()\n }\n else {\n setTimeout(check, interval)\n }\n }\n\n if (timeout) {\n setTimeout(resolve, timeout)\n }\n\n check()\n })\n}\n",
70
- "/**\n * Throttle a function.\n *\n * @param {Function} fn - The function to throttle.\n * @param {number} [wait] - The time to wait between function calls.\n * @returns {Function} - A new function that throttles the calls to the original function.\n *\n * @example\n * ```ts\n * // logs window dimensions at most every 250ms\n * window.addEventListener(\n * \"resize\",\n * throttle(function (evt) {\n * console.log(window.innerWidth)\n * console.log(window.innerHeight)\n * }, 250)\n * )\n * ```\n */\n// eslint-disable-next-line ts/no-unsafe-function-type\nexport function throttle(fn: Function, wait = 300) {\n let inThrottle: boolean\n let lastFn: ReturnType<typeof setTimeout>\n let lastTime: number\n\n return function (this: unknown, ...args: any[]): void {\n if (!inThrottle) {\n fn.apply(this, args)\n\n lastTime = Date.now()\n inThrottle = true\n }\n else {\n clearTimeout(lastFn)\n\n lastFn = setTimeout(\n () => {\n if (Date.now() - lastTime >= wait) {\n fn.apply(this, args) // Use 'this' directly\n lastTime = Date.now()\n }\n },\n Math.max(wait - (Date.now() - lastTime), 0),\n )\n }\n }\n}\n",
71
- "import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, notNullish, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, computedWithControl, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, tryOnUnmounted, clamp, syncRef, objectPick, watchWithFilter, tryOnBeforeUnmount, identity, isDef, whenever, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, isVue2, readonly, reactive, toRaw, nextTick, markRaw, unref, getCurrentScope, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return toValue(ignore).some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n let isProcessingClick = false;\n const cleanup = [\n useEventListener(window, \"click\", (event) => {\n if (!isProcessingClick) {\n isProcessingClick = true;\n setTimeout(() => {\n isProcessingClick = false;\n }, 0);\n listener(event);\n }\n }, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n let startTimestamp;\n let hasLongPressed = false;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n startTimestamp = void 0;\n hasLongPressed = false;\n }\n function onRelease(ev) {\n var _a2, _b2, _c;\n const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n clear();\n if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n return;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - _posStart.x;\n const dy = ev.y - _posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n startTimestamp = ev.timeStamp;\n timeout = setTimeout(\n () => {\n hasLongPressed = true;\n handler(ev);\n },\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n if (!isFocusedElementEditable() && isTypedCharValid(event)) {\n callback(event);\n }\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, isVue2 ? void 0 : instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true,\n triggerOnRemoval = false\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = ref();\n const trigger = () => {\n activeElement.value = getDeepActiveElement();\n };\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n trigger();\n }, true);\n useEventListener(window, \"focus\", trigger, true);\n }\n if (triggerOnRemoval) {\n useMutationObserver(document, (mutations) => {\n mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => {\n if (node === activeElement.value)\n trigger();\n });\n }, {\n childList: true,\n subtree: true\n });\n }\n trigger();\n return activeElement;\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp;\n const delta = timestamp - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp;\n fn({ delta, timestamp });\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n if (!animate.value)\n update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n if (el)\n update();\n });\n watch(() => keyframes, (value) => {\n if (animate.value)\n update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => update(true), false);\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n if (!animate.value)\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n useEventListener(animate, \"finish\", () => {\n var _a;\n if (commitStyles)\n (_a = animate.value) == null ? void 0 : _a.commitStyles();\n });\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n if (activeIndex.value === tasks.length - 1)\n onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetifyV2 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904\n};\nconst breakpointsVuetifyV3 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n};\nconst breakpointsVuetify = breakpointsVuetifyV2;\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[toValue(k)]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n const permissionStatus = shallowRef();\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = shallowRef();\n const update = () => {\n var _a, _b;\n state.value = (_b = (_a = permissionStatus.value) == null ? void 0 : _a.state) != null ? _b : \"prompt\";\n };\n useEventListener(permissionStatus, \"change\", update);\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus.value) {\n try {\n permissionStatus.value = await navigator.permissions.query(desc);\n } catch (e) {\n permissionStatus.value = void 0;\n } finally {\n update();\n }\n }\n if (controls)\n return toRaw(permissionStatus.value);\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && isAllowed(permissionWrite.value))\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n function isAllowed(status) {\n return status === \"granted\" || status === \"prompt\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n if (storage instanceof Storage)\n useEventListener(window, \"storage\", update);\n else\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window) {\n const payload = {\n key,\n oldValue,\n newValue,\n storageArea: storage\n };\n window.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, {\n detail: payload\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\n\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n const classesToAdd = /* @__PURE__ */ new Set();\n const classesToRemove = /* @__PURE__ */ new Set();\n let attributeToChange = null;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n classesToAdd.add(v);\n else\n classesToRemove.add(v);\n });\n } else {\n attributeToChange = { key: attribute2, value };\n }\n if (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n style.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n window.document.head.appendChild(style);\n }\n for (const c of classesToAdd) {\n el.classList.add(c);\n }\n for (const c of classesToRemove) {\n el.classList.remove(c);\n }\n if (attributeToChange) {\n el.setAttribute(attributeToChange.key, attributeToChange.value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue, observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window && key) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n (_, old) => {\n if (old[0] && old[1])\n old[0].style.removeProperty(old[1]);\n updateCssVar();\n },\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n const raw_prop = toValue(prop);\n if (((_a = elRef.value) == null ? void 0 : _a.style) && raw_prop) {\n if (val == null)\n elRef.value.style.removeProperty(raw_prop);\n else\n elRef.value.style.setProperty(raw_prop, val);\n }\n }\n );\n return variable;\n}\n\nfunction useCurrentElement(rootComponent) {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev,\n go: set\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n var _a2;\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener(\"ended\", stop));\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target,\n buttons = [0]\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!toValue(buttons).includes(e.button))\n return;\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n var _a, _b;\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isValid = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const multiple = (_a = _options.multiple) != null ? _a : true;\n const preventDefaultForUnhandled = (_b = _options.preventDefaultForUnhandled) != null ? _b : false;\n const getFiles = (event) => {\n var _a2, _b2;\n const list = Array.from((_b2 = (_a2 = event.dataTransfer) == null ? void 0 : _a2.files) != null ? _b2 : []);\n return list.length === 0 ? null : multiple ? list : [list[0]];\n };\n const checkDataTypes = (types) => {\n if (_options.dataTypes) {\n const dataTypes = unref(_options.dataTypes);\n return typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n }\n return true;\n };\n const checkValidity = (event) => {\n var _a2, _b2;\n const items = Array.from((_b2 = (_a2 = event.dataTransfer) == null ? void 0 : _a2.items) != null ? _b2 : []);\n const types = items.filter((item) => item.kind === \"file\").map((item) => item.type);\n const dataTypesValid = checkDataTypes(types);\n const multipleFilesValid = multiple || items.filter((item) => item.kind === \"file\").length <= 1;\n return dataTypesValid && multipleFilesValid;\n };\n const handleDragEvent = (event, eventType) => {\n var _a2, _b2, _c, _d;\n isValid = checkValidity(event);\n if (!isValid) {\n if (preventDefaultForUnhandled) {\n event.preventDefault();\n }\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = \"none\";\n }\n return;\n }\n event.preventDefault();\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = \"copy\";\n }\n const currentFiles = getFiles(event);\n switch (eventType) {\n case \"enter\":\n counter += 1;\n isOverDropZone.value = true;\n (_a2 = _options.onEnter) == null ? void 0 : _a2.call(_options, null, event);\n break;\n case \"over\":\n (_b2 = _options.onOver) == null ? void 0 : _b2.call(_options, null, event);\n break;\n case \"leave\":\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_c = _options.onLeave) == null ? void 0 : _c.call(_options, null, event);\n break;\n case \"drop\":\n counter = 0;\n isOverDropZone.value = false;\n if (isValid) {\n files.value = currentFiles;\n (_d = _options.onDrop) == null ? void 0 : _d.call(_options, currentFiles, event);\n }\n break;\n }\n };\n useEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n useEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n useEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n useEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const _targets = toValue(target);\n return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n });\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els) {\n if (_el)\n observer.observe(_el, observerOptions);\n }\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true,\n updateTiming = \"sync\"\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function recalculate() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n function update() {\n if (updateTiming === \"sync\")\n recalculate();\n else if (updateTiming === \"next-frame\")\n requestAnimationFrame(() => recalculate());\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const rect = $elem.getBoundingClientRect();\n width.value = rect.width;\n height.value = rect.height;\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction resolveNestedOptions$1(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const urlRef = toRef(url);\n const lastEventId = shallowRef(null);\n let explicitlyClosed = false;\n let retried = 0;\n const {\n withCredentials = false,\n immediate = true\n } = options;\n const close = () => {\n if (isClient && eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n explicitlyClosed = true;\n }\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const es = new EventSource(urlRef.value, { withCredentials });\n status.value = \"CONNECTING\";\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {\n es.close();\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions$1(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n lastEventId.value = e.lastEventId;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n };\n const open = () => {\n if (!isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n tryOnScopeDispose(close);\n return {\n eventSource,\n event,\n data,\n status,\n error,\n open,\n close,\n lastEventId\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n return reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries(headers.entries());\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished: readonly(isFinished),\n isFetching: readonly(isFetching),\n statusCode,\n response,\n error,\n data,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger: changeTrigger } = createEventHook();\n const { on: onCancel, trigger: cancelTrigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n changeTrigger(files.value);\n };\n input.oncancel = () => {\n cancelTrigger();\n };\n }\n const reset = () => {\n files.value = null;\n if (input && input.value) {\n input.value = \"\";\n changeTrigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onCancel,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n await updateFile();\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false, preventScroll = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll });\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nfunction useFocusWithin(target, options = {}) {\n const { window = defaultWindow } = options;\n const targetElement = computed(() => unrefElement(target));\n const _focused = ref(false);\n const focused = computed(() => _focused.value);\n const activeElement = useActiveElement(options);\n if (!window || !activeElement.value) {\n return { focused };\n }\n useEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true);\n useEventListener(targetElement, EVENT_FOCUS_OUT, () => _focused.value = false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n index: gamepad.index,\n connected: gamepad.connected,\n mapping: gamepad.mapping,\n timestamp: gamepad.timestamp,\n vibrationActuator: gamepad.vibrationActuator,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n onGamepadConnected(gamepad);\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c, _d;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n if (x != null)\n internalX.value = scrollContainer.scrollLeft;\n if (y != null)\n internalY.value = scrollContainer.scrollTop;\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n const stop = watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n tryOnUnmounted(stop);\n return {\n isLoading,\n reset() {\n nextTick(() => checkAndLoad());\n }\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n target = toRef(target);\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n if (isPlaying)\n el.play();\n else\n el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el || !(el instanceof Element))\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported: readonly(isSupported),\n isOnline: readonly(isOnline),\n saveData: readonly(saveData),\n offlineAt: readonly(offlineAt),\n onlineAt: readonly(onlineAt),\n downlink: readonly(downlink),\n downlinkMax: readonly(downlinkMax),\n effectiveType: readonly(effectiveType),\n rtt: readonly(rtt),\n type: readonly(type)\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const screenOrientation = reactive(useScreenOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) {\n return \"deviceOrientation\";\n }\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.gamma / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.gamma / 90;\n break;\n case \"portrait-primary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-secondary\":\n value = orientation.beta / 90;\n break;\n default:\n value = -orientation.beta / 90;\n }\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.beta / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-primary\":\n value = orientation.gamma / 90;\n break;\n case \"portrait-secondary\":\n value = -orientation.gamma / 90;\n break;\n default:\n value = orientation.gamma / 90;\n }\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock();\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n if (isIOS)\n stopTouchMoveListener == null ? void 0 : stopTouchMoveListener();\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n maxAlternatives = 1,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.maxAlternatives = maxAlternatives;\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const currentResult = event.results[event.resultIndex];\n const { transcript } = currentResult[0];\n isFinal.value = currentResult.isFinal;\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n if (utterance)\n synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorageAsync\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n var _a;\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : \"height\";\n const textareaScrollHeight = ref(1);\n const textareaOldWidth = ref(0);\n function triggerResize() {\n var _a2;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style[styleProp] = \"1px\";\n textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;\n const _styleTarget = toValue(options == null ? void 0 : options.styleTarget);\n if (_styleTarget)\n _styleTarget.style[styleProp] = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style[styleProp] = height;\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n watch(textareaScrollHeight, () => {\n var _a2;\n return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options);\n });\n useResizeObserver(textarea, ([{ contentRect }]) => {\n if (textareaOldWidth.value === contentRect.width)\n return;\n textareaOldWidth.value = contentRect.width;\n triggerResize();\n });\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n stop();\n });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n watch([size.width, size.height, list, containerRef], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n const requestedType = ref(false);\n const sentinel = shallowRef(null);\n const documentVisibility = useDocumentVisibility({ document });\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = computed(() => !!sentinel.value && documentVisibility.value === \"visible\");\n if (isSupported.value) {\n useEventListener(sentinel, \"release\", () => {\n var _a, _b;\n requestedType.value = (_b = (_a = sentinel.value) == null ? void 0 : _a.type) != null ? _b : false;\n });\n whenever(\n () => documentVisibility.value === \"visible\" && (document == null ? void 0 : document.visibilityState) === \"visible\" && requestedType.value,\n (type) => {\n requestedType.value = false;\n forceRequest(type);\n }\n );\n }\n async function forceRequest(type) {\n var _a;\n await ((_a = sentinel.value) == null ? void 0 : _a.release());\n sentinel.value = isSupported.value ? await navigator.wakeLock.request(type) : null;\n }\n async function request(type) {\n if (documentVisibility.value === \"visible\")\n await forceRequest(type);\n else\n requestedType.value = type;\n }\n async function release() {\n requestedType.value = false;\n const s = sentinel.value;\n sentinel.value = null;\n await (s == null ? void 0 : s.release());\n }\n return {\n sentinel,\n isSupported,\n isActive,\n request,\n forceRequest,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => {\n if (!window || !(\"Notification\" in window))\n return false;\n try {\n new Notification(\"\");\n } catch (e) {\n return false;\n }\n return true;\n });\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n wsRef.value = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n retried = 0;\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect && ws === wsRef.value) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n if (typeof retries === \"number\" && (retries < 0 || retried < retries)) {\n retried += 1;\n setTimeout(_init, delay);\n } else if (typeof retries === \"function\" && retries()) {\n setTimeout(_init, delay);\n } else {\n onFailed == null ? void 0 : onFailed();\n }\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE,\n responseMessage = message\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === responseMessage)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n open();\n watch(urlRef, open);\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction depsParser(deps, localDeps) {\n if (deps.length === 0 && localDeps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n const depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n const str = fn.toString();\n if (str.trim().startsWith(\"function\")) {\n return str;\n } else {\n const name = fn.name;\n return `const ${name} = ${str}`;\n }\n }).join(\";\");\n const importString = `importScripts(${depsString});`;\n return `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n localDependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n var _a;\n promise.value = {\n resolve,\n reject\n };\n (_a = worker.value) == null ? void 0 : _a.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true,\n type = \"inner\"\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (type === \"outer\") {\n width.value = window.outerWidth;\n height.value = window.outerHeight;\n } else if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n",
72
- "function asArray$1(value) {\n return Array.isArray(value) ? value : [value];\n}\n\nconst SelfClosingTags = [\"meta\", \"link\", \"base\"];\nconst TagsWithInnerContent = [\"title\", \"titleTemplate\", \"script\", \"style\", \"noscript\"];\nconst HasElementTags = [\n \"base\",\n \"meta\",\n \"link\",\n \"style\",\n \"script\",\n \"noscript\"\n];\nconst ValidHeadTags = [\n \"title\",\n \"titleTemplate\",\n \"templateParams\",\n \"base\",\n \"htmlAttrs\",\n \"bodyAttrs\",\n \"meta\",\n \"link\",\n \"style\",\n \"script\",\n \"noscript\"\n];\nconst UniqueTags = [\"base\", \"title\", \"titleTemplate\", \"bodyAttrs\", \"htmlAttrs\", \"templateParams\"];\nconst TagConfigKeys = [\"tagPosition\", \"tagPriority\", \"tagDuplicateStrategy\", \"children\", \"innerHTML\", \"textContent\", \"processTemplateParams\"];\nconst IsBrowser = typeof window !== \"undefined\";\nconst composableNames = [\n \"getActiveHead\",\n \"useHead\",\n \"useSeoMeta\",\n \"useHeadSafe\",\n \"useServerHead\",\n \"useServerSeoMeta\",\n \"useServerHeadSafe\"\n];\n\nfunction defineHeadPlugin(plugin) {\n return plugin;\n}\n\nfunction hashCode(s) {\n let h = 9;\n for (let i = 0; i < s.length; )\n h = Math.imul(h ^ s.charCodeAt(i++), 9 ** 9);\n return ((h ^ h >>> 9) + 65536).toString(16).substring(1, 8).toLowerCase();\n}\nfunction hashTag(tag) {\n return tag._h || hashCode(tag._d ? tag._d : `${tag.tag}:${tag.textContent || tag.innerHTML || \"\"}:${Object.entries(tag.props).map(([key, value]) => `${key}:${String(value)}`).join(\",\")}`);\n}\n\nfunction tagDedupeKey(tag, fn) {\n const { props, tag: tagName } = tag;\n if (UniqueTags.includes(tagName))\n return tagName;\n if (tagName === \"link\" && props.rel === \"canonical\")\n return \"canonical\";\n if (props.charset)\n return \"charset\";\n const name = [\"id\"];\n if (tagName === \"meta\")\n name.push(...[\"name\", \"property\", \"http-equiv\"]);\n for (const n of name) {\n if (typeof props[n] !== \"undefined\") {\n const val = String(props[n]);\n if (fn && !fn(val))\n return false;\n return `${tagName}:${n}:${val}`;\n }\n }\n return false;\n}\n\nfunction resolveTitleTemplate(template, title) {\n if (template == null)\n return title || null;\n if (typeof template === \"function\")\n return template(title);\n return template;\n}\n\nfunction asArray(input) {\n return Array.isArray(input) ? input : [input];\n}\nconst InternalKeySymbol = \"_$key\";\nfunction packObject(input, options) {\n const keys = Object.keys(input);\n let [k, v] = keys;\n options = options || {};\n options.key = options.key || k;\n options.value = options.value || v;\n options.resolveKey = options.resolveKey || ((k2) => k2);\n const resolveKey = (index) => {\n const arr = asArray(options[index]);\n return arr.find((k2) => {\n if (typeof k2 === \"string\" && k2.includes(\".\")) {\n return k2;\n }\n return k2 && keys.includes(k2);\n });\n };\n const resolveValue = (k2, input2) => {\n if (k2.includes(\".\")) {\n const paths = k2.split(\".\");\n let val = input2;\n for (const path of paths)\n val = val[path];\n return val;\n }\n return input2[k2];\n };\n k = resolveKey(\"key\") || k;\n v = resolveKey(\"value\") || v;\n const dedupeKeyPrefix = input.key ? `${InternalKeySymbol}${input.key}-` : \"\";\n let keyValue = resolveValue(k, input);\n keyValue = options.resolveKey(keyValue);\n return {\n [`${dedupeKeyPrefix}${keyValue}`]: resolveValue(v, input)\n };\n}\n\nfunction packArray(input, options) {\n const packed = {};\n for (const i of input) {\n const packedObj = packObject(i, options);\n const pKey = Object.keys(packedObj)[0];\n const isDedupeKey = pKey.startsWith(InternalKeySymbol);\n if (!isDedupeKey && packed[pKey]) {\n packed[pKey] = Array.isArray(packed[pKey]) ? packed[pKey] : [packed[pKey]];\n packed[pKey].push(Object.values(packedObj)[0]);\n } else {\n packed[isDedupeKey ? pKey.split(\"-\").slice(1).join(\"-\") || pKey : pKey] = packedObj[pKey];\n }\n }\n return packed;\n}\n\nfunction unpackToArray(input, options) {\n const unpacked = [];\n const kFn = options.resolveKeyData || ((ctx) => ctx.key);\n const vFn = options.resolveValueData || ((ctx) => ctx.value);\n for (const [k, v] of Object.entries(input)) {\n unpacked.push(...(Array.isArray(v) ? v : [v]).map((i) => {\n const ctx = { key: k, value: i };\n const val = vFn(ctx);\n if (typeof val === \"object\")\n return unpackToArray(val, options);\n if (Array.isArray(val))\n return val;\n return {\n [typeof options.key === \"function\" ? options.key(ctx) : options.key]: kFn(ctx),\n [typeof options.value === \"function\" ? options.value(ctx) : options.value]: val\n };\n }).flat());\n }\n return unpacked;\n}\n\nfunction unpackToString(value, options) {\n return Object.entries(value).map(([key, value2]) => {\n if (typeof value2 === \"object\")\n value2 = unpackToString(value2, options);\n if (options.resolve) {\n const resolved = options.resolve({ key, value: value2 });\n if (typeof resolved !== \"undefined\")\n return resolved;\n }\n if (typeof value2 === \"number\")\n value2 = value2.toString();\n if (typeof value2 === \"string\" && options.wrapValue) {\n value2 = value2.replace(new RegExp(options.wrapValue, \"g\"), `\\\\${options.wrapValue}`);\n value2 = `${options.wrapValue}${value2}${options.wrapValue}`;\n }\n return `${key}${options.keyValueSeparator || \"\"}${value2}`;\n }).join(options.entrySeparator || \"\");\n}\n\nconst p = (p2) => ({ keyValue: p2, metaKey: \"property\" });\nconst k = (p2) => ({ keyValue: p2 });\nconst MetaPackingSchema = {\n appleItunesApp: {\n unpack: {\n entrySeparator: \", \",\n resolve({ key, value }) {\n return `${fixKeyCase(key)}=${value}`;\n }\n }\n },\n articleExpirationTime: p(\"article:expiration_time\"),\n articleModifiedTime: p(\"article:modified_time\"),\n articlePublishedTime: p(\"article:published_time\"),\n bookReleaseDate: p(\"book:release_date\"),\n charset: {\n metaKey: \"charset\"\n },\n contentSecurityPolicy: {\n unpack: {\n entrySeparator: \"; \",\n resolve({ key, value }) {\n return `${fixKeyCase(key)} ${value}`;\n }\n },\n metaKey: \"http-equiv\"\n },\n contentType: {\n metaKey: \"http-equiv\"\n },\n defaultStyle: {\n metaKey: \"http-equiv\"\n },\n fbAppId: p(\"fb:app_id\"),\n msapplicationConfig: k(\"msapplication-Config\"),\n msapplicationTileColor: k(\"msapplication-TileColor\"),\n msapplicationTileImage: k(\"msapplication-TileImage\"),\n ogAudioSecureUrl: p(\"og:audio:secure_url\"),\n ogAudioUrl: p(\"og:audio\"),\n ogImageSecureUrl: p(\"og:image:secure_url\"),\n ogImageUrl: p(\"og:image\"),\n ogSiteName: p(\"og:site_name\"),\n ogVideoSecureUrl: p(\"og:video:secure_url\"),\n ogVideoUrl: p(\"og:video\"),\n profileFirstName: p(\"profile:first_name\"),\n profileLastName: p(\"profile:last_name\"),\n profileUsername: p(\"profile:username\"),\n refresh: {\n metaKey: \"http-equiv\",\n unpack: {\n entrySeparator: \";\",\n resolve({ key, value }) {\n if (key === \"seconds\")\n return `${value}`;\n }\n }\n },\n robots: {\n unpack: {\n entrySeparator: \", \",\n resolve({ key, value }) {\n if (typeof value === \"boolean\")\n return `${fixKeyCase(key)}`;\n else\n return `${fixKeyCase(key)}:${value}`;\n }\n }\n },\n xUaCompatible: {\n metaKey: \"http-equiv\"\n }\n};\nconst openGraphNamespaces = [\n \"og\",\n \"book\",\n \"article\",\n \"profile\"\n];\nfunction resolveMetaKeyType(key) {\n const fKey = fixKeyCase(key).split(\":\")[0];\n if (openGraphNamespaces.includes(fKey))\n return \"property\";\n return MetaPackingSchema[key]?.metaKey || \"name\";\n}\nfunction resolveMetaKeyValue(key) {\n return MetaPackingSchema[key]?.keyValue || fixKeyCase(key);\n}\nfunction fixKeyCase(key) {\n const updated = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n const fKey = updated.split(\"-\")[0];\n if (openGraphNamespaces.includes(fKey) || fKey === \"twitter\")\n return key.replace(/([A-Z])/g, \":$1\").toLowerCase();\n return updated;\n}\nfunction changeKeyCasingDeep(input) {\n if (Array.isArray(input)) {\n return input.map((entry) => changeKeyCasingDeep(entry));\n }\n if (typeof input !== \"object\" || Array.isArray(input))\n return input;\n const output = {};\n for (const [key, value] of Object.entries(input))\n output[fixKeyCase(key)] = changeKeyCasingDeep(value);\n return output;\n}\nfunction resolvePackedMetaObjectValue(value, key) {\n const definition = MetaPackingSchema[key];\n if (key === \"refresh\")\n return `${value.seconds};url=${value.url}`;\n return unpackToString(\n changeKeyCasingDeep(value),\n {\n keyValueSeparator: \"=\",\n entrySeparator: \", \",\n resolve({ value: value2, key: key2 }) {\n if (value2 === null)\n return \"\";\n if (typeof value2 === \"boolean\")\n return `${key2}`;\n },\n ...definition?.unpack\n }\n );\n}\nconst ObjectArrayEntries = [\"og:image\", \"og:video\", \"og:audio\", \"twitter:image\"];\nfunction sanitize(input) {\n const out = {};\n Object.entries(input).forEach(([k2, v]) => {\n if (String(v) !== \"false\" && k2)\n out[k2] = v;\n });\n return out;\n}\nfunction handleObjectEntry(key, v) {\n const value = sanitize(v);\n const fKey = fixKeyCase(key);\n const attr = resolveMetaKeyType(fKey);\n if (ObjectArrayEntries.includes(fKey)) {\n const input = {};\n Object.entries(value).forEach(([k2, v2]) => {\n input[`${key}${k2 === \"url\" ? \"\" : `${k2.charAt(0).toUpperCase()}${k2.slice(1)}`}`] = v2;\n });\n return unpackMeta(input).sort((a, b) => (a[attr]?.length || 0) - (b[attr]?.length || 0));\n }\n return [{ [attr]: fKey, ...value }];\n}\nfunction unpackMeta(input) {\n const extras = [];\n const primitives = {};\n Object.entries(input).forEach(([key, value]) => {\n if (!Array.isArray(value)) {\n if (typeof value === \"object\" && value) {\n if (ObjectArrayEntries.includes(fixKeyCase(key))) {\n extras.push(...handleObjectEntry(key, value));\n return;\n }\n primitives[key] = sanitize(value);\n } else {\n primitives[key] = value;\n }\n return;\n }\n value.forEach((v) => {\n extras.push(...typeof v === \"string\" ? unpackMeta({ [key]: v }) : handleObjectEntry(key, v));\n });\n });\n const meta = unpackToArray(primitives, {\n key({ key }) {\n return resolveMetaKeyType(key);\n },\n value({ key }) {\n return key === \"charset\" ? \"charset\" : \"content\";\n },\n resolveKeyData({ key }) {\n return resolveMetaKeyValue(key);\n },\n resolveValueData({ value, key }) {\n if (value === null)\n return \"_null\";\n if (typeof value === \"object\")\n return resolvePackedMetaObjectValue(value, key);\n return typeof value === \"number\" ? value.toString() : value;\n }\n });\n return [...extras, ...meta].map((m) => {\n if (m.content === \"_null\")\n m.content = null;\n return m;\n });\n}\nfunction packMeta(inputs) {\n const mappedPackingSchema = Object.entries(MetaPackingSchema).map(([key, value]) => [key, value.keyValue]);\n return packArray(inputs, {\n key: [\"name\", \"property\", \"httpEquiv\", \"http-equiv\", \"charset\"],\n value: [\"content\", \"charset\"],\n resolveKey(k2) {\n let key = mappedPackingSchema.filter((sk) => sk[1] === k2)?.[0]?.[0] || k2;\n const replacer = (_, letter) => letter?.toUpperCase();\n key = key.replace(/:([a-z])/g, replacer).replace(/-([a-z])/g, replacer);\n return key;\n }\n });\n}\n\nconst WhitelistAttributes = {\n htmlAttrs: [\"id\", \"class\", \"lang\", \"dir\"],\n bodyAttrs: [\"id\", \"class\"],\n meta: [\"id\", \"name\", \"property\", \"charset\", \"content\"],\n noscript: [\"id\", \"textContent\"],\n script: [\"id\", \"type\", \"textContent\"],\n link: [\"id\", \"color\", \"crossorigin\", \"fetchpriority\", \"href\", \"hreflang\", \"imagesrcset\", \"imagesizes\", \"integrity\", \"media\", \"referrerpolicy\", \"rel\", \"sizes\", \"type\"]\n};\nfunction acceptDataAttrs(value) {\n const filtered = {};\n Object.keys(value || {}).filter((a) => a.startsWith(\"data-\")).forEach((a) => {\n filtered[a] = value[a];\n });\n return filtered;\n}\nfunction whitelistSafeInput(input) {\n const filtered = {};\n Object.keys(input).forEach((key) => {\n const tagValue = input[key];\n if (!tagValue)\n return;\n switch (key) {\n case \"title\":\n case \"titleTemplate\":\n case \"templateParams\":\n filtered[key] = tagValue;\n break;\n case \"htmlAttrs\":\n case \"bodyAttrs\":\n filtered[key] = acceptDataAttrs(tagValue);\n WhitelistAttributes[key].forEach((a) => {\n if (tagValue[a])\n filtered[key][a] = tagValue[a];\n });\n break;\n case \"meta\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const safeMeta = acceptDataAttrs(meta);\n WhitelistAttributes.meta.forEach((key2) => {\n if (meta[key2])\n safeMeta[key2] = meta[key2];\n });\n return safeMeta;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n case \"link\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const link = acceptDataAttrs(meta);\n WhitelistAttributes.link.forEach((key2) => {\n const val = meta[key2];\n if (key2 === \"rel\" && [\"stylesheet\", \"canonical\", \"modulepreload\", \"prerender\", \"preload\", \"prefetch\"].includes(val))\n return;\n if (key2 === \"href\") {\n if (val.includes(\"javascript:\") || val.includes(\"data:\"))\n return;\n link[key2] = val;\n } else if (val) {\n link[key2] = val;\n }\n });\n return link;\n }).filter((link) => Object.keys(link).length > 1 && !!link.rel);\n }\n break;\n case \"noscript\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const noscript = acceptDataAttrs(meta);\n WhitelistAttributes.noscript.forEach((key2) => {\n if (meta[key2])\n noscript[key2] = meta[key2];\n });\n return noscript;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n case \"script\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((script) => {\n const safeScript = acceptDataAttrs(script);\n WhitelistAttributes.script.forEach((s) => {\n if (script[s]) {\n if (s === \"textContent\") {\n try {\n const jsonVal = typeof script[s] === \"string\" ? JSON.parse(script[s]) : script[s];\n safeScript[s] = JSON.stringify(jsonVal, null, 0);\n } catch (e) {\n }\n } else {\n safeScript[s] = script[s];\n }\n }\n });\n return safeScript;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n }\n });\n return filtered;\n}\n\nasync function normaliseTag(tagName, input, e) {\n const tag = {\n tag: tagName,\n props: await normaliseProps(\n // explicitly check for an object\n // @ts-expect-error untyped\n typeof input === \"object\" && typeof input !== \"function\" && !(input instanceof Promise) ? { ...input } : { [[\"script\", \"noscript\", \"style\"].includes(tagName) ? \"innerHTML\" : \"textContent\"]: input },\n [\"templateParams\", \"titleTemplate\"].includes(tagName)\n )\n };\n TagConfigKeys.forEach((k) => {\n const val = typeof tag.props[k] !== \"undefined\" ? tag.props[k] : e[k];\n if (typeof val !== \"undefined\") {\n if (![\"innerHTML\", \"textContent\", \"children\"].includes(k) || TagsWithInnerContent.includes(tag.tag)) {\n tag[k === \"children\" ? \"innerHTML\" : k] = val;\n }\n delete tag.props[k];\n }\n });\n if (tag.props.body) {\n tag.tagPosition = \"bodyClose\";\n delete tag.props.body;\n }\n if (tag.tag === \"script\") {\n if (typeof tag.innerHTML === \"object\") {\n tag.innerHTML = JSON.stringify(tag.innerHTML);\n tag.props.type = tag.props.type || \"application/json\";\n }\n }\n return Array.isArray(tag.props.content) ? tag.props.content.map((v) => ({ ...tag, props: { ...tag.props, content: v } })) : tag;\n}\nfunction normaliseStyleClassProps(key, v) {\n const sep = key === \"class\" ? \" \" : \";\";\n if (typeof v === \"object\" && !Array.isArray(v)) {\n v = Object.entries(v).filter(([, v2]) => v2).map(([k, v2]) => key === \"style\" ? `${k}:${v2}` : k);\n }\n return (Array.isArray(v) ? v.join(sep) : v).split(sep).filter((c) => c.trim()).filter(Boolean).join(sep);\n}\nasync function normaliseProps(props, virtual) {\n for (const k of Object.keys(props)) {\n if ([\"class\", \"style\"].includes(k)) {\n props[k] = normaliseStyleClassProps(k, props[k]);\n continue;\n }\n if (props[k] instanceof Promise)\n props[k] = await props[k];\n if (!virtual && !TagConfigKeys.includes(k)) {\n const v = String(props[k]);\n const isDataKey = k.startsWith(\"data-\");\n if (v === \"true\" || v === \"\") {\n props[k] = isDataKey ? \"true\" : true;\n } else if (!props[k]) {\n if (isDataKey && v === \"false\")\n props[k] = \"false\";\n else\n delete props[k];\n }\n }\n }\n return props;\n}\nconst TagEntityBits = 10;\nasync function normaliseEntryTags(e) {\n const tagPromises = [];\n Object.entries(e.resolvedInput).filter(([k, v]) => typeof v !== \"undefined\" && ValidHeadTags.includes(k)).forEach(([k, value]) => {\n const v = asArray$1(value);\n tagPromises.push(...v.map((props) => normaliseTag(k, props, e)).flat());\n });\n return (await Promise.all(tagPromises)).flat().filter(Boolean).map((t, i) => {\n t._e = e._i;\n e.mode && (t._m = e.mode);\n t._p = (e._i << TagEntityBits) + i;\n return t;\n });\n}\n\nconst TAG_WEIGHTS = {\n // tags\n base: -10,\n title: 10\n};\nconst TAG_ALIASES = {\n // relative scores to their default values\n critical: -80,\n high: -10,\n low: 20\n};\nfunction tagWeight(tag) {\n let weight = 100;\n const priority = tag.tagPriority;\n if (typeof priority === \"number\")\n return priority;\n if (tag.tag === \"meta\") {\n if (tag.props[\"http-equiv\"] === \"content-security-policy\")\n weight = -30;\n if (tag.props.charset)\n weight = -20;\n if (tag.props.name === \"viewport\")\n weight = -15;\n } else if (tag.tag === \"link\" && tag.props.rel === \"preconnect\") {\n weight = 20;\n } else if (tag.tag in TAG_WEIGHTS) {\n weight = TAG_WEIGHTS[tag.tag];\n }\n if (typeof priority === \"string\" && priority in TAG_ALIASES) {\n return weight + TAG_ALIASES[priority];\n }\n return weight;\n}\nconst SortModifiers = [{ prefix: \"before:\", offset: -1 }, { prefix: \"after:\", offset: 1 }];\n\nconst NetworkEvents = [\"onload\", \"onerror\", \"onabort\", \"onprogress\", \"onloadstart\"];\nconst ScriptNetworkEvents = [\"onload\", \"onerror\"];\n\nconst sepSub = \"%separator\";\nfunction processTemplateParams(s, p, sep) {\n if (typeof s !== \"string\" || !s.includes(\"%\"))\n return s;\n function sub(token) {\n let val;\n if ([\"s\", \"pageTitle\"].includes(token)) {\n val = p.pageTitle;\n } else if (token.includes(\".\")) {\n val = token.split(\".\").reduce((acc, key) => acc ? acc[key] || void 0 : void 0, p);\n } else {\n val = p[token];\n }\n return typeof val !== \"undefined\" ? (val || \"\").replace(/\"/g, '\\\\\"') : false;\n }\n let decoded = s;\n try {\n decoded = decodeURI(s);\n } catch {\n }\n const tokens = (decoded.match(/%(\\w+\\.+\\w+)|%(\\w+)/g) || []).sort().reverse();\n tokens.forEach((token) => {\n const re = sub(token.slice(1));\n if (typeof re === \"string\") {\n s = s.replace(new RegExp(`\\\\${token}(\\\\W|$)`, \"g\"), (_, args) => `${re}${args}`).trim();\n }\n });\n if (s.includes(sepSub)) {\n if (s.endsWith(sepSub))\n s = s.slice(0, -sepSub.length).trim();\n if (s.startsWith(sepSub))\n s = s.slice(sepSub.length).trim();\n s = s.replace(new RegExp(`\\\\${sepSub}\\\\s*\\\\${sepSub}`, \"g\"), sepSub);\n s = processTemplateParams(s, { separator: sep }, sep);\n }\n return s;\n}\n\nexport { HasElementTags, IsBrowser, NetworkEvents, ScriptNetworkEvents, SelfClosingTags, SortModifiers, TAG_ALIASES, TAG_WEIGHTS, TagConfigKeys, TagEntityBits, TagsWithInnerContent, UniqueTags, ValidHeadTags, asArray$1 as asArray, composableNames, defineHeadPlugin, hashCode, hashTag, normaliseEntryTags, normaliseProps, normaliseStyleClassProps, normaliseTag, packMeta, processTemplateParams, resolveMetaKeyType, resolveMetaKeyValue, resolvePackedMetaObjectValue, resolveTitleTemplate, tagDedupeKey, tagWeight, unpackMeta, whitelistSafeInput };\n",
73
- "import { HasElementTags, hashTag, normaliseProps, tagDedupeKey, defineHeadPlugin } from '@unhead/shared';\n\nasync function renderDOMHead(head, options = {}) {\n const dom = options.document || head.resolvedOptions.document;\n if (!dom || !head.dirty)\n return;\n const beforeRenderCtx = { shouldRender: true, tags: [] };\n await head.hooks.callHook(\"dom:beforeRender\", beforeRenderCtx);\n if (!beforeRenderCtx.shouldRender)\n return;\n const tags = (await head.resolveTags()).map((tag) => ({\n tag,\n id: HasElementTags.includes(tag.tag) ? hashTag(tag) : tag.tag,\n shouldRender: true\n }));\n let state = head._dom;\n if (!state) {\n state = {\n elMap: { htmlAttrs: dom.documentElement, bodyAttrs: dom.body }\n };\n for (const key of [\"body\", \"head\"]) {\n const children = dom[key]?.children;\n const tags2 = [];\n for (const c of [...children].filter((c2) => HasElementTags.includes(c2.tagName.toLowerCase()))) {\n const t = {\n tag: c.tagName.toLowerCase(),\n props: await normaliseProps(\n c.getAttributeNames().reduce((props, name) => ({ ...props, [name]: c.getAttribute(name) }), {})\n ),\n innerHTML: c.innerHTML\n };\n let i = 1;\n let d = tagDedupeKey(t);\n while (d && tags2.find((t2) => t2._d === d))\n d = `${d}:${i++}`;\n t._d = d || void 0;\n tags2.push(t);\n state.elMap[c.getAttribute(\"data-hid\") || hashTag(t)] = c;\n }\n }\n }\n state.pendingSideEffects = { ...state.sideEffects || {} };\n state.sideEffects = {};\n function track(id, scope, fn) {\n const k = `${id}:${scope}`;\n state.sideEffects[k] = fn;\n delete state.pendingSideEffects[k];\n }\n function trackCtx({ id, $el, tag }) {\n const isAttrTag = tag.tag.endsWith(\"Attrs\");\n state.elMap[id] = $el;\n if (!isAttrTag) {\n [\"textContent\", \"innerHTML\"].forEach((k) => {\n tag[k] && tag[k] !== $el[k] && ($el[k] = tag[k]);\n });\n track(id, \"el\", () => {\n state.elMap[id]?.remove();\n delete state.elMap[id];\n });\n }\n for (const [k, value] of Object.entries(tag._eventHandlers || {})) {\n if ($el.getAttribute(`data-${k}`) !== \"\") {\n (tag.tag === \"bodyAttrs\" ? dom.defaultView : $el).addEventListener(k.replace(\"on\", \"\"), value.bind($el));\n $el.setAttribute(`data-${k}`, \"\");\n }\n }\n Object.entries(tag.props).forEach(([k, value]) => {\n const ck = `attr:${k}`;\n if (k === \"class\") {\n for (const c of (value || \"\").split(\" \").filter(Boolean)) {\n isAttrTag && track(id, `${ck}:${c}`, () => $el.classList.remove(c));\n !$el.classList.contains(c) && $el.classList.add(c);\n }\n } else if (k === \"style\") {\n for (const c of (value || \"\").split(\";\").filter(Boolean)) {\n const [k2, ...v] = c.split(\":\").map((s) => s.trim());\n track(id, `${ck}:${c}:${k2}`, () => {\n $el.style.removeProperty(k2);\n });\n $el.style.setProperty(k2, v.join(\":\"));\n }\n } else {\n $el.getAttribute(k) !== value && $el.setAttribute(k, value === true ? \"\" : String(value));\n isAttrTag && track(id, ck, () => $el.removeAttribute(k));\n }\n });\n }\n const pending = [];\n const frag = {\n bodyClose: void 0,\n bodyOpen: void 0,\n head: void 0\n };\n for (const ctx of tags) {\n const { tag, shouldRender, id } = ctx;\n if (!shouldRender)\n continue;\n if (tag.tag === \"title\") {\n dom.title = tag.textContent;\n continue;\n }\n ctx.$el = ctx.$el || state.elMap[id];\n if (ctx.$el)\n trackCtx(ctx);\n else\n HasElementTags.includes(tag.tag) && pending.push(ctx);\n }\n for (const ctx of pending) {\n const pos = ctx.tag.tagPosition || \"head\";\n ctx.$el = dom.createElement(ctx.tag.tag);\n trackCtx(ctx);\n frag[pos] = frag[pos] || dom.createDocumentFragment();\n frag[pos].appendChild(ctx.$el);\n }\n for (const ctx of tags)\n await head.hooks.callHook(\"dom:renderTag\", ctx, dom, track);\n frag.head && dom.head.appendChild(frag.head);\n frag.bodyOpen && dom.body.insertBefore(frag.bodyOpen, dom.body.firstChild);\n frag.bodyClose && dom.body.appendChild(frag.bodyClose);\n Object.values(state.pendingSideEffects).forEach((fn) => fn());\n head._dom = state;\n head.dirty = false;\n await head.hooks.callHook(\"dom:rendered\", { renders: tags });\n}\n\nasync function debouncedRenderDOMHead(head, options = {}) {\n const fn = options.delayFn || ((fn2) => setTimeout(fn2, 10));\n return head._domUpdatePromise = head._domUpdatePromise || new Promise((resolve) => fn(async () => {\n await renderDOMHead(head, options);\n delete head._domUpdatePromise;\n resolve();\n }));\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction DomPlugin(options) {\n return defineHeadPlugin((head) => {\n const initialPayload = head.resolvedOptions.document?.head.querySelector('script[id=\"unhead:payload\"]')?.innerHTML || false;\n initialPayload && head.push(JSON.parse(initialPayload));\n return {\n mode: \"client\",\n hooks: {\n \"entries:updated\": function(head2) {\n debouncedRenderDOMHead(head2, options);\n }\n }\n };\n });\n}\n\nexport { DomPlugin, debouncedRenderDOMHead, renderDOMHead };\n",
74
- "function asArray$1(value) {\n return Array.isArray(value) ? value : [value];\n}\n\nconst SelfClosingTags = /* @__PURE__ */ new Set([\"meta\", \"link\", \"base\"]);\nconst TagsWithInnerContent = /* @__PURE__ */ new Set([\"title\", \"titleTemplate\", \"script\", \"style\", \"noscript\"]);\nconst HasElementTags = /* @__PURE__ */ new Set([\n \"base\",\n \"meta\",\n \"link\",\n \"style\",\n \"script\",\n \"noscript\"\n]);\nconst ValidHeadTags = /* @__PURE__ */ new Set([\n \"title\",\n \"titleTemplate\",\n \"templateParams\",\n \"base\",\n \"htmlAttrs\",\n \"bodyAttrs\",\n \"meta\",\n \"link\",\n \"style\",\n \"script\",\n \"noscript\"\n]);\nconst UniqueTags = /* @__PURE__ */ new Set([\"base\", \"title\", \"titleTemplate\", \"bodyAttrs\", \"htmlAttrs\", \"templateParams\"]);\nconst TagConfigKeys = /* @__PURE__ */ new Set([\"tagPosition\", \"tagPriority\", \"tagDuplicateStrategy\", \"children\", \"innerHTML\", \"textContent\", \"processTemplateParams\"]);\nconst IsBrowser = typeof window !== \"undefined\";\nconst composableNames = [\n \"getActiveHead\",\n \"useHead\",\n \"useSeoMeta\",\n \"useHeadSafe\",\n \"useServerHead\",\n \"useServerSeoMeta\",\n \"useServerHeadSafe\"\n];\n\nfunction defineHeadPlugin(plugin) {\n return plugin;\n}\n\nfunction hashCode(s) {\n let h = 9;\n for (let i = 0; i < s.length; )\n h = Math.imul(h ^ s.charCodeAt(i++), 9 ** 9);\n return ((h ^ h >>> 9) + 65536).toString(16).substring(1, 8).toLowerCase();\n}\nfunction hashTag(tag) {\n if (tag._h) {\n return tag._h;\n }\n if (tag._d) {\n return hashCode(tag._d);\n }\n let content = `${tag.tag}:${tag.textContent || tag.innerHTML || \"\"}:`;\n for (const key in tag.props) {\n content += `${key}:${String(tag.props[key])},`;\n }\n return hashCode(content);\n}\n\nfunction asArray(input) {\n return Array.isArray(input) ? input : [input];\n}\nconst InternalKeySymbol = \"_$key\";\nfunction packObject(input, options) {\n const keys = Object.keys(input);\n let [k, v] = keys;\n options = options || {};\n options.key = options.key || k;\n options.value = options.value || v;\n options.resolveKey = options.resolveKey || ((k2) => k2);\n const resolveKey = (index) => {\n const arr = asArray(options[index]);\n return arr.find((k2) => {\n if (typeof k2 === \"string\" && k2.includes(\".\")) {\n return k2;\n }\n return k2 && keys.includes(k2);\n });\n };\n const resolveValue = (k2, input2) => {\n if (k2.includes(\".\")) {\n const paths = k2.split(\".\");\n let val = input2;\n for (const path of paths)\n val = val[path];\n return val;\n }\n return input2[k2];\n };\n k = resolveKey(\"key\") || k;\n v = resolveKey(\"value\") || v;\n const dedupeKeyPrefix = input.key ? `${InternalKeySymbol}${input.key}-` : \"\";\n let keyValue = resolveValue(k, input);\n keyValue = options.resolveKey(keyValue);\n return {\n [`${dedupeKeyPrefix}${keyValue}`]: resolveValue(v, input)\n };\n}\n\nfunction packArray(input, options) {\n const packed = {};\n for (const i of input) {\n const packedObj = packObject(i, options);\n const pKey = Object.keys(packedObj)[0];\n const isDedupeKey = pKey.startsWith(InternalKeySymbol);\n if (!isDedupeKey && packed[pKey]) {\n packed[pKey] = Array.isArray(packed[pKey]) ? packed[pKey] : [packed[pKey]];\n packed[pKey].push(Object.values(packedObj)[0]);\n } else {\n packed[isDedupeKey ? pKey.split(\"-\").slice(1).join(\"-\") || pKey : pKey] = packedObj[pKey];\n }\n }\n return packed;\n}\n\nfunction unpackToArray(input, options) {\n const unpacked = [];\n const kFn = options.resolveKeyData || ((ctx) => ctx.key);\n const vFn = options.resolveValueData || ((ctx) => ctx.value);\n for (const [k, v] of Object.entries(input)) {\n unpacked.push(...(Array.isArray(v) ? v : [v]).map((i) => {\n const ctx = { key: k, value: i };\n const val = vFn(ctx);\n if (typeof val === \"object\")\n return unpackToArray(val, options);\n if (Array.isArray(val))\n return val;\n return {\n [typeof options.key === \"function\" ? options.key(ctx) : options.key]: kFn(ctx),\n [typeof options.value === \"function\" ? options.value(ctx) : options.value]: val\n };\n }).flat());\n }\n return unpacked;\n}\n\nfunction unpackToString(value, options) {\n return Object.entries(value).map(([key, value2]) => {\n if (typeof value2 === \"object\")\n value2 = unpackToString(value2, options);\n if (options.resolve) {\n const resolved = options.resolve({ key, value: value2 });\n if (typeof resolved !== \"undefined\")\n return resolved;\n }\n if (typeof value2 === \"number\")\n value2 = value2.toString();\n if (typeof value2 === \"string\" && options.wrapValue) {\n value2 = value2.replace(new RegExp(options.wrapValue, \"g\"), `\\\\${options.wrapValue}`);\n value2 = `${options.wrapValue}${value2}${options.wrapValue}`;\n }\n return `${key}${options.keyValueSeparator || \"\"}${value2}`;\n }).join(options.entrySeparator || \"\");\n}\n\nconst p = (p2) => ({ keyValue: p2, metaKey: \"property\" });\nconst k = (p2) => ({ keyValue: p2 });\nconst MetaPackingSchema = {\n appleItunesApp: {\n unpack: {\n entrySeparator: \", \",\n resolve({ key, value }) {\n return `${fixKeyCase(key)}=${value}`;\n }\n }\n },\n articleExpirationTime: p(\"article:expiration_time\"),\n articleModifiedTime: p(\"article:modified_time\"),\n articlePublishedTime: p(\"article:published_time\"),\n bookReleaseDate: p(\"book:release_date\"),\n charset: {\n metaKey: \"charset\"\n },\n contentSecurityPolicy: {\n unpack: {\n entrySeparator: \"; \",\n resolve({ key, value }) {\n return `${fixKeyCase(key)} ${value}`;\n }\n },\n metaKey: \"http-equiv\"\n },\n contentType: {\n metaKey: \"http-equiv\"\n },\n defaultStyle: {\n metaKey: \"http-equiv\"\n },\n fbAppId: p(\"fb:app_id\"),\n msapplicationConfig: k(\"msapplication-Config\"),\n msapplicationTileColor: k(\"msapplication-TileColor\"),\n msapplicationTileImage: k(\"msapplication-TileImage\"),\n ogAudioSecureUrl: p(\"og:audio:secure_url\"),\n ogAudioUrl: p(\"og:audio\"),\n ogImageSecureUrl: p(\"og:image:secure_url\"),\n ogImageUrl: p(\"og:image\"),\n ogSiteName: p(\"og:site_name\"),\n ogVideoSecureUrl: p(\"og:video:secure_url\"),\n ogVideoUrl: p(\"og:video\"),\n profileFirstName: p(\"profile:first_name\"),\n profileLastName: p(\"profile:last_name\"),\n profileUsername: p(\"profile:username\"),\n refresh: {\n metaKey: \"http-equiv\",\n unpack: {\n entrySeparator: \";\",\n resolve({ key, value }) {\n if (key === \"seconds\")\n return `${value}`;\n }\n }\n },\n robots: {\n unpack: {\n entrySeparator: \", \",\n resolve({ key, value }) {\n if (typeof value === \"boolean\")\n return `${fixKeyCase(key)}`;\n else\n return `${fixKeyCase(key)}:${value}`;\n }\n }\n },\n xUaCompatible: {\n metaKey: \"http-equiv\"\n }\n};\nconst openGraphNamespaces = /* @__PURE__ */ new Set([\n \"og\",\n \"book\",\n \"article\",\n \"profile\"\n]);\nfunction resolveMetaKeyType(key) {\n const fKey = fixKeyCase(key);\n const prefixIndex = fKey.indexOf(\":\");\n if (openGraphNamespaces.has(fKey.substring(0, prefixIndex)))\n return \"property\";\n return MetaPackingSchema[key]?.metaKey || \"name\";\n}\nfunction resolveMetaKeyValue(key) {\n return MetaPackingSchema[key]?.keyValue || fixKeyCase(key);\n}\nfunction fixKeyCase(key) {\n const updated = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n const prefixIndex = updated.indexOf(\"-\");\n const fKey = updated.substring(0, prefixIndex);\n if (fKey === \"twitter\" || openGraphNamespaces.has(fKey))\n return key.replace(/([A-Z])/g, \":$1\").toLowerCase();\n return updated;\n}\nfunction changeKeyCasingDeep(input) {\n if (Array.isArray(input)) {\n return input.map((entry) => changeKeyCasingDeep(entry));\n }\n if (typeof input !== \"object\" || Array.isArray(input))\n return input;\n const output = {};\n for (const key in input) {\n if (!Object.prototype.hasOwnProperty.call(input, key)) {\n continue;\n }\n output[fixKeyCase(key)] = changeKeyCasingDeep(input[key]);\n }\n return output;\n}\nfunction resolvePackedMetaObjectValue(value, key) {\n const definition = MetaPackingSchema[key];\n if (key === \"refresh\")\n return `${value.seconds};url=${value.url}`;\n return unpackToString(\n changeKeyCasingDeep(value),\n {\n keyValueSeparator: \"=\",\n entrySeparator: \", \",\n resolve({ value: value2, key: key2 }) {\n if (value2 === null)\n return \"\";\n if (typeof value2 === \"boolean\")\n return `${key2}`;\n },\n ...definition?.unpack\n }\n );\n}\nconst ObjectArrayEntries = /* @__PURE__ */ new Set([\"og:image\", \"og:video\", \"og:audio\", \"twitter:image\"]);\nfunction sanitize(input) {\n const out = {};\n for (const k2 in input) {\n if (!Object.prototype.hasOwnProperty.call(input, k2)) {\n continue;\n }\n const v = input[k2];\n if (String(v) !== \"false\" && k2)\n out[k2] = v;\n }\n return out;\n}\nfunction handleObjectEntry(key, v) {\n const value = sanitize(v);\n const fKey = fixKeyCase(key);\n const attr = resolveMetaKeyType(fKey);\n if (ObjectArrayEntries.has(fKey)) {\n const input = {};\n for (const k2 in value) {\n if (!Object.prototype.hasOwnProperty.call(value, k2)) {\n continue;\n }\n input[`${key}${k2 === \"url\" ? \"\" : `${k2[0].toUpperCase()}${k2.slice(1)}`}`] = value[k2];\n }\n return unpackMeta(input).sort((a, b) => (a[attr]?.length || 0) - (b[attr]?.length || 0));\n }\n return [{ [attr]: fKey, ...value }];\n}\nfunction unpackMeta(input) {\n const extras = [];\n const primitives = {};\n for (const key in input) {\n if (!Object.prototype.hasOwnProperty.call(input, key)) {\n continue;\n }\n const value = input[key];\n if (!Array.isArray(value)) {\n if (typeof value === \"object\" && value) {\n if (ObjectArrayEntries.has(fixKeyCase(key))) {\n extras.push(...handleObjectEntry(key, value));\n continue;\n }\n primitives[key] = sanitize(value);\n } else {\n primitives[key] = value;\n }\n continue;\n }\n for (const v of value) {\n extras.push(...typeof v === \"string\" ? unpackMeta({ [key]: v }) : handleObjectEntry(key, v));\n }\n }\n const meta = unpackToArray(primitives, {\n key({ key }) {\n return resolveMetaKeyType(key);\n },\n value({ key }) {\n return key === \"charset\" ? \"charset\" : \"content\";\n },\n resolveKeyData({ key }) {\n return resolveMetaKeyValue(key);\n },\n resolveValueData({ value, key }) {\n if (value === null)\n return \"_null\";\n if (typeof value === \"object\")\n return resolvePackedMetaObjectValue(value, key);\n return typeof value === \"number\" ? value.toString() : value;\n }\n });\n return [...extras, ...meta].map((m) => {\n if (m.content === \"_null\")\n m.content = null;\n return m;\n });\n}\nfunction packMeta(inputs) {\n const mappedPackingSchema = Object.entries(MetaPackingSchema).map(([key, value]) => [key, value.keyValue]);\n return packArray(inputs, {\n key: [\"name\", \"property\", \"httpEquiv\", \"http-equiv\", \"charset\"],\n value: [\"content\", \"charset\"],\n resolveKey(k2) {\n let key = mappedPackingSchema.filter((sk) => sk[1] === k2)?.[0]?.[0] || k2;\n const replacer = (_, letter) => letter?.toUpperCase();\n key = key.replace(/:([a-z])/g, replacer).replace(/-([a-z])/g, replacer);\n return key;\n }\n });\n}\n\nfunction thenable(val, thenFn) {\n if (val instanceof Promise) {\n return val.then(thenFn);\n }\n return thenFn(val);\n}\n\nfunction normaliseTag(tagName, input, e, normalizedProps) {\n const props = normalizedProps || normaliseProps(\n // explicitly check for an object\n // @ts-expect-error untyped\n typeof input === \"object\" && typeof input !== \"function\" && !(input instanceof Promise) ? { ...input } : { [tagName === \"script\" || tagName === \"noscript\" || tagName === \"style\" ? \"innerHTML\" : \"textContent\"]: input },\n tagName === \"templateParams\" || tagName === \"titleTemplate\"\n );\n if (props instanceof Promise) {\n return props.then((val) => normaliseTag(tagName, input, e, val));\n }\n const tag = {\n tag: tagName,\n props\n };\n for (const k of TagConfigKeys) {\n const val = tag.props[k] !== void 0 ? tag.props[k] : e[k];\n if (val !== void 0) {\n if (!(k === \"innerHTML\" || k === \"textContent\" || k === \"children\") || TagsWithInnerContent.has(tag.tag)) {\n tag[k === \"children\" ? \"innerHTML\" : k] = val;\n }\n delete tag.props[k];\n }\n }\n if (tag.props.body) {\n tag.tagPosition = \"bodyClose\";\n delete tag.props.body;\n }\n if (tag.tag === \"script\") {\n if (typeof tag.innerHTML === \"object\") {\n tag.innerHTML = JSON.stringify(tag.innerHTML);\n tag.props.type = tag.props.type || \"application/json\";\n }\n }\n return Array.isArray(tag.props.content) ? tag.props.content.map((v) => ({ ...tag, props: { ...tag.props, content: v } })) : tag;\n}\nfunction normaliseStyleClassProps(key, v) {\n const sep = key === \"class\" ? \" \" : \";\";\n if (v && typeof v === \"object\" && !Array.isArray(v)) {\n v = Object.entries(v).filter(([, v2]) => v2).map(([k, v2]) => key === \"style\" ? `${k}:${v2}` : k);\n }\n return String(Array.isArray(v) ? v.join(sep) : v)?.split(sep).filter((c) => Boolean(c.trim())).join(sep);\n}\nfunction nestedNormaliseProps(props, virtual, keys, startIndex) {\n for (let i = startIndex; i < keys.length; i += 1) {\n const k = keys[i];\n if (k === \"class\" || k === \"style\") {\n props[k] = normaliseStyleClassProps(k, props[k]);\n continue;\n }\n if (props[k] instanceof Promise) {\n return props[k].then((val) => {\n props[k] = val;\n return nestedNormaliseProps(props, virtual, keys, i);\n });\n }\n if (!virtual && !TagConfigKeys.has(k)) {\n const v = String(props[k]);\n const isDataKey = k.startsWith(\"data-\");\n if (v === \"true\" || v === \"\") {\n props[k] = isDataKey ? \"true\" : true;\n } else if (!props[k]) {\n if (isDataKey && v === \"false\")\n props[k] = \"false\";\n else\n delete props[k];\n }\n }\n }\n}\nfunction normaliseProps(props, virtual = false) {\n const resolvedProps = nestedNormaliseProps(props, virtual, Object.keys(props), 0);\n if (resolvedProps instanceof Promise) {\n return resolvedProps.then(() => props);\n }\n return props;\n}\nconst TagEntityBits = 10;\nfunction nestedNormaliseEntryTags(headTags, tagPromises, startIndex) {\n for (let i = startIndex; i < tagPromises.length; i += 1) {\n const tags = tagPromises[i];\n if (tags instanceof Promise) {\n return tags.then((val) => {\n tagPromises[i] = val;\n return nestedNormaliseEntryTags(headTags, tagPromises, i);\n });\n }\n if (Array.isArray(tags)) {\n headTags.push(...tags);\n } else {\n headTags.push(tags);\n }\n }\n}\nfunction normaliseEntryTags(e) {\n const tagPromises = [];\n const input = e.resolvedInput;\n for (const k in input) {\n if (!Object.prototype.hasOwnProperty.call(input, k)) {\n continue;\n }\n const v = input[k];\n if (v === void 0 || !ValidHeadTags.has(k)) {\n continue;\n }\n if (Array.isArray(v)) {\n for (const props of v) {\n tagPromises.push(normaliseTag(k, props, e));\n }\n continue;\n }\n tagPromises.push(normaliseTag(k, v, e));\n }\n if (tagPromises.length === 0) {\n return [];\n }\n const headTags = [];\n return thenable(nestedNormaliseEntryTags(headTags, tagPromises, 0), () => headTags.map((t, i) => {\n t._e = e._i;\n e.mode && (t._m = e.mode);\n t._p = (e._i << TagEntityBits) + i;\n return t;\n }));\n}\n\nconst WhitelistAttributes = {\n htmlAttrs: [\"id\", \"class\", \"lang\", \"dir\"],\n bodyAttrs: [\"id\", \"class\"],\n meta: [\"id\", \"name\", \"property\", \"charset\", \"content\"],\n noscript: [\"id\", \"textContent\"],\n script: [\"id\", \"type\", \"textContent\"],\n link: [\"id\", \"color\", \"crossorigin\", \"fetchpriority\", \"href\", \"hreflang\", \"imagesrcset\", \"imagesizes\", \"integrity\", \"media\", \"referrerpolicy\", \"rel\", \"sizes\", \"type\"]\n};\nfunction acceptDataAttrs(value) {\n const filtered = {};\n Object.keys(value || {}).filter((a) => a.startsWith(\"data-\")).forEach((a) => {\n filtered[a] = value[a];\n });\n return filtered;\n}\nfunction whitelistSafeInput(input) {\n const filtered = {};\n Object.keys(input).forEach((key) => {\n const tagValue = input[key];\n if (!tagValue)\n return;\n switch (key) {\n case \"title\":\n case \"titleTemplate\":\n case \"templateParams\":\n filtered[key] = tagValue;\n break;\n case \"htmlAttrs\":\n case \"bodyAttrs\":\n filtered[key] = acceptDataAttrs(tagValue);\n WhitelistAttributes[key].forEach((a) => {\n if (tagValue[a])\n filtered[key][a] = tagValue[a];\n });\n break;\n case \"meta\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const safeMeta = acceptDataAttrs(meta);\n WhitelistAttributes.meta.forEach((key2) => {\n if (meta[key2])\n safeMeta[key2] = meta[key2];\n });\n return safeMeta;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n case \"link\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const link = acceptDataAttrs(meta);\n WhitelistAttributes.link.forEach((key2) => {\n const val = meta[key2];\n if (key2 === \"rel\" && (val === \"stylesheet\" || val === \"canonical\" || val === \"modulepreload\" || val === \"prerender\" || val === \"preload\" || val === \"prefetch\"))\n return;\n if (key2 === \"href\") {\n if (val.includes(\"javascript:\") || val.includes(\"data:\"))\n return;\n link[key2] = val;\n } else if (val) {\n link[key2] = val;\n }\n });\n return link;\n }).filter((link) => Object.keys(link).length > 1 && !!link.rel);\n }\n break;\n case \"noscript\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const noscript = acceptDataAttrs(meta);\n WhitelistAttributes.noscript.forEach((key2) => {\n if (meta[key2])\n noscript[key2] = meta[key2];\n });\n return noscript;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n case \"script\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((script) => {\n const safeScript = acceptDataAttrs(script);\n WhitelistAttributes.script.forEach((s) => {\n if (script[s]) {\n if (s === \"textContent\") {\n try {\n const jsonVal = typeof script[s] === \"string\" ? JSON.parse(script[s]) : script[s];\n safeScript[s] = JSON.stringify(jsonVal, null, 0);\n } catch (e) {\n }\n } else {\n safeScript[s] = script[s];\n }\n }\n });\n return safeScript;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n }\n });\n return filtered;\n}\n\nconst NetworkEvents = /* @__PURE__ */ new Set([\"onload\", \"onerror\", \"onabort\", \"onprogress\", \"onloadstart\"]);\nconst ScriptNetworkEvents = /* @__PURE__ */ new Set([\"onload\", \"onerror\"]);\n\nconst TAG_WEIGHTS = {\n // tags\n base: -10,\n title: 10\n};\nconst TAG_ALIASES = {\n // relative scores to their default values\n critical: -80,\n high: -10,\n low: 20\n};\nfunction tagWeight(tag) {\n const priority = tag.tagPriority;\n if (typeof priority === \"number\")\n return priority;\n let weight = 100;\n if (tag.tag === \"meta\") {\n if (tag.props[\"http-equiv\"] === \"content-security-policy\")\n weight = -30;\n else if (tag.props.charset)\n weight = -20;\n else if (tag.props.name === \"viewport\")\n weight = -15;\n } else if (tag.tag === \"link\" && tag.props.rel === \"preconnect\") {\n weight = 20;\n } else if (tag.tag in TAG_WEIGHTS) {\n weight = TAG_WEIGHTS[tag.tag];\n }\n if (priority && priority in TAG_ALIASES) {\n return weight + TAG_ALIASES[priority];\n }\n return weight;\n}\nconst SortModifiers = [{ prefix: \"before:\", offset: -1 }, { prefix: \"after:\", offset: 1 }];\n\nconst allowedMetaProperties = [\"name\", \"property\", \"http-equiv\"];\nfunction tagDedupeKey(tag) {\n const { props, tag: tagName } = tag;\n if (UniqueTags.has(tagName))\n return tagName;\n if (tagName === \"link\" && props.rel === \"canonical\")\n return \"canonical\";\n if (props.charset)\n return \"charset\";\n if (props.id) {\n return `${tagName}:id:${props.id}`;\n }\n for (const n of allowedMetaProperties) {\n if (props[n] !== void 0) {\n return `${tagName}:${n}:${props[n]}`;\n }\n }\n return false;\n}\n\nconst sepSub = \"%separator\";\nfunction sub(p, token) {\n let val;\n if (token === \"s\" || token === \"pageTitle\") {\n val = p.pageTitle;\n } else if (token.includes(\".\")) {\n const dotIndex = token.indexOf(\".\");\n val = p[token.substring(0, dotIndex)]?.[token.substring(dotIndex + 1)];\n } else {\n val = p[token];\n }\n return val !== void 0 ? (val || \"\").replace(/\"/g, '\\\\\"') : void 0;\n}\nconst sepSubRe = new RegExp(`${sepSub}(?:\\\\s*${sepSub})*`, \"g\");\nfunction processTemplateParams(s, p, sep) {\n if (typeof s !== \"string\" || !s.includes(\"%\"))\n return s;\n let decoded = s;\n try {\n decoded = decodeURI(s);\n } catch {\n }\n const tokens = decoded.match(/%\\w+(?:\\.\\w+)?/g);\n if (!tokens) {\n return s;\n }\n const hasSepSub = s.includes(sepSub);\n s = s.replace(/%\\w+(?:\\.\\w+)?/g, (token) => {\n if (token === sepSub || !tokens.includes(token)) {\n return token;\n }\n const re = sub(p, token.slice(1));\n return re !== void 0 ? re : token;\n }).trim();\n if (hasSepSub) {\n if (s.endsWith(sepSub))\n s = s.slice(0, -sepSub.length);\n if (s.startsWith(sepSub))\n s = s.slice(sepSub.length);\n s = s.replace(sepSubRe, sep).trim();\n }\n return s;\n}\n\nfunction resolveTitleTemplate(template, title) {\n if (template == null)\n return title || null;\n if (typeof template === \"function\")\n return template(title);\n return template;\n}\n\nexport { HasElementTags, IsBrowser, NetworkEvents, ScriptNetworkEvents, SelfClosingTags, SortModifiers, TAG_ALIASES, TAG_WEIGHTS, TagConfigKeys, TagEntityBits, TagsWithInnerContent, UniqueTags, ValidHeadTags, asArray$1 as asArray, composableNames, defineHeadPlugin, hashCode, hashTag, normaliseEntryTags, normaliseProps, normaliseStyleClassProps, normaliseTag, packMeta, processTemplateParams, resolveMetaKeyType, resolveMetaKeyValue, resolvePackedMetaObjectValue, resolveTitleTemplate, tagDedupeKey, tagWeight, thenable, unpackMeta, whitelistSafeInput };\n",
75
- "function flatHooks(configHooks, hooks = {}, parentName) {\n for (const key in configHooks) {\n const subHook = configHooks[key];\n const name = parentName ? `${parentName}:${key}` : key;\n if (typeof subHook === \"object\" && subHook !== null) {\n flatHooks(subHook, hooks, name);\n } else if (typeof subHook === \"function\") {\n hooks[name] = subHook;\n }\n }\n return hooks;\n}\nfunction mergeHooks(...hooks) {\n const finalHooks = {};\n for (const hook of hooks) {\n const flatenHook = flatHooks(hook);\n for (const key in flatenHook) {\n if (finalHooks[key]) {\n finalHooks[key].push(flatenHook[key]);\n } else {\n finalHooks[key] = [flatenHook[key]];\n }\n }\n }\n for (const key in finalHooks) {\n if (finalHooks[key].length > 1) {\n const array = finalHooks[key];\n finalHooks[key] = (...arguments_) => serial(array, (function_) => function_(...arguments_));\n } else {\n finalHooks[key] = finalHooks[key][0];\n }\n }\n return finalHooks;\n}\nfunction serial(tasks, function_) {\n return tasks.reduce(\n (promise, task) => promise.then(() => function_(task)),\n Promise.resolve()\n );\n}\nconst defaultTask = { run: (function_) => function_() };\nconst _createTask = () => defaultTask;\nconst createTask = typeof console.createTask !== \"undefined\" ? console.createTask : _createTask;\nfunction serialTaskCaller(hooks, args) {\n const name = args.shift();\n const task = createTask(name);\n return hooks.reduce(\n (promise, hookFunction) => promise.then(() => task.run(() => hookFunction(...args))),\n Promise.resolve()\n );\n}\nfunction parallelTaskCaller(hooks, args) {\n const name = args.shift();\n const task = createTask(name);\n return Promise.all(hooks.map((hook) => task.run(() => hook(...args))));\n}\nfunction serialCaller(hooks, arguments_) {\n return hooks.reduce(\n (promise, hookFunction) => promise.then(() => hookFunction(...arguments_ || [])),\n Promise.resolve()\n );\n}\nfunction parallelCaller(hooks, args) {\n return Promise.all(hooks.map((hook) => hook(...args || [])));\n}\nfunction callEachWith(callbacks, arg0) {\n for (const callback of [...callbacks]) {\n callback(arg0);\n }\n}\n\nclass Hookable {\n constructor() {\n this._hooks = {};\n this._before = void 0;\n this._after = void 0;\n this._deprecatedMessages = void 0;\n this._deprecatedHooks = {};\n this.hook = this.hook.bind(this);\n this.callHook = this.callHook.bind(this);\n this.callHookWith = this.callHookWith.bind(this);\n }\n hook(name, function_, options = {}) {\n if (!name || typeof function_ !== \"function\") {\n return () => {\n };\n }\n const originalName = name;\n let dep;\n while (this._deprecatedHooks[name]) {\n dep = this._deprecatedHooks[name];\n name = dep.to;\n }\n if (dep && !options.allowDeprecated) {\n let message = dep.message;\n if (!message) {\n message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : \"\");\n }\n if (!this._deprecatedMessages) {\n this._deprecatedMessages = /* @__PURE__ */ new Set();\n }\n if (!this._deprecatedMessages.has(message)) {\n console.warn(message);\n this._deprecatedMessages.add(message);\n }\n }\n if (!function_.name) {\n try {\n Object.defineProperty(function_, \"name\", {\n get: () => \"_\" + name.replace(/\\W+/g, \"_\") + \"_hook_cb\",\n configurable: true\n });\n } catch {\n }\n }\n this._hooks[name] = this._hooks[name] || [];\n this._hooks[name].push(function_);\n return () => {\n if (function_) {\n this.removeHook(name, function_);\n function_ = void 0;\n }\n };\n }\n hookOnce(name, function_) {\n let _unreg;\n let _function = (...arguments_) => {\n if (typeof _unreg === \"function\") {\n _unreg();\n }\n _unreg = void 0;\n _function = void 0;\n return function_(...arguments_);\n };\n _unreg = this.hook(name, _function);\n return _unreg;\n }\n removeHook(name, function_) {\n if (this._hooks[name]) {\n const index = this._hooks[name].indexOf(function_);\n if (index !== -1) {\n this._hooks[name].splice(index, 1);\n }\n if (this._hooks[name].length === 0) {\n delete this._hooks[name];\n }\n }\n }\n deprecateHook(name, deprecated) {\n this._deprecatedHooks[name] = typeof deprecated === \"string\" ? { to: deprecated } : deprecated;\n const _hooks = this._hooks[name] || [];\n delete this._hooks[name];\n for (const hook of _hooks) {\n this.hook(name, hook);\n }\n }\n deprecateHooks(deprecatedHooks) {\n Object.assign(this._deprecatedHooks, deprecatedHooks);\n for (const name in deprecatedHooks) {\n this.deprecateHook(name, deprecatedHooks[name]);\n }\n }\n addHooks(configHooks) {\n const hooks = flatHooks(configHooks);\n const removeFns = Object.keys(hooks).map(\n (key) => this.hook(key, hooks[key])\n );\n return () => {\n for (const unreg of removeFns.splice(0, removeFns.length)) {\n unreg();\n }\n };\n }\n removeHooks(configHooks) {\n const hooks = flatHooks(configHooks);\n for (const key in hooks) {\n this.removeHook(key, hooks[key]);\n }\n }\n removeAllHooks() {\n for (const key in this._hooks) {\n delete this._hooks[key];\n }\n }\n callHook(name, ...arguments_) {\n arguments_.unshift(name);\n return this.callHookWith(serialTaskCaller, name, ...arguments_);\n }\n callHookParallel(name, ...arguments_) {\n arguments_.unshift(name);\n return this.callHookWith(parallelTaskCaller, name, ...arguments_);\n }\n callHookWith(caller, name, ...arguments_) {\n const event = this._before || this._after ? { name, args: arguments_, context: {} } : void 0;\n if (this._before) {\n callEachWith(this._before, event);\n }\n const result = caller(\n name in this._hooks ? [...this._hooks[name]] : [],\n arguments_\n );\n if (result instanceof Promise) {\n return result.finally(() => {\n if (this._after && event) {\n callEachWith(this._after, event);\n }\n });\n }\n if (this._after && event) {\n callEachWith(this._after, event);\n }\n return result;\n }\n beforeEach(function_) {\n this._before = this._before || [];\n this._before.push(function_);\n return () => {\n if (this._before !== void 0) {\n const index = this._before.indexOf(function_);\n if (index !== -1) {\n this._before.splice(index, 1);\n }\n }\n };\n }\n afterEach(function_) {\n this._after = this._after || [];\n this._after.push(function_);\n return () => {\n if (this._after !== void 0) {\n const index = this._after.indexOf(function_);\n if (index !== -1) {\n this._after.splice(index, 1);\n }\n }\n };\n }\n}\nfunction createHooks() {\n return new Hookable();\n}\n\nconst isBrowser = typeof window !== \"undefined\";\nfunction createDebugger(hooks, _options = {}) {\n const options = {\n inspect: isBrowser,\n group: isBrowser,\n filter: () => true,\n ..._options\n };\n const _filter = options.filter;\n const filter = typeof _filter === \"string\" ? (name) => name.startsWith(_filter) : _filter;\n const _tag = options.tag ? `[${options.tag}] ` : \"\";\n const logPrefix = (event) => _tag + event.name + \"\".padEnd(event._id, \"\\0\");\n const _idCtr = {};\n const unsubscribeBefore = hooks.beforeEach((event) => {\n if (filter !== void 0 && !filter(event.name)) {\n return;\n }\n _idCtr[event.name] = _idCtr[event.name] || 0;\n event._id = _idCtr[event.name]++;\n console.time(logPrefix(event));\n });\n const unsubscribeAfter = hooks.afterEach((event) => {\n if (filter !== void 0 && !filter(event.name)) {\n return;\n }\n if (options.group) {\n console.groupCollapsed(event.name);\n }\n if (options.inspect) {\n console.timeLog(logPrefix(event), event.args);\n } else {\n console.timeEnd(logPrefix(event));\n }\n if (options.group) {\n console.groupEnd();\n }\n _idCtr[event.name]--;\n });\n return {\n /** Stop debugging and remove listeners */\n close: () => {\n unsubscribeBefore();\n unsubscribeAfter();\n }\n };\n}\n\nexport { Hookable, createDebugger, createHooks, flatHooks, mergeHooks, parallelCaller, serial, serialCaller };\n",
76
- "import { DomPlugin } from '@unhead/dom';\nimport { defineHeadPlugin, tagDedupeKey, hashTag, tagWeight, HasElementTags, NetworkEvents, hashCode, SortModifiers, processTemplateParams, resolveTitleTemplate, IsBrowser, normaliseEntryTags, composableNames, whitelistSafeInput, ScriptNetworkEvents, unpackMeta } from '@unhead/shared';\nexport { composableNames } from '@unhead/shared';\nimport { createHooks } from 'hookable';\n\nconst UsesMergeStrategy = /* @__PURE__ */ new Set([\"templateParams\", \"htmlAttrs\", \"bodyAttrs\"]);\nconst DedupePlugin = defineHeadPlugin({\n hooks: {\n \"tag:normalise\": ({ tag }) => {\n if (tag.props.hid) {\n tag.key = tag.props.hid;\n delete tag.props.hid;\n }\n if (tag.props.vmid) {\n tag.key = tag.props.vmid;\n delete tag.props.vmid;\n }\n if (tag.props.key) {\n tag.key = tag.props.key;\n delete tag.props.key;\n }\n const generatedKey = tagDedupeKey(tag);\n if (generatedKey && !generatedKey.startsWith(\"meta:og:\") && !generatedKey.startsWith(\"meta:twitter:\")) {\n delete tag.key;\n }\n const dedupe = generatedKey || (tag.key ? `${tag.tag}:${tag.key}` : false);\n if (dedupe)\n tag._d = dedupe;\n },\n \"tags:resolve\": (ctx) => {\n const deduping = /* @__PURE__ */ Object.create(null);\n for (const tag of ctx.tags) {\n const dedupeKey = (tag.key ? `${tag.tag}:${tag.key}` : tag._d) || hashTag(tag);\n const dupedTag = deduping[dedupeKey];\n if (dupedTag) {\n let strategy = tag?.tagDuplicateStrategy;\n if (!strategy && UsesMergeStrategy.has(tag.tag))\n strategy = \"merge\";\n if (strategy === \"merge\") {\n const oldProps = dupedTag.props;\n if (oldProps.style && tag.props.style) {\n if (oldProps.style[oldProps.style.length - 1] !== \";\") {\n oldProps.style += \";\";\n }\n tag.props.style = `${oldProps.style} ${tag.props.style}`;\n }\n if (oldProps.class && tag.props.class) {\n tag.props.class = `${oldProps.class} ${tag.props.class}`;\n } else if (oldProps.class) {\n tag.props.class = oldProps.class;\n }\n deduping[dedupeKey].props = {\n ...oldProps,\n ...tag.props\n };\n continue;\n } else if (tag._e === dupedTag._e) {\n dupedTag._duped = dupedTag._duped || [];\n tag._d = `${dupedTag._d}:${dupedTag._duped.length + 1}`;\n dupedTag._duped.push(tag);\n continue;\n } else if (tagWeight(tag) > tagWeight(dupedTag)) {\n continue;\n }\n }\n const hasProps = tag.innerHTML || tag.textContent || Object.keys(tag.props).length !== 0;\n if (!hasProps && HasElementTags.has(tag.tag)) {\n delete deduping[dedupeKey];\n continue;\n }\n deduping[dedupeKey] = tag;\n }\n const newTags = [];\n for (const key in deduping) {\n const tag = deduping[key];\n const dupes = tag._duped;\n newTags.push(tag);\n if (dupes) {\n delete tag._duped;\n newTags.push(...dupes);\n }\n }\n ctx.tags = newTags;\n ctx.tags = ctx.tags.filter((t) => !(t.tag === \"meta\" && (t.props.name || t.props.property) && !t.props.content));\n }\n }\n});\n\nconst ValidEventTags = /* @__PURE__ */ new Set([\"script\", \"link\", \"bodyAttrs\"]);\nconst EventHandlersPlugin = defineHeadPlugin((head) => ({\n hooks: {\n \"tags:resolve\": (ctx) => {\n for (const tag of ctx.tags) {\n if (!ValidEventTags.has(tag.tag)) {\n continue;\n }\n const props = tag.props;\n for (const key in props) {\n if (key[0] !== \"o\" || key[1] !== \"n\") {\n continue;\n }\n if (!Object.prototype.hasOwnProperty.call(props, key)) {\n continue;\n }\n const value = props[key];\n if (typeof value !== \"function\") {\n continue;\n }\n if (head.ssr && NetworkEvents.has(key)) {\n props[key] = `this.dataset.${key}fired = true`;\n } else {\n delete props[key];\n }\n tag._eventHandlers = tag._eventHandlers || {};\n tag._eventHandlers[key] = value;\n }\n if (head.ssr && tag._eventHandlers && (tag.props.src || tag.props.href)) {\n tag.key = tag.key || hashCode(tag.props.src || tag.props.href);\n }\n }\n },\n \"dom:renderTag\": ({ $el, tag }) => {\n const dataset = $el?.dataset;\n if (!dataset) {\n return;\n }\n for (const k in dataset) {\n if (!k.endsWith(\"fired\")) {\n continue;\n }\n const ek = k.slice(0, -5);\n if (!NetworkEvents.has(ek)) {\n continue;\n }\n tag._eventHandlers?.[ek]?.call($el, new Event(ek.substring(2)));\n }\n }\n }\n}));\n\nconst DupeableTags = /* @__PURE__ */ new Set([\"link\", \"style\", \"script\", \"noscript\"]);\nconst HashKeyedPlugin = defineHeadPlugin({\n hooks: {\n \"tag:normalise\": ({ tag }) => {\n if (tag.key && DupeableTags.has(tag.tag)) {\n tag.props[\"data-hid\"] = tag._h = hashCode(tag.key);\n }\n }\n }\n});\n\nconst PayloadPlugin = defineHeadPlugin({\n mode: \"server\",\n hooks: {\n \"tags:beforeResolve\": (ctx) => {\n const payload = {};\n let hasPayload = false;\n for (const tag of ctx.tags) {\n if (tag._m !== \"server\" || tag.tag !== \"titleTemplate\" && tag.tag !== \"templateParams\" && tag.tag !== \"title\") {\n continue;\n }\n payload[tag.tag] = tag.tag === \"title\" || tag.tag === \"titleTemplate\" ? tag.textContent : tag.props;\n hasPayload = true;\n }\n if (hasPayload) {\n ctx.tags.push({\n tag: \"script\",\n innerHTML: JSON.stringify(payload),\n props: { id: \"unhead:payload\", type: \"application/json\" }\n });\n }\n }\n }\n});\n\nconst SortPlugin = defineHeadPlugin({\n hooks: {\n \"tags:resolve\": (ctx) => {\n for (const tag of ctx.tags) {\n if (typeof tag.tagPriority !== \"string\") {\n continue;\n }\n for (const { prefix, offset } of SortModifiers) {\n if (!tag.tagPriority.startsWith(prefix)) {\n continue;\n }\n const key = tag.tagPriority.substring(prefix.length);\n const position = ctx.tags.find((tag2) => tag2._d === key)?._p;\n if (position !== void 0) {\n tag._p = position + offset;\n break;\n }\n }\n }\n ctx.tags.sort((a, b) => {\n const aWeight = tagWeight(a);\n const bWeight = tagWeight(b);\n if (aWeight < bWeight) {\n return -1;\n } else if (aWeight > bWeight) {\n return 1;\n }\n return a._p - b._p;\n });\n }\n }\n});\n\nconst SupportedAttrs = {\n meta: \"content\",\n link: \"href\",\n htmlAttrs: \"lang\"\n};\nconst contentAttrs = [\"innerHTML\", \"textContent\"];\nconst TemplateParamsPlugin = defineHeadPlugin((head) => ({\n hooks: {\n \"tags:resolve\": (ctx) => {\n const { tags } = ctx;\n let templateParams;\n for (let i = 0; i < tags.length; i += 1) {\n const tag = tags[i];\n if (tag.tag !== \"templateParams\") {\n continue;\n }\n templateParams = ctx.tags.splice(i, 1)[0].props;\n i -= 1;\n }\n const params = templateParams || {};\n const sep = params.separator || \"|\";\n delete params.separator;\n params.pageTitle = processTemplateParams(\n // find templateParams\n params.pageTitle || tags.find((tag) => tag.tag === \"title\")?.textContent || \"\",\n params,\n sep\n );\n for (const tag of tags) {\n if (tag.processTemplateParams === false) {\n continue;\n }\n const v = SupportedAttrs[tag.tag];\n if (v && typeof tag.props[v] === \"string\") {\n tag.props[v] = processTemplateParams(tag.props[v], params, sep);\n } else if (tag.processTemplateParams || tag.tag === \"titleTemplate\" || tag.tag === \"title\") {\n for (const p of contentAttrs) {\n if (typeof tag[p] === \"string\")\n tag[p] = processTemplateParams(tag[p], params, sep);\n }\n }\n }\n head._templateParams = params;\n head._separator = sep;\n },\n \"tags:afterResolve\": ({ tags }) => {\n let title;\n for (let i = 0; i < tags.length; i += 1) {\n const tag = tags[i];\n if (tag.tag === \"title\" && tag.processTemplateParams !== false) {\n title = tag;\n }\n }\n if (title?.textContent) {\n title.textContent = processTemplateParams(title.textContent, head._templateParams, head._separator);\n }\n }\n }\n}));\n\nconst TitleTemplatePlugin = defineHeadPlugin({\n hooks: {\n \"tags:resolve\": (ctx) => {\n const { tags } = ctx;\n let titleTag;\n let titleTemplateTag;\n for (let i = 0; i < tags.length; i += 1) {\n const tag = tags[i];\n if (tag.tag === \"title\") {\n titleTag = tag;\n } else if (tag.tag === \"titleTemplate\") {\n titleTemplateTag = tag;\n }\n }\n if (titleTemplateTag && titleTag) {\n const newTitle = resolveTitleTemplate(\n titleTemplateTag.textContent,\n titleTag.textContent\n );\n if (newTitle !== null) {\n titleTag.textContent = newTitle || titleTag.textContent;\n } else {\n ctx.tags.splice(ctx.tags.indexOf(titleTag), 1);\n }\n } else if (titleTemplateTag) {\n const newTitle = resolveTitleTemplate(\n titleTemplateTag.textContent\n );\n if (newTitle !== null) {\n titleTemplateTag.textContent = newTitle;\n titleTemplateTag.tag = \"title\";\n titleTemplateTag = void 0;\n }\n }\n if (titleTemplateTag) {\n ctx.tags.splice(ctx.tags.indexOf(titleTemplateTag), 1);\n }\n }\n }\n});\n\nconst XSSPlugin = defineHeadPlugin({\n hooks: {\n \"tags:afterResolve\": (ctx) => {\n for (const tag of ctx.tags) {\n if (typeof tag.innerHTML === \"string\") {\n if (tag.innerHTML && (tag.props.type === \"application/ld+json\" || tag.props.type === \"application/json\")) {\n tag.innerHTML = tag.innerHTML.replace(/</g, \"\\\\u003C\");\n } else {\n tag.innerHTML = tag.innerHTML.replace(new RegExp(`</${tag.tag}`, \"g\"), `<\\\\/${tag.tag}`);\n }\n }\n }\n }\n }\n});\n\nlet activeHead;\n// @__NO_SIDE_EFFECTS__\nfunction createHead(options = {}) {\n const head = createHeadCore(options);\n head.use(DomPlugin());\n return activeHead = head;\n}\n// @__NO_SIDE_EFFECTS__\nfunction createServerHead(options = {}) {\n return activeHead = createHeadCore(options);\n}\nfunction filterMode(mode, ssr) {\n return !mode || mode === \"server\" && ssr || mode === \"client\" && !ssr;\n}\nfunction createHeadCore(options = {}) {\n const hooks = createHooks();\n hooks.addHooks(options.hooks || {});\n options.document = options.document || (IsBrowser ? document : void 0);\n const ssr = !options.document;\n const updated = () => {\n head.dirty = true;\n hooks.callHook(\"entries:updated\", head);\n };\n let entryCount = 0;\n let entries = [];\n const plugins = [];\n const head = {\n plugins,\n dirty: false,\n resolvedOptions: options,\n hooks,\n headEntries() {\n return entries;\n },\n use(p) {\n const plugin = typeof p === \"function\" ? p(head) : p;\n if (!plugin.key || !plugins.some((p2) => p2.key === plugin.key)) {\n plugins.push(plugin);\n filterMode(plugin.mode, ssr) && hooks.addHooks(plugin.hooks || {});\n }\n },\n push(input, entryOptions) {\n delete entryOptions?.head;\n const entry = {\n _i: entryCount++,\n input,\n ...entryOptions\n };\n if (filterMode(entry.mode, ssr)) {\n entries.push(entry);\n updated();\n }\n return {\n dispose() {\n entries = entries.filter((e) => e._i !== entry._i);\n updated();\n },\n // a patch is the same as creating a new entry, just a nice DX\n patch(input2) {\n for (const e of entries) {\n if (e._i === entry._i) {\n e.input = entry.input = input2;\n }\n }\n updated();\n }\n };\n },\n async resolveTags() {\n const resolveCtx = { tags: [], entries: [...entries] };\n await hooks.callHook(\"entries:resolve\", resolveCtx);\n for (const entry of resolveCtx.entries) {\n const resolved = entry.resolvedInput || entry.input;\n entry.resolvedInput = await (entry.transform ? entry.transform(resolved) : resolved);\n if (entry.resolvedInput) {\n for (const tag of await normaliseEntryTags(entry)) {\n const tagCtx = { tag, entry, resolvedOptions: head.resolvedOptions };\n await hooks.callHook(\"tag:normalise\", tagCtx);\n resolveCtx.tags.push(tagCtx.tag);\n }\n }\n }\n await hooks.callHook(\"tags:beforeResolve\", resolveCtx);\n await hooks.callHook(\"tags:resolve\", resolveCtx);\n await hooks.callHook(\"tags:afterResolve\", resolveCtx);\n return resolveCtx.tags;\n },\n ssr\n };\n [\n DedupePlugin,\n PayloadPlugin,\n EventHandlersPlugin,\n HashKeyedPlugin,\n SortPlugin,\n TemplateParamsPlugin,\n TitleTemplatePlugin,\n XSSPlugin,\n ...options?.plugins || []\n ].forEach((p) => head.use(p));\n head.hooks.callHook(\"init\", head);\n return head;\n}\n\nconst unheadComposablesImports = [\n {\n from: \"unhead\",\n imports: composableNames\n }\n];\n\nfunction getActiveHead() {\n return activeHead;\n}\n\nfunction useHead(input, options = {}) {\n const head = options.head || getActiveHead();\n return head?.push(input, options);\n}\n\nfunction useHeadSafe(input, options) {\n return useHead(input, {\n ...options,\n transform: whitelistSafeInput\n });\n}\n\nconst ScriptProxyTarget = Symbol(\"ScriptProxyTarget\");\nfunction scriptProxy() {\n}\nscriptProxy[ScriptProxyTarget] = true;\nfunction resolveScriptKey(input) {\n return input.key || hashCode(input.src || (typeof input.innerHTML === \"string\" ? input.innerHTML : \"\"));\n}\nfunction useScript(_input, _options) {\n const input = typeof _input === \"string\" ? { src: _input } : _input;\n const options = _options || {};\n const head = options.head || getActiveHead();\n if (!head)\n throw new Error(\"Missing Unhead context.\");\n const id = resolveScriptKey(input);\n const prevScript = head._scripts?.[id];\n if (prevScript) {\n prevScript.setupTriggerHandler(options.trigger);\n return prevScript;\n }\n options.beforeInit?.();\n const syncStatus = (s) => {\n script.status = s;\n head.hooks.callHook(`script:updated`, hookCtx);\n };\n ScriptNetworkEvents.forEach((fn) => {\n const _fn = typeof input[fn] === \"function\" ? input[fn].bind(options.eventContext) : null;\n input[fn] = (e) => {\n syncStatus(fn === \"onload\" ? \"loaded\" : fn === \"onerror\" ? \"error\" : \"loading\");\n _fn?.(e);\n };\n });\n const _cbs = { loaded: [], error: [] };\n const _registerCb = (key, cb) => {\n if (_cbs[key]) {\n const i = _cbs[key].push(cb);\n return () => _cbs[key]?.splice(i - 1, 1);\n }\n cb(script.instance);\n return () => {\n };\n };\n const loadPromise = new Promise((resolve, reject) => {\n if (head.ssr)\n return;\n const emit = (api) => requestAnimationFrame(() => resolve(api));\n const _ = head.hooks.hook(\"script:updated\", ({ script: script2 }) => {\n const status = script2.status;\n if (script2.id === id && (status === \"loaded\" || status === \"error\")) {\n if (status === \"loaded\") {\n if (typeof options.use === \"function\") {\n const api = options.use();\n if (api) {\n emit(api);\n }\n } else {\n emit({});\n }\n } else if (status === \"error\") {\n reject(new Error(`Failed to load script: ${input.src}`));\n }\n _();\n }\n });\n });\n const script = Object.assign(loadPromise, {\n instance: !head.ssr && options?.use?.() || null,\n proxy: null,\n id,\n status: \"awaitingLoad\",\n remove() {\n if (script.entry) {\n script.entry.dispose();\n syncStatus(\"removed\");\n delete head._scripts?.[id];\n return true;\n }\n return false;\n },\n load(cb) {\n script._triggerAbortController?.abort();\n script._triggerPromises = [];\n if (!script.entry) {\n syncStatus(\"loading\");\n const defaults = {\n defer: true,\n fetchpriority: \"low\"\n };\n if (input.src && (input.src.startsWith(\"http\") || input.src.startsWith(\"//\"))) {\n defaults.crossorigin = \"anonymous\";\n defaults.referrerpolicy = \"no-referrer\";\n }\n script.entry = head.push({\n script: [{ ...defaults, ...input, key: `script.${id}` }]\n }, options);\n }\n if (cb)\n _registerCb(\"loaded\", cb);\n return loadPromise;\n },\n onLoaded(cb) {\n return _registerCb(\"loaded\", cb);\n },\n onError(cb) {\n return _registerCb(\"error\", cb);\n },\n setupTriggerHandler(trigger) {\n if (script.status !== \"awaitingLoad\") {\n return;\n }\n if ((typeof trigger === \"undefined\" || trigger === \"client\") && !head.ssr || trigger === \"server\") {\n script.load();\n } else if (trigger instanceof Promise) {\n script._triggerAbortController = script._triggerAbortController || new AbortController();\n script._triggerPromises = script._triggerPromises || [];\n script._triggerPromises.push(Promise.race([\n trigger.then(() => script.load),\n new Promise((resolve) => {\n script._triggerAbortController.signal.addEventListener(\"abort\", () => resolve());\n })\n ]).then((res2) => {\n res2?.();\n }));\n } else if (typeof trigger === \"function\") {\n trigger(script.load);\n }\n },\n _cbs\n });\n loadPromise.then((api) => {\n script.instance = api;\n if (_cbs.loaded)\n _cbs.loaded.forEach((cb) => cb(api));\n _cbs.loaded = null;\n }).catch((err) => {\n if (_cbs.error)\n _cbs.error.forEach((cb) => cb(err));\n _cbs.error = null;\n });\n const hookCtx = { script };\n script.setupTriggerHandler(options.trigger);\n script.$script = script;\n const proxyChain = (instance, accessor, accessors) => {\n return new Proxy((!accessor ? instance : instance?.[accessor]) || scriptProxy, {\n get(_, k, r) {\n head.hooks.callHook(\"script:instance-fn\", { script, fn: k, exists: k in _ });\n if (!accessor) {\n const stub = options.stub?.({ script, fn: k });\n if (stub)\n return stub;\n }\n if (_ && k in _ && typeof _[k] !== \"undefined\") {\n return Reflect.get(_, k, r);\n }\n if (k === Symbol.iterator) {\n return [][Symbol.iterator];\n }\n return proxyChain(accessor ? instance?.[accessor] : instance, k, accessors || [k]);\n },\n async apply(_, _this, args) {\n if (head.ssr && _[ScriptProxyTarget])\n return;\n let instance2;\n const access = (fn2) => {\n instance2 = fn2 || instance2;\n for (let i = 0; i < (accessors || []).length; i++) {\n const k = (accessors || [])[i];\n fn2 = fn2?.[k];\n }\n return fn2;\n };\n const fn = access(script.instance) || access(await loadPromise);\n return typeof fn === \"function\" ? Reflect.apply(fn, instance2, args) : fn;\n }\n });\n };\n script.proxy = proxyChain(script.instance);\n const res = new Proxy(script, {\n get(_, k) {\n const target = k in script || String(k)[0] === \"_\" ? script : script.proxy;\n if (k === \"then\" || k === \"catch\") {\n return script[k].bind(script);\n }\n return Reflect.get(target, k, target);\n }\n });\n head._scripts = Object.assign(head._scripts || {}, { [id]: res });\n return res;\n}\n\nfunction useSeoMeta(input, options) {\n const { title, titleTemplate, ...meta } = input;\n return useHead({\n title,\n titleTemplate,\n // we need to input the meta so the reactivity will be resolved\n // @ts-expect-error runtime type\n _flatMeta: meta\n }, {\n ...options,\n transform(t) {\n const meta2 = unpackMeta({ ...t._flatMeta });\n delete t._flatMeta;\n return {\n // @ts-expect-error runtime type\n ...t,\n meta: meta2\n };\n }\n });\n}\n\nfunction useServerHead(input, options = {}) {\n return useHead(input, { ...options, mode: \"server\" });\n}\n\nfunction useServerHeadSafe(input, options = {}) {\n return useHeadSafe(input, { ...options, mode: \"server\" });\n}\n\nfunction useServerSeoMeta(input, options) {\n return useSeoMeta(input, {\n ...options,\n mode: \"server\"\n });\n}\n\nconst importRe = /@import/;\n// @__NO_SIDE_EFFECTS__\nfunction CapoPlugin(options) {\n return defineHeadPlugin({\n hooks: {\n \"tags:beforeResolve\": ({ tags }) => {\n for (const tag of tags) {\n if (tag.tagPosition && tag.tagPosition !== \"head\")\n continue;\n tag.tagPriority = tag.tagPriority || tagWeight(tag);\n if (tag.tagPriority !== 100)\n continue;\n const isTruthy = (val) => val === \"\" || val === true;\n const isScript = tag.tag === \"script\";\n const isLink = tag.tag === \"link\";\n if (isScript && isTruthy(tag.props.async)) {\n tag.tagPriority = 30;\n } else if (tag.tag === \"style\" && tag.innerHTML && importRe.test(tag.innerHTML)) {\n tag.tagPriority = 40;\n } else if (isScript && tag.props.src && !isTruthy(tag.props.defer) && !isTruthy(tag.props.async) && tag.props.type !== \"module\" && !tag.props.type?.endsWith(\"json\")) {\n tag.tagPriority = 50;\n } else if (isLink && tag.props.rel === \"stylesheet\" || tag.tag === \"style\") {\n tag.tagPriority = 60;\n } else if (isLink && (tag.props.rel === \"preload\" || tag.props.rel === \"modulepreload\")) {\n tag.tagPriority = 70;\n } else if (isScript && isTruthy(tag.props.defer) && tag.props.src && !isTruthy(tag.props.async)) {\n tag.tagPriority = 80;\n } else if (isLink && (tag.props.rel === \"prefetch\" || tag.props.rel === \"dns-prefetch\" || tag.props.rel === \"prerender\")) {\n tag.tagPriority = 90;\n }\n }\n options?.track && tags.push({\n tag: \"htmlAttrs\",\n props: {\n \"data-capo\": \"\"\n }\n });\n }\n }\n });\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction HashHydrationPlugin() {\n return defineHeadPlugin({});\n}\n\nexport { CapoPlugin, HashHydrationPlugin, createHead, createHeadCore, createServerHead, getActiveHead, resolveScriptKey, unheadComposablesImports, useHead, useHeadSafe, useScript, useSeoMeta, useServerHead, useServerHeadSafe, useServerSeoMeta };\n",
77
- "import { createServerHead as createServerHead$1, createHead as createHead$1, getActiveHead } from 'unhead';\nimport { version, unref, nextTick, inject } from 'vue';\nimport { defineHeadPlugin } from '@unhead/shared';\n\nconst Vue3 = version[0] === \"3\";\n\nfunction resolveUnref(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nfunction resolveUnrefHeadInput(ref) {\n if (ref instanceof Promise || ref instanceof Date || ref instanceof RegExp)\n return ref;\n const root = resolveUnref(ref);\n if (!ref || !root)\n return root;\n if (Array.isArray(root))\n return root.map((r) => resolveUnrefHeadInput(r));\n if (typeof root === \"object\") {\n const resolved = {};\n for (const k in root) {\n if (!Object.prototype.hasOwnProperty.call(root, k)) {\n continue;\n }\n if (k === \"titleTemplate\" || k[0] === \"o\" && k[1] === \"n\") {\n resolved[k] = unref(root[k]);\n continue;\n }\n resolved[k] = resolveUnrefHeadInput(root[k]);\n }\n return resolved;\n }\n return root;\n}\n\nconst VueReactivityPlugin = defineHeadPlugin({\n hooks: {\n \"entries:resolve\": (ctx) => {\n for (const entry of ctx.entries)\n entry.resolvedInput = resolveUnrefHeadInput(entry.input);\n }\n }\n});\n\nconst headSymbol = \"usehead\";\nfunction vueInstall(head) {\n const plugin = {\n install(app) {\n if (Vue3) {\n app.config.globalProperties.$unhead = head;\n app.config.globalProperties.$head = head;\n app.provide(headSymbol, head);\n }\n }\n };\n return plugin.install;\n}\nfunction createServerHead(options = {}) {\n const head = createServerHead$1(options);\n head.use(VueReactivityPlugin);\n head.install = vueInstall(head);\n return head;\n}\nfunction createHead(options = {}) {\n options.domDelayFn = options.domDelayFn || ((fn) => nextTick(() => setTimeout(() => fn(), 0)));\n const head = createHead$1(options);\n head.use(VueReactivityPlugin);\n head.install = vueInstall(head);\n return head;\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__unhead_injection_handler__\";\nfunction setHeadInjectionHandler(handler) {\n _global[globalKey] = handler;\n}\nfunction injectHead() {\n if (globalKey in _global) {\n return _global[globalKey]();\n }\n const head = inject(headSymbol);\n if (!head && process.env.NODE_ENV !== \"production\")\n console.warn(\"Unhead is missing Vue context, falling back to shared context. This may have unexpected results.\");\n return head || getActiveHead();\n}\n\nexport { Vue3 as V, createServerHead as a, createHead as c, headSymbol as h, injectHead as i, resolveUnrefHeadInput as r, setHeadInjectionHandler as s };\n",
78
- "import { ref, watchEffect, watch, getCurrentInstance, onBeforeUnmount, onDeactivated, onActivated } from 'vue';\nimport { i as injectHead, r as resolveUnrefHeadInput } from './vue.f49591ad.mjs';\n\nfunction useHead(input, options = {}) {\n const head = options.head || injectHead();\n if (head) {\n if (!head.ssr)\n return clientUseHead(head, input, options);\n return head.push(input, options);\n }\n}\nfunction clientUseHead(head, input, options = {}) {\n const deactivated = ref(false);\n const resolvedInput = ref({});\n watchEffect(() => {\n resolvedInput.value = deactivated.value ? {} : resolveUnrefHeadInput(input);\n });\n const entry = head.push(resolvedInput.value, options);\n watch(resolvedInput, (e) => {\n entry.patch(e);\n });\n const vm = getCurrentInstance();\n if (vm) {\n onBeforeUnmount(() => {\n entry.dispose();\n });\n onDeactivated(() => {\n deactivated.value = true;\n });\n onActivated(() => {\n deactivated.value = false;\n });\n }\n return entry;\n}\n\nexport { useHead as u };\n",
79
- "import { useScript as useScript$1 } from 'unhead';\nexport { CapoPlugin, HashHydrationPlugin, createHeadCore } from 'unhead';\nimport { i as injectHead, h as headSymbol, V as Vue3 } from './shared/vue.f49591ad.mjs';\nexport { c as createHead, a as createServerHead, r as resolveUnrefHeadInput, s as setHeadInjectionHandler } from './shared/vue.f49591ad.mjs';\nimport { composableNames, whitelistSafeInput, unpackMeta } from '@unhead/shared';\nimport { u as useHead } from './shared/vue.8fc199ce.mjs';\nimport { getCurrentInstance, onMounted, ref, onScopeDispose } from 'vue';\n\nconst coreComposableNames = [\n \"injectHead\"\n];\nconst unheadVueComposablesImports = {\n \"@unhead/vue\": [...coreComposableNames, ...composableNames]\n};\n\nfunction useHeadSafe(input, options = {}) {\n return useHead(input, { ...options, transform: whitelistSafeInput });\n}\n\nfunction registerVueScopeHandlers(script, scope) {\n if (!scope) {\n return;\n }\n const _registerCb = (key, cb) => {\n if (!script._cbs[key]) {\n cb(script.instance);\n return () => {\n };\n }\n let i = script._cbs[key].push(cb);\n const destroy = () => {\n if (i) {\n script._cbs[key]?.splice(i - 1, 1);\n i = null;\n }\n };\n onScopeDispose(destroy);\n return destroy;\n };\n onScopeDispose(() => {\n script._triggerAbortController?.abort();\n });\n script.onLoaded = (cb) => _registerCb(\"loaded\", cb);\n script.onError = (cb) => _registerCb(\"error\", cb);\n}\nfunction useScript(_input, _options) {\n const input = typeof _input === \"string\" ? { src: _input } : _input;\n const options = _options || {};\n const head = options?.head || injectHead();\n options.head = head;\n const scope = getCurrentInstance();\n options.eventContext = scope;\n if (scope && typeof options.trigger === \"undefined\")\n options.trigger = onMounted;\n head._scriptStatusWatcher = head._scriptStatusWatcher || head.hooks.hook(\"script:updated\", ({ script: s }) => {\n s._statusRef.value = s.status;\n });\n const script = useScript$1(input, options);\n script._statusRef = script._statusRef || ref(script.status);\n registerVueScopeHandlers(script, scope);\n return new Proxy(script, {\n get(_, key, a) {\n return Reflect.get(_, key === \"status\" ? \"_statusRef\" : key, a);\n }\n });\n}\n\nfunction useSeoMeta(input, options) {\n const { title, titleTemplate, ...meta } = input;\n return useHead({\n title,\n titleTemplate,\n // @ts-expect-error runtime type\n _flatMeta: meta\n }, {\n ...options,\n transform(t) {\n const meta2 = unpackMeta({ ...t._flatMeta });\n delete t._flatMeta;\n return {\n // @ts-expect-error runtime type\n ...t,\n meta: meta2\n };\n }\n });\n}\n\nfunction useServerHead(input, options = {}) {\n const head = options.head || injectHead();\n delete options.head;\n if (head)\n return head.push(input, { ...options, mode: \"server\" });\n}\n\nfunction useServerHeadSafe(input, options = {}) {\n return useHeadSafe(input, { ...options, mode: \"server\" });\n}\n\nfunction useServerSeoMeta(input, options) {\n return useSeoMeta(input, { ...options, mode: \"server\" });\n}\n\nconst Vue2ProvideUnheadPlugin = (_Vue, head) => {\n _Vue.mixin({\n beforeCreate() {\n const options = this.$options;\n const origProvide = options.provide;\n options.provide = function() {\n let origProvideResult;\n if (typeof origProvide === \"function\")\n origProvideResult = origProvide.call(this);\n else\n origProvideResult = origProvide || {};\n return {\n ...origProvideResult,\n [headSymbol]: head\n };\n };\n }\n });\n};\n\nconst VueHeadMixin = {\n created() {\n let source = false;\n if (Vue3) {\n const instance = getCurrentInstance();\n if (!instance)\n return;\n const options = instance.type;\n if (!options || !(\"head\" in options))\n return;\n source = typeof options.head === \"function\" ? () => options.head.call(instance.proxy) : options.head;\n } else {\n const head = this.$options.head;\n if (head) {\n source = typeof head === \"function\" ? () => head.call(this) : head;\n }\n }\n source && useHead(source);\n }\n};\n\nexport { Vue2ProvideUnheadPlugin, VueHeadMixin, injectHead, unheadVueComposablesImports, useHead, useHeadSafe, useScript, useSeoMeta, useServerHead, useServerHeadSafe, useServerSeoMeta };\n",
80
- "import { u as useHead } from './shared/vue.8fc199ce.mjs';\nimport 'vue';\nimport './shared/vue.f49591ad.mjs';\nimport 'unhead';\nimport '@unhead/shared';\n\nfunction polyfillAsVueUseHead(head) {\n const polyfilled = head;\n polyfilled.headTags = head.resolveTags;\n polyfilled.addEntry = head.push;\n polyfilled.addHeadObjs = head.push;\n polyfilled.addReactiveEntry = (input, options) => {\n const api = useHead(input, options);\n if (api !== void 0)\n return api.dispose;\n return () => {\n };\n };\n polyfilled.removeHeadObjs = () => {\n };\n polyfilled.updateDOM = () => {\n head.hooks.callHook(\"entries:updated\", head);\n };\n polyfilled.unhead = head;\n return polyfilled;\n}\n\nexport { polyfillAsVueUseHead };\n",
81
- "function asArray$1(value) {\n return Array.isArray(value) ? value : [value];\n}\n\nconst SelfClosingTags = /* @__PURE__ */ new Set([\"meta\", \"link\", \"base\"]);\nconst TagsWithInnerContent = /* @__PURE__ */ new Set([\"title\", \"titleTemplate\", \"script\", \"style\", \"noscript\"]);\nconst HasElementTags = /* @__PURE__ */ new Set([\n \"base\",\n \"meta\",\n \"link\",\n \"style\",\n \"script\",\n \"noscript\"\n]);\nconst ValidHeadTags = /* @__PURE__ */ new Set([\n \"title\",\n \"titleTemplate\",\n \"templateParams\",\n \"base\",\n \"htmlAttrs\",\n \"bodyAttrs\",\n \"meta\",\n \"link\",\n \"style\",\n \"script\",\n \"noscript\"\n]);\nconst UniqueTags = /* @__PURE__ */ new Set([\"base\", \"title\", \"titleTemplate\", \"bodyAttrs\", \"htmlAttrs\", \"templateParams\"]);\nconst TagConfigKeys = /* @__PURE__ */ new Set([\"tagPosition\", \"tagPriority\", \"tagDuplicateStrategy\", \"children\", \"innerHTML\", \"textContent\", \"processTemplateParams\"]);\nconst IsBrowser = typeof window !== \"undefined\";\nconst composableNames = [\n \"getActiveHead\",\n \"useHead\",\n \"useSeoMeta\",\n \"useHeadSafe\",\n \"useServerHead\",\n \"useServerSeoMeta\",\n \"useServerHeadSafe\"\n];\n\nfunction defineHeadPlugin(plugin) {\n return plugin;\n}\n\nfunction hashCode(s) {\n let h = 9;\n for (let i = 0; i < s.length; )\n h = Math.imul(h ^ s.charCodeAt(i++), 9 ** 9);\n return ((h ^ h >>> 9) + 65536).toString(16).substring(1, 8).toLowerCase();\n}\nfunction hashTag(tag) {\n if (tag._h) {\n return tag._h;\n }\n if (tag._d) {\n return hashCode(tag._d);\n }\n let content = `${tag.tag}:${tag.textContent || tag.innerHTML || \"\"}:`;\n for (const key in tag.props) {\n content += `${key}:${String(tag.props[key])},`;\n }\n return hashCode(content);\n}\n\nfunction asArray(input) {\n return Array.isArray(input) ? input : [input];\n}\nconst InternalKeySymbol = \"_$key\";\nfunction packObject(input, options) {\n const keys = Object.keys(input);\n let [k, v] = keys;\n options = options || {};\n options.key = options.key || k;\n options.value = options.value || v;\n options.resolveKey = options.resolveKey || ((k2) => k2);\n const resolveKey = (index) => {\n const arr = asArray(options[index]);\n return arr.find((k2) => {\n if (typeof k2 === \"string\" && k2.includes(\".\")) {\n return k2;\n }\n return k2 && keys.includes(k2);\n });\n };\n const resolveValue = (k2, input2) => {\n if (k2.includes(\".\")) {\n const paths = k2.split(\".\");\n let val = input2;\n for (const path of paths)\n val = val[path];\n return val;\n }\n return input2[k2];\n };\n k = resolveKey(\"key\") || k;\n v = resolveKey(\"value\") || v;\n const dedupeKeyPrefix = input.key ? `${InternalKeySymbol}${input.key}-` : \"\";\n let keyValue = resolveValue(k, input);\n keyValue = options.resolveKey(keyValue);\n return {\n [`${dedupeKeyPrefix}${keyValue}`]: resolveValue(v, input)\n };\n}\n\nfunction packArray(input, options) {\n const packed = {};\n for (const i of input) {\n const packedObj = packObject(i, options);\n const pKey = Object.keys(packedObj)[0];\n const isDedupeKey = pKey.startsWith(InternalKeySymbol);\n if (!isDedupeKey && packed[pKey]) {\n packed[pKey] = Array.isArray(packed[pKey]) ? packed[pKey] : [packed[pKey]];\n packed[pKey].push(Object.values(packedObj)[0]);\n } else {\n packed[isDedupeKey ? pKey.split(\"-\").slice(1).join(\"-\") || pKey : pKey] = packedObj[pKey];\n }\n }\n return packed;\n}\n\nfunction unpackToArray(input, options) {\n const unpacked = [];\n const kFn = options.resolveKeyData || ((ctx) => ctx.key);\n const vFn = options.resolveValueData || ((ctx) => ctx.value);\n for (const [k, v] of Object.entries(input)) {\n unpacked.push(...(Array.isArray(v) ? v : [v]).map((i) => {\n const ctx = { key: k, value: i };\n const val = vFn(ctx);\n if (typeof val === \"object\")\n return unpackToArray(val, options);\n if (Array.isArray(val))\n return val;\n return {\n [typeof options.key === \"function\" ? options.key(ctx) : options.key]: kFn(ctx),\n [typeof options.value === \"function\" ? options.value(ctx) : options.value]: val\n };\n }).flat());\n }\n return unpacked;\n}\n\nfunction unpackToString(value, options) {\n return Object.entries(value).map(([key, value2]) => {\n if (typeof value2 === \"object\")\n value2 = unpackToString(value2, options);\n if (options.resolve) {\n const resolved = options.resolve({ key, value: value2 });\n if (typeof resolved !== \"undefined\")\n return resolved;\n }\n if (typeof value2 === \"number\")\n value2 = value2.toString();\n if (typeof value2 === \"string\" && options.wrapValue) {\n value2 = value2.replace(new RegExp(options.wrapValue, \"g\"), `\\\\${options.wrapValue}`);\n value2 = `${options.wrapValue}${value2}${options.wrapValue}`;\n }\n return `${key}${options.keyValueSeparator || \"\"}${value2}`;\n }).join(options.entrySeparator || \"\");\n}\n\nconst p = (p2) => ({ keyValue: p2, metaKey: \"property\" });\nconst k = (p2) => ({ keyValue: p2 });\nconst MetaPackingSchema = {\n appleItunesApp: {\n unpack: {\n entrySeparator: \", \",\n resolve({ key, value }) {\n return `${fixKeyCase(key)}=${value}`;\n }\n }\n },\n articleExpirationTime: p(\"article:expiration_time\"),\n articleModifiedTime: p(\"article:modified_time\"),\n articlePublishedTime: p(\"article:published_time\"),\n bookReleaseDate: p(\"book:release_date\"),\n charset: {\n metaKey: \"charset\"\n },\n contentSecurityPolicy: {\n unpack: {\n entrySeparator: \"; \",\n resolve({ key, value }) {\n return `${fixKeyCase(key)} ${value}`;\n }\n },\n metaKey: \"http-equiv\"\n },\n contentType: {\n metaKey: \"http-equiv\"\n },\n defaultStyle: {\n metaKey: \"http-equiv\"\n },\n fbAppId: p(\"fb:app_id\"),\n msapplicationConfig: k(\"msapplication-Config\"),\n msapplicationTileColor: k(\"msapplication-TileColor\"),\n msapplicationTileImage: k(\"msapplication-TileImage\"),\n ogAudioSecureUrl: p(\"og:audio:secure_url\"),\n ogAudioUrl: p(\"og:audio\"),\n ogImageSecureUrl: p(\"og:image:secure_url\"),\n ogImageUrl: p(\"og:image\"),\n ogSiteName: p(\"og:site_name\"),\n ogVideoSecureUrl: p(\"og:video:secure_url\"),\n ogVideoUrl: p(\"og:video\"),\n profileFirstName: p(\"profile:first_name\"),\n profileLastName: p(\"profile:last_name\"),\n profileUsername: p(\"profile:username\"),\n refresh: {\n metaKey: \"http-equiv\",\n unpack: {\n entrySeparator: \";\",\n resolve({ key, value }) {\n if (key === \"seconds\")\n return `${value}`;\n }\n }\n },\n robots: {\n unpack: {\n entrySeparator: \", \",\n resolve({ key, value }) {\n if (typeof value === \"boolean\")\n return `${fixKeyCase(key)}`;\n else\n return `${fixKeyCase(key)}:${value}`;\n }\n }\n },\n xUaCompatible: {\n metaKey: \"http-equiv\"\n }\n};\nconst openGraphNamespaces = /* @__PURE__ */ new Set([\n \"og\",\n \"book\",\n \"article\",\n \"profile\"\n]);\nfunction resolveMetaKeyType(key) {\n const fKey = fixKeyCase(key);\n const prefixIndex = fKey.indexOf(\":\");\n if (openGraphNamespaces.has(fKey.substring(0, prefixIndex)))\n return \"property\";\n return MetaPackingSchema[key]?.metaKey || \"name\";\n}\nfunction resolveMetaKeyValue(key) {\n return MetaPackingSchema[key]?.keyValue || fixKeyCase(key);\n}\nfunction fixKeyCase(key) {\n const updated = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n const prefixIndex = updated.indexOf(\"-\");\n const fKey = updated.substring(0, prefixIndex);\n if (fKey === \"twitter\" || openGraphNamespaces.has(fKey))\n return key.replace(/([A-Z])/g, \":$1\").toLowerCase();\n return updated;\n}\nfunction changeKeyCasingDeep(input) {\n if (Array.isArray(input)) {\n return input.map((entry) => changeKeyCasingDeep(entry));\n }\n if (typeof input !== \"object\" || Array.isArray(input))\n return input;\n const output = {};\n for (const key in input) {\n if (!Object.prototype.hasOwnProperty.call(input, key)) {\n continue;\n }\n output[fixKeyCase(key)] = changeKeyCasingDeep(input[key]);\n }\n return output;\n}\nfunction resolvePackedMetaObjectValue(value, key) {\n const definition = MetaPackingSchema[key];\n if (key === \"refresh\")\n return `${value.seconds};url=${value.url}`;\n return unpackToString(\n changeKeyCasingDeep(value),\n {\n keyValueSeparator: \"=\",\n entrySeparator: \", \",\n resolve({ value: value2, key: key2 }) {\n if (value2 === null)\n return \"\";\n if (typeof value2 === \"boolean\")\n return `${key2}`;\n },\n ...definition?.unpack\n }\n );\n}\nconst ObjectArrayEntries = /* @__PURE__ */ new Set([\"og:image\", \"og:video\", \"og:audio\", \"twitter:image\"]);\nfunction sanitize(input) {\n const out = {};\n for (const k2 in input) {\n if (!Object.prototype.hasOwnProperty.call(input, k2)) {\n continue;\n }\n const v = input[k2];\n if (String(v) !== \"false\" && k2)\n out[k2] = v;\n }\n return out;\n}\nfunction handleObjectEntry(key, v) {\n const value = sanitize(v);\n const fKey = fixKeyCase(key);\n const attr = resolveMetaKeyType(fKey);\n if (ObjectArrayEntries.has(fKey)) {\n const input = {};\n for (const k2 in value) {\n if (!Object.prototype.hasOwnProperty.call(value, k2)) {\n continue;\n }\n input[`${key}${k2 === \"url\" ? \"\" : `${k2[0].toUpperCase()}${k2.slice(1)}`}`] = value[k2];\n }\n return unpackMeta(input).sort((a, b) => (a[attr]?.length || 0) - (b[attr]?.length || 0));\n }\n return [{ [attr]: fKey, ...value }];\n}\nfunction unpackMeta(input) {\n const extras = [];\n const primitives = {};\n for (const key in input) {\n if (!Object.prototype.hasOwnProperty.call(input, key)) {\n continue;\n }\n const value = input[key];\n if (!Array.isArray(value)) {\n if (typeof value === \"object\" && value) {\n if (ObjectArrayEntries.has(fixKeyCase(key))) {\n extras.push(...handleObjectEntry(key, value));\n continue;\n }\n primitives[key] = sanitize(value);\n } else {\n primitives[key] = value;\n }\n continue;\n }\n for (const v of value) {\n extras.push(...typeof v === \"string\" ? unpackMeta({ [key]: v }) : handleObjectEntry(key, v));\n }\n }\n const meta = unpackToArray(primitives, {\n key({ key }) {\n return resolveMetaKeyType(key);\n },\n value({ key }) {\n return key === \"charset\" ? \"charset\" : \"content\";\n },\n resolveKeyData({ key }) {\n return resolveMetaKeyValue(key);\n },\n resolveValueData({ value, key }) {\n if (value === null)\n return \"_null\";\n if (typeof value === \"object\")\n return resolvePackedMetaObjectValue(value, key);\n return typeof value === \"number\" ? value.toString() : value;\n }\n });\n return [...extras, ...meta].map((m) => {\n if (m.content === \"_null\")\n m.content = null;\n return m;\n });\n}\nfunction packMeta(inputs) {\n const mappedPackingSchema = Object.entries(MetaPackingSchema).map(([key, value]) => [key, value.keyValue]);\n return packArray(inputs, {\n key: [\"name\", \"property\", \"httpEquiv\", \"http-equiv\", \"charset\"],\n value: [\"content\", \"charset\"],\n resolveKey(k2) {\n let key = mappedPackingSchema.filter((sk) => sk[1] === k2)?.[0]?.[0] || k2;\n const replacer = (_, letter) => letter?.toUpperCase();\n key = key.replace(/:([a-z])/g, replacer).replace(/-([a-z])/g, replacer);\n return key;\n }\n });\n}\n\nfunction thenable(val, thenFn) {\n if (val instanceof Promise) {\n return val.then(thenFn);\n }\n return thenFn(val);\n}\n\nfunction normaliseTag(tagName, input, e, normalizedProps) {\n const props = normalizedProps || normaliseProps(\n // explicitly check for an object\n // @ts-expect-error untyped\n typeof input === \"object\" && typeof input !== \"function\" && !(input instanceof Promise) ? { ...input } : { [tagName === \"script\" || tagName === \"noscript\" || tagName === \"style\" ? \"innerHTML\" : \"textContent\"]: input },\n tagName === \"templateParams\" || tagName === \"titleTemplate\"\n );\n if (props instanceof Promise) {\n return props.then((val) => normaliseTag(tagName, input, e, val));\n }\n const tag = {\n tag: tagName,\n props\n };\n for (const k of TagConfigKeys) {\n const val = tag.props[k] !== void 0 ? tag.props[k] : e[k];\n if (val !== void 0) {\n if (!(k === \"innerHTML\" || k === \"textContent\" || k === \"children\") || TagsWithInnerContent.has(tag.tag)) {\n tag[k === \"children\" ? \"innerHTML\" : k] = val;\n }\n delete tag.props[k];\n }\n }\n if (tag.props.body) {\n tag.tagPosition = \"bodyClose\";\n delete tag.props.body;\n }\n if (tag.tag === \"script\") {\n if (typeof tag.innerHTML === \"object\") {\n tag.innerHTML = JSON.stringify(tag.innerHTML);\n tag.props.type = tag.props.type || \"application/json\";\n }\n }\n return Array.isArray(tag.props.content) ? tag.props.content.map((v) => ({ ...tag, props: { ...tag.props, content: v } })) : tag;\n}\nfunction normaliseStyleClassProps(key, v) {\n const sep = key === \"class\" ? \" \" : \";\";\n if (v && typeof v === \"object\" && !Array.isArray(v)) {\n v = Object.entries(v).filter(([, v2]) => v2).map(([k, v2]) => key === \"style\" ? `${k}:${v2}` : k);\n }\n return String(Array.isArray(v) ? v.join(sep) : v)?.split(sep).filter((c) => Boolean(c.trim())).join(sep);\n}\nfunction nestedNormaliseProps(props, virtual, keys, startIndex) {\n for (let i = startIndex; i < keys.length; i += 1) {\n const k = keys[i];\n if (k === \"class\" || k === \"style\") {\n props[k] = normaliseStyleClassProps(k, props[k]);\n continue;\n }\n if (props[k] instanceof Promise) {\n return props[k].then((val) => {\n props[k] = val;\n return nestedNormaliseProps(props, virtual, keys, i);\n });\n }\n if (!virtual && !TagConfigKeys.has(k)) {\n const v = String(props[k]);\n const isDataKey = k.startsWith(\"data-\");\n if (v === \"true\" || v === \"\") {\n props[k] = isDataKey ? \"true\" : true;\n } else if (!props[k]) {\n if (isDataKey && v === \"false\")\n props[k] = \"false\";\n else\n delete props[k];\n }\n }\n }\n}\nfunction normaliseProps(props, virtual = false) {\n const resolvedProps = nestedNormaliseProps(props, virtual, Object.keys(props), 0);\n if (resolvedProps instanceof Promise) {\n return resolvedProps.then(() => props);\n }\n return props;\n}\nconst TagEntityBits = 10;\nfunction nestedNormaliseEntryTags(headTags, tagPromises, startIndex) {\n for (let i = startIndex; i < tagPromises.length; i += 1) {\n const tags = tagPromises[i];\n if (tags instanceof Promise) {\n return tags.then((val) => {\n tagPromises[i] = val;\n return nestedNormaliseEntryTags(headTags, tagPromises, i);\n });\n }\n if (Array.isArray(tags)) {\n headTags.push(...tags);\n } else {\n headTags.push(tags);\n }\n }\n}\nfunction normaliseEntryTags(e) {\n const tagPromises = [];\n const input = e.resolvedInput;\n for (const k in input) {\n if (!Object.prototype.hasOwnProperty.call(input, k)) {\n continue;\n }\n const v = input[k];\n if (v === void 0 || !ValidHeadTags.has(k)) {\n continue;\n }\n if (Array.isArray(v)) {\n for (const props of v) {\n tagPromises.push(normaliseTag(k, props, e));\n }\n continue;\n }\n tagPromises.push(normaliseTag(k, v, e));\n }\n if (tagPromises.length === 0) {\n return [];\n }\n const headTags = [];\n return thenable(nestedNormaliseEntryTags(headTags, tagPromises, 0), () => headTags.map((t, i) => {\n t._e = e._i;\n e.mode && (t._m = e.mode);\n t._p = (e._i << TagEntityBits) + i;\n return t;\n }));\n}\n\nconst WhitelistAttributes = {\n htmlAttrs: [\"id\", \"class\", \"lang\", \"dir\"],\n bodyAttrs: [\"id\", \"class\"],\n meta: [\"id\", \"name\", \"property\", \"charset\", \"content\"],\n noscript: [\"id\", \"textContent\"],\n script: [\"id\", \"type\", \"textContent\"],\n link: [\"id\", \"color\", \"crossorigin\", \"fetchpriority\", \"href\", \"hreflang\", \"imagesrcset\", \"imagesizes\", \"integrity\", \"media\", \"referrerpolicy\", \"rel\", \"sizes\", \"type\"]\n};\nfunction acceptDataAttrs(value) {\n const filtered = {};\n Object.keys(value || {}).filter((a) => a.startsWith(\"data-\")).forEach((a) => {\n filtered[a] = value[a];\n });\n return filtered;\n}\nfunction whitelistSafeInput(input) {\n const filtered = {};\n Object.keys(input).forEach((key) => {\n const tagValue = input[key];\n if (!tagValue)\n return;\n switch (key) {\n case \"title\":\n case \"titleTemplate\":\n case \"templateParams\":\n filtered[key] = tagValue;\n break;\n case \"htmlAttrs\":\n case \"bodyAttrs\":\n filtered[key] = acceptDataAttrs(tagValue);\n WhitelistAttributes[key].forEach((a) => {\n if (tagValue[a])\n filtered[key][a] = tagValue[a];\n });\n break;\n case \"meta\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const safeMeta = acceptDataAttrs(meta);\n WhitelistAttributes.meta.forEach((key2) => {\n if (meta[key2])\n safeMeta[key2] = meta[key2];\n });\n return safeMeta;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n case \"link\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const link = acceptDataAttrs(meta);\n WhitelistAttributes.link.forEach((key2) => {\n const val = meta[key2];\n if (key2 === \"rel\" && (val === \"stylesheet\" || val === \"canonical\" || val === \"modulepreload\" || val === \"prerender\" || val === \"preload\" || val === \"prefetch\"))\n return;\n if (key2 === \"href\") {\n if (val.includes(\"javascript:\") || val.includes(\"data:\"))\n return;\n link[key2] = val;\n } else if (val) {\n link[key2] = val;\n }\n });\n return link;\n }).filter((link) => Object.keys(link).length > 1 && !!link.rel);\n }\n break;\n case \"noscript\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((meta) => {\n const noscript = acceptDataAttrs(meta);\n WhitelistAttributes.noscript.forEach((key2) => {\n if (meta[key2])\n noscript[key2] = meta[key2];\n });\n return noscript;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n case \"script\":\n if (Array.isArray(tagValue)) {\n filtered[key] = tagValue.map((script) => {\n const safeScript = acceptDataAttrs(script);\n WhitelistAttributes.script.forEach((s) => {\n if (script[s]) {\n if (s === \"textContent\") {\n try {\n const jsonVal = typeof script[s] === \"string\" ? JSON.parse(script[s]) : script[s];\n safeScript[s] = JSON.stringify(jsonVal, null, 0);\n } catch (e) {\n }\n } else {\n safeScript[s] = script[s];\n }\n }\n });\n return safeScript;\n }).filter((meta) => Object.keys(meta).length > 0);\n }\n break;\n }\n });\n return filtered;\n}\n\nconst NetworkEvents = /* @__PURE__ */ new Set([\"onload\", \"onerror\", \"onabort\", \"onprogress\", \"onloadstart\"]);\nconst ScriptNetworkEvents = /* @__PURE__ */ new Set([\"onload\", \"onerror\"]);\n\nconst TAG_WEIGHTS = {\n // tags\n base: -10,\n title: 10\n};\nconst TAG_ALIASES = {\n // relative scores to their default values\n critical: -80,\n high: -10,\n low: 20\n};\nfunction tagWeight(tag) {\n const priority = tag.tagPriority;\n if (typeof priority === \"number\")\n return priority;\n let weight = 100;\n if (tag.tag === \"meta\") {\n if (tag.props[\"http-equiv\"] === \"content-security-policy\")\n weight = -30;\n else if (tag.props.charset)\n weight = -20;\n else if (tag.props.name === \"viewport\")\n weight = -15;\n } else if (tag.tag === \"link\" && tag.props.rel === \"preconnect\") {\n weight = 20;\n } else if (tag.tag in TAG_WEIGHTS) {\n weight = TAG_WEIGHTS[tag.tag];\n }\n if (priority && priority in TAG_ALIASES) {\n return weight + TAG_ALIASES[priority];\n }\n return weight;\n}\nconst SortModifiers = [{ prefix: \"before:\", offset: -1 }, { prefix: \"after:\", offset: 1 }];\n\nconst allowedMetaProperties = [\"name\", \"property\", \"http-equiv\"];\nfunction tagDedupeKey(tag) {\n const { props, tag: tagName } = tag;\n if (UniqueTags.has(tagName))\n return tagName;\n if (tagName === \"link\" && props.rel === \"canonical\")\n return \"canonical\";\n if (props.charset)\n return \"charset\";\n if (props.id) {\n return `${tagName}:id:${props.id}`;\n }\n for (const n of allowedMetaProperties) {\n if (props[n] !== void 0) {\n return `${tagName}:${n}:${props[n]}`;\n }\n }\n return false;\n}\n\nconst sepSub = \"%separator\";\nfunction sub(p, token) {\n let val;\n if (token === \"s\" || token === \"pageTitle\") {\n val = p.pageTitle;\n } else if (token.includes(\".\")) {\n const dotIndex = token.indexOf(\".\");\n val = p[token.substring(0, dotIndex)]?.[token.substring(dotIndex + 1)];\n } else {\n val = p[token];\n }\n return val !== void 0 ? (val || \"\").replace(/\"/g, '\\\\\"') : void 0;\n}\nconst sepSubRe = new RegExp(`${sepSub}(?:\\\\s*${sepSub})*`, \"g\");\nfunction processTemplateParams(s, p, sep) {\n if (typeof s !== \"string\" || !s.includes(\"%\"))\n return s;\n let decoded = s;\n try {\n decoded = decodeURI(s);\n } catch {\n }\n const tokens = decoded.match(/%\\w+(?:\\.\\w+)?/g);\n if (!tokens) {\n return s;\n }\n const hasSepSub = s.includes(sepSub);\n s = s.replace(/%\\w+(?:\\.\\w+)?/g, (token) => {\n if (token === sepSub || !tokens.includes(token)) {\n return token;\n }\n const re = sub(p, token.slice(1));\n return re !== void 0 ? re : token;\n }).trim();\n if (hasSepSub) {\n if (s.endsWith(sepSub))\n s = s.slice(0, -sepSub.length);\n if (s.startsWith(sepSub))\n s = s.slice(sepSub.length);\n s = s.replace(sepSubRe, sep).trim();\n }\n return s;\n}\n\nfunction resolveTitleTemplate(template, title) {\n if (template == null)\n return title || null;\n if (typeof template === \"function\")\n return template(title);\n return template;\n}\n\nexport { HasElementTags, IsBrowser, NetworkEvents, ScriptNetworkEvents, SelfClosingTags, SortModifiers, TAG_ALIASES, TAG_WEIGHTS, TagConfigKeys, TagEntityBits, TagsWithInnerContent, UniqueTags, ValidHeadTags, asArray$1 as asArray, composableNames, defineHeadPlugin, hashCode, hashTag, normaliseEntryTags, normaliseProps, normaliseStyleClassProps, normaliseTag, packMeta, processTemplateParams, resolveMetaKeyType, resolveMetaKeyValue, resolvePackedMetaObjectValue, resolveTitleTemplate, tagDedupeKey, tagWeight, thenable, unpackMeta, whitelistSafeInput };\n",
82
- "import { TagsWithInnerContent, SelfClosingTags } from '@unhead/shared';\n\nfunction encodeAttribute(value) {\n return String(value).replace(/\"/g, \"&quot;\");\n}\nfunction propsToString(props) {\n let attrs = \"\";\n for (const key in props) {\n if (!Object.prototype.hasOwnProperty.call(props, key)) {\n continue;\n }\n const value = props[key];\n if (value !== false && value !== null) {\n attrs += value === true ? ` ${key}` : ` ${key}=\"${encodeAttribute(value)}\"`;\n }\n }\n return attrs;\n}\n\nfunction ssrRenderTags(tags, options) {\n const schema = { htmlAttrs: {}, bodyAttrs: {}, tags: { head: \"\", bodyClose: \"\", bodyOpen: \"\" } };\n const lineBreaks = !options?.omitLineBreaks ? \"\\n\" : \"\";\n for (const tag of tags) {\n if (Object.keys(tag.props).length === 0 && !tag.innerHTML && !tag.textContent) {\n continue;\n }\n if (tag.tag === \"htmlAttrs\" || tag.tag === \"bodyAttrs\") {\n Object.assign(schema[tag.tag], tag.props);\n continue;\n }\n const s = tagToString(tag);\n const tagPosition = tag.tagPosition || \"head\";\n schema.tags[tagPosition] += schema.tags[tagPosition] ? `${lineBreaks}${s}` : s;\n }\n return {\n headTags: schema.tags.head,\n bodyTags: schema.tags.bodyClose,\n bodyTagsOpen: schema.tags.bodyOpen,\n htmlAttrs: propsToString(schema.htmlAttrs),\n bodyAttrs: propsToString(schema.bodyAttrs)\n };\n}\n\nfunction escapeHtml(str) {\n return str.replace(/[&<>\"'/]/g, (char) => {\n switch (char) {\n case \"&\":\n return \"&amp;\";\n case \"<\":\n return \"&lt;\";\n case \">\":\n return \"&gt;\";\n case '\"':\n return \"&quot;\";\n case \"'\":\n return \"&#x27;\";\n case \"/\":\n return \"&#x2F;\";\n default:\n return char;\n }\n });\n}\nfunction tagToString(tag) {\n const attrs = propsToString(tag.props);\n const openTag = `<${tag.tag}${attrs}>`;\n if (!TagsWithInnerContent.has(tag.tag))\n return SelfClosingTags.has(tag.tag) ? openTag : `${openTag}</${tag.tag}>`;\n let content = String(tag.innerHTML || \"\");\n if (tag.textContent)\n content = escapeHtml(String(tag.textContent));\n return SelfClosingTags.has(tag.tag) ? openTag : `${openTag}${content}</${tag.tag}>`;\n}\n\nasync function renderSSRHead(head, options) {\n const beforeRenderCtx = { shouldRender: true };\n await head.hooks.callHook(\"ssr:beforeRender\", beforeRenderCtx);\n if (!beforeRenderCtx.shouldRender) {\n return {\n headTags: \"\",\n bodyTags: \"\",\n bodyTagsOpen: \"\",\n htmlAttrs: \"\",\n bodyAttrs: \"\"\n };\n }\n const ctx = { tags: await head.resolveTags() };\n await head.hooks.callHook(\"ssr:render\", ctx);\n const html = ssrRenderTags(ctx.tags, options);\n const renderCtx = { tags: ctx.tags, html };\n await head.hooks.callHook(\"ssr:rendered\", renderCtx);\n return renderCtx.html;\n}\n\nexport { escapeHtml, propsToString, renderSSRHead, ssrRenderTags, tagToString };\n",
83
- "import { defineComponent, ref, onBeforeUnmount, watchEffect } from 'vue';\nimport { i as injectHead, V as Vue3 } from './shared/vue.f49591ad.mjs';\nimport 'unhead';\nimport '@unhead/shared';\n\nfunction addVNodeToHeadObj(node, obj) {\n const nodeType = !Vue3 ? node.tag : node.type;\n const type = nodeType === \"html\" ? \"htmlAttrs\" : nodeType === \"body\" ? \"bodyAttrs\" : nodeType;\n if (typeof type !== \"string\" || !(type in obj))\n return;\n const nodeData = !Vue3 ? node.data : node;\n const props = (!Vue3 ? nodeData.attrs : node.props) || {};\n if (!Vue3) {\n if (nodeData.staticClass)\n props.class = nodeData.staticClass;\n if (nodeData.staticStyle)\n props.style = Object.entries(nodeData.staticStyle).map(([key, value]) => `${key}:${value}`).join(\";\");\n }\n if (node.children) {\n const childrenAttr = !Vue3 ? \"text\" : \"children\";\n props.children = Array.isArray(node.children) ? node.children[0][childrenAttr] : node[childrenAttr];\n }\n if (Array.isArray(obj[type]))\n obj[type].push(props);\n else if (type === \"title\")\n obj.title = props.children;\n else\n obj[type] = props;\n}\nfunction vnodesToHeadObj(nodes) {\n const obj = {\n title: void 0,\n htmlAttrs: void 0,\n bodyAttrs: void 0,\n base: void 0,\n meta: [],\n link: [],\n style: [],\n script: [],\n noscript: []\n };\n for (const node of nodes) {\n if (typeof node.type === \"symbol\" && Array.isArray(node.children)) {\n for (const childNode of node.children)\n addVNodeToHeadObj(childNode, obj);\n } else {\n addVNodeToHeadObj(node, obj);\n }\n }\n return obj;\n}\nconst Head = /* @__PURE__ */ defineComponent({\n name: \"Head\",\n setup(_, { slots }) {\n const head = injectHead();\n const obj = ref({});\n const entry = head.push(obj);\n onBeforeUnmount(() => {\n entry.dispose();\n });\n return () => {\n watchEffect(() => {\n if (!slots.default)\n return;\n entry.patch(vnodesToHeadObj(slots.default()));\n });\n return null;\n };\n }\n});\n\nexport { Head };\n",
84
- "import { createHead as createHead$1, Vue2ProvideUnheadPlugin } from '@unhead/vue';\nexport { Vue2ProvideUnheadPlugin, VueHeadMixin, createHeadCore, injectHead, unheadVueComposablesImports, useHead, useHeadSafe, useSeoMeta, useServerHead, useServerHeadSafe, useServerSeoMeta } from '@unhead/vue';\nimport { polyfillAsVueUseHead } from '@unhead/vue/polyfill';\nimport { renderSSRHead } from '@unhead/ssr';\nexport { Head } from '@unhead/vue/components';\n\nfunction createHead(initHeadObject, options) {\n const unhead = createHead$1(options || {});\n const legacyHead = polyfillAsVueUseHead(unhead);\n if (initHeadObject)\n legacyHead.push(initHeadObject);\n return legacyHead;\n}\n\nconst HeadVuePlugin = Vue2ProvideUnheadPlugin;\nconst renderHeadToString = (head) => renderSSRHead(head.unhead);\n\nexport { HeadVuePlugin, createHead, renderHeadToString };\n",
85
- "const BYTE_UNITS = [\n\t'B',\n\t'kB',\n\t'MB',\n\t'GB',\n\t'TB',\n\t'PB',\n\t'EB',\n\t'ZB',\n\t'YB',\n];\n\nconst BIBYTE_UNITS = [\n\t'B',\n\t'KiB',\n\t'MiB',\n\t'GiB',\n\t'TiB',\n\t'PiB',\n\t'EiB',\n\t'ZiB',\n\t'YiB',\n];\n\nconst BIT_UNITS = [\n\t'b',\n\t'kbit',\n\t'Mbit',\n\t'Gbit',\n\t'Tbit',\n\t'Pbit',\n\t'Ebit',\n\t'Zbit',\n\t'Ybit',\n];\n\nconst BIBIT_UNITS = [\n\t'b',\n\t'kibit',\n\t'Mibit',\n\t'Gibit',\n\t'Tibit',\n\t'Pibit',\n\t'Eibit',\n\t'Zibit',\n\t'Yibit',\n];\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number, locale, options) => {\n\tlet result = number;\n\tif (typeof locale === 'string' || Array.isArray(locale)) {\n\t\tresult = number.toLocaleString(locale, options);\n\t} else if (locale === true || options !== undefined) {\n\t\tresult = number.toLocaleString(undefined, options);\n\t}\n\n\treturn result;\n};\n\nexport default function prettyBytes(number, options) {\n\tif (!Number.isFinite(number)) {\n\t\tthrow new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n\t}\n\n\toptions = {\n\t\tbits: false,\n\t\tbinary: false,\n\t\tspace: true,\n\t\t...options,\n\t};\n\n\tconst UNITS = options.bits\n\t\t? (options.binary ? BIBIT_UNITS : BIT_UNITS)\n\t\t: (options.binary ? BIBYTE_UNITS : BYTE_UNITS);\n\n\tconst separator = options.space ? ' ' : '';\n\n\tif (options.signed && number === 0) {\n\t\treturn ` 0${separator}${UNITS[0]}`;\n\t}\n\n\tconst isNegative = number < 0;\n\tconst prefix = isNegative ? '-' : (options.signed ? '+' : '');\n\n\tif (isNegative) {\n\t\tnumber = -number;\n\t}\n\n\tlet localeOptions;\n\n\tif (options.minimumFractionDigits !== undefined) {\n\t\tlocaleOptions = {minimumFractionDigits: options.minimumFractionDigits};\n\t}\n\n\tif (options.maximumFractionDigits !== undefined) {\n\t\tlocaleOptions = {maximumFractionDigits: options.maximumFractionDigits, ...localeOptions};\n\t}\n\n\tif (number < 1) {\n\t\tconst numberString = toLocaleString(number, options.locale, localeOptions);\n\t\treturn prefix + numberString + separator + UNITS[0];\n\t}\n\n\tconst exponent = Math.min(Math.floor(options.binary ? Math.log(number) / Math.log(1024) : Math.log10(number) / 3), UNITS.length - 1);\n\tnumber /= (options.binary ? 1024 : 1000) ** exponent;\n\n\tif (!localeOptions) {\n\t\tnumber = number.toPrecision(3);\n\t}\n\n\tconst numberString = toLocaleString(Number(number), options.locale, localeOptions);\n\n\tconst unit = UNITS[exponent];\n\n\treturn prefix + numberString + separator + unit;\n}\n"
86
- ],
87
- "mappings": "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",
88
- "debugId": "464D0F0AF67A140164756E2164756E21",
89
- "names": []
90
- }