{"version":3,"file":"js/chunk-vendors.js","mappings":"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","sources":["webpack://vueapp/./node_modules/core-js/internals/a-callable.js","webpack://vueapp/./node_modules/core-js/internals/add-to-unscopables.js","webpack://vueapp/./node_modules/core-js/internals/an-object.js","webpack://vueapp/./node_modules/core-js/internals/array-includes.js","webpack://vueapp/./node_modules/core-js/internals/classof-raw.js","webpack://vueapp/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://vueapp/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://vueapp/./node_modules/core-js/internals/create-property-descriptor.js","webpack://vueapp/./node_modules/core-js/internals/define-built-in.js","webpack://vueapp/./node_modules/core-js/internals/define-global-property.js","webpack://vueapp/./node_modules/core-js/internals/descriptors.js","webpack://vueapp/./node_modules/core-js/internals/document-create-element.js","webpack://vueapp/./node_modules/core-js/internals/engine-user-agent.js","webpack://vueapp/./node_modules/core-js/internals/engine-v8-version.js","webpack://vueapp/./node_modules/core-js/internals/enum-bug-keys.js","webpack://vueapp/./node_modules/core-js/internals/export.js","webpack://vueapp/./node_modules/core-js/internals/fails.js","webpack://vueapp/./node_modules/core-js/internals/function-bind-native.js","webpack://vueapp/./node_modules/core-js/internals/function-call.js","webpack://vueapp/./node_modules/core-js/internals/function-name.js","webpack://vueapp/./node_modules/core-js/internals/function-uncurry-this.js","webpack://vueapp/./node_modules/core-js/internals/get-built-in.js","webpack://vueapp/./node_modules/core-js/internals/get-method.js","webpack://vueapp/./node_modules/core-js/internals/global.js","webpack://vueapp/./node_modules/core-js/internals/has-own-property.js","webpack://vueapp/./node_modules/core-js/internals/hidden-keys.js","webpack://vueapp/./node_modules/core-js/internals/html.js","webpack://vueapp/./node_modules/core-js/internals/ie8-dom-define.js","webpack://vueapp/./node_modules/core-js/internals/indexed-object.js","webpack://vueapp/./node_modules/core-js/internals/inspect-source.js","webpack://vueapp/./node_modules/core-js/internals/internal-state.js","webpack://vueapp/./node_modules/core-js/internals/is-callable.js","webpack://vueapp/./node_modules/core-js/internals/is-forced.js","webpack://vueapp/./node_modules/core-js/internals/is-object.js","webpack://vueapp/./node_modules/core-js/internals/is-pure.js","webpack://vueapp/./node_modules/core-js/internals/is-symbol.js","webpack://vueapp/./node_modules/core-js/internals/length-of-array-like.js","webpack://vueapp/./node_modules/core-js/internals/make-built-in.js","webpack://vueapp/./node_modules/core-js/internals/math-trunc.js","webpack://vueapp/./node_modules/core-js/internals/native-symbol.js","webpack://vueapp/./node_modules/core-js/internals/native-weak-map.js","webpack://vueapp/./node_modules/core-js/internals/object-create.js","webpack://vueapp/./node_modules/core-js/internals/object-define-properties.js","webpack://vueapp/./node_modules/core-js/internals/object-define-property.js","webpack://vueapp/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://vueapp/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://vueapp/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://vueapp/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://vueapp/./node_modules/core-js/internals/object-keys-internal.js","webpack://vueapp/./node_modules/core-js/internals/object-keys.js","webpack://vueapp/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://vueapp/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://vueapp/./node_modules/core-js/internals/own-keys.js","webpack://vueapp/./node_modules/core-js/internals/require-object-coercible.js","webpack://vueapp/./node_modules/core-js/internals/shared-key.js","webpack://vueapp/./node_modules/core-js/internals/shared-store.js","webpack://vueapp/./node_modules/core-js/internals/shared.js","webpack://vueapp/./node_modules/core-js/internals/to-absolute-index.js","webpack://vueapp/./node_modules/core-js/internals/to-indexed-object.js","webpack://vueapp/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://vueapp/./node_modules/core-js/internals/to-length.js","webpack://vueapp/./node_modules/core-js/internals/to-object.js","webpack://vueapp/./node_modules/core-js/internals/to-primitive.js","webpack://vueapp/./node_modules/core-js/internals/to-property-key.js","webpack://vueapp/./node_modules/core-js/internals/try-to-string.js","webpack://vueapp/./node_modules/core-js/internals/uid.js","webpack://vueapp/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://vueapp/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://vueapp/./node_modules/core-js/internals/well-known-symbol.js","webpack://vueapp/./node_modules/core-js/modules/es.array.includes.js","webpack://vueapp/./node_modules/vue-loader/dist/exportHelper.js","webpack://vueapp/./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack://vueapp/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://vueapp/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://vueapp/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://vueapp/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://vueapp/./node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js","webpack://vueapp/./node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js","webpack://vueapp/./node_modules/vue/dist/vue.esm-bundler.js","webpack://vueapp/./node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","webpack://vueapp/./node_modules/vue3-perfect-scrollbar/dist/vue3-perfect-scrollbar.esm.js"],"sourcesContent":["var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n defineProperty(value, 'name', { value: name, configurable: true });\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.22.8',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.22.8/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","/*!\n * vue-router v4.0.16\n * (c) 2022 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst PolySymbol = (name) => \r\n// vr = vue router\r\nhasSymbol\r\n ? Symbol((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' + name : name)\r\n : ((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' : '_vr_') + name;\r\n// rvlm = Router View Location Matched\r\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : 'rvlm');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : 'rvd');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router' : 'r');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'route location' : 'rl');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location' : 'rvl');\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module');\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = Array.isArray(value) ? value.map(fn) : fn(value);\r\n }\r\n return newParams;\r\n}\r\nconst noop = () => { };\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms an URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n const searchPos = location.indexOf('?');\r\n const hashPos = location.indexOf('#', searchPos > -1 ? searchPos : 0);\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n const query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non\r\n * case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n const aLastIndex = a.matched.length - 1;\r\n const bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (const key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return Array.isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : Array.isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return Array.isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // can't go below zero\r\n if (position === 1 || segment === '.')\r\n continue;\r\n if (segment === '..')\r\n position--;\r\n // found something that is not relative path\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n const positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n const foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param location -\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // setup the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // setup the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n window.addEventListener('beforeunload', beforeUnloadListener);\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/router/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/router/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n base = normalizeBase(base);\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (const callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g.\r\n * `file://`) or when configuring a server to handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname +\r\n * location.search` If there is a `` tag in the `head`, its value will be\r\n * ignored in favor of this parameter **but note it affects all the\r\n * history.pushState() calls**, meaning that if you use a `` tag, it's\r\n * `href` value **has to match this parameter** (ignoring anything after the\r\n * `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (!base.includes('#'))\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : 'nf');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n const score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub segment /:a-other-:b\r\n let subSegmentScore = 40 /* Segment */ +\r\n (options.sensitive ? 0.25 /* BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* Static */;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (Array.isArray(param) && !repeatable)\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n const text = Array.isArray(param) ? param.join('/') : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static and there are more segments, we don't need to\r\n // care about the optional param\r\n if (segment.length < 2 && segments.length > 1) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n return path;\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n *\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* Static */ + 40 /* Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* Static */ + 40 /* Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n *\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n if (Math.abs(bScore.length - aScore.length) === 1) {\r\n if (isLastScoreNegative(aScore))\r\n return 1;\r\n if (isLastScoreNegative(bScore))\r\n return -1;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\r\n/**\r\n * This allows detecting splats at the end of a path: /home/:id(.*)*\r\n *\r\n * @param score - score to check\r\n * @returns true if the last entry is negative\r\n */\r\nfunction isLastScoreNegative(score) {\r\n const last = score[score.length - 1];\r\n return score.length > 0 && last[last.length - 1] < 0;\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* Static */) {\r\n segment.push({\r\n type: 0 /* Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* Param */ ||\r\n state === 2 /* ParamRegExp */ ||\r\n state === 3 /* ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* Param */:\r\n if (char === '(') {\r\n state = 2 /* ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n const isRootAdd = !originalRecord;\r\n const mainNormalizedRecord = normalizeRouteRecord(record);\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n const { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n const parentPath = parent.record.path;\r\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object before hand so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if ('children' in mainNormalizedRecord) {\r\n const children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other alias (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n insertMatcher(matcher);\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n const index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0 &&\r\n // Adding children with empty path should still appear before the parent\r\n // https://github.com/vuejs/router/issues/1124\r\n (matcher.record.path !== matchers[i].record.path ||\r\n !isRecordChildOf(matcher, matchers[i])))\r\n i++;\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), location.params);\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/router.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // TODO: dev warning of unused params if provided\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n const newParams = {};\r\n for (const key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || {}\r\n : { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (const name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n const options = {};\r\n for (const key in defaults) {\r\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (const key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n for (const key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (const key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" should have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\r\nfunction isRecordChildOf(record, parent) {\r\n return parent.children.some(child => child === record || isRecordChildOf(record, child));\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving unencoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!Array.isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n const values = Array.isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (const key in query) {\r\n const value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = Array.isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false)\r\n reject(createRouterError(4 /* NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function')\r\n enterCallbackArray.push(valid);\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n // TODO: test me!\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-expect-error: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n const promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n *\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e)) {\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\r\n // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\r\n }\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\r\n }\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n compatConfig: { MODE: 3 },\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n useLink,\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\r\n };\r\n },\r\n});\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (const key in inner) {\r\n const innerValue = inner[key];\r\n const outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!Array.isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n // Better compat for @vue/compat users\r\n // https://github.com/vuejs/router/issues/1315\r\n compatConfig: { MODE: 3 },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const depth = inject(viewDepthKey, 0);\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth]);\r\n provide(viewDepthKey, depth + 1);\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[props.name];\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[props.name];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n isBrowser &&\r\n component.ref) {\r\n // TODO: can display if it's an alias, its props\r\n const info = {\r\n depth,\r\n name: matchedRoute.name,\r\n path: matchedRoute.path,\r\n meta: matchedRoute.meta,\r\n };\r\n const internalInstances = Array.isArray(component.ref)\r\n ? component.ref.map(r => r.i)\r\n : [component.ref.i];\r\n internalInstances.forEach(instance => {\r\n // @ts-expect-error\r\n instance.__vrv_devtools = info;\r\n });\r\n }\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\r\n}\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with & \r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(` can no longer be used directly inside or .\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `\\n` +\r\n ` <${comp}>\\n` +\r\n ` \\n` +\r\n ` ${comp}>\\n` +\r\n ``);\r\n }\r\n}\n\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://router.vuejs.org',\r\n logo: 'https://router.vuejs.org/logo.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active and display tags on router views\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (componentInstance.__vrv_devtools) {\r\n const info = componentInstance.__vrv_devtools;\r\n node.tags.push({\r\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\r\n textColor: 0,\r\n tooltip: 'This component is rendered by <router-view>',\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n // if multiple useLink are used\r\n if (Array.isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\r\n });\r\n });\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError((error, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: api.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: api.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n subtitle: to.fullPath,\r\n time: api.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: 'redirect: ' +\r\n (typeof record.redirect === 'string' ? record.redirect : 'Object'),\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = \r\n // @ts-expect-error: intentionally avoid the type check\r\n applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n const recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n // @ts-expect-error: the type is never\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${\r\n // @ts-expect-error: the type is never\r\n rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\r\n // pass encoded values to the matcher so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(rawLocation.params),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // decoding them) the matcher might have merged current location params so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n const href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : (rawLocation.query || {}),\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n params: to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? // navigation redirects still mark the router as ready\r\n isNavigationFailure(error, 2 /* NAVIGATION_GUARD_REDIRECT */)\r\n ? error\r\n : markAsReady(error) // also returns the error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\r\n redirectedFrom._count + 1\r\n : 1) > 10) {\r\n warn(`Detected an infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign(locationAsObject(failure.to), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && !from.matched.includes(record)) {\r\n if (Array.isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list())\r\n guard(to, from, failure);\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n // avoid setting up listeners twice due to an invalid first navigation\r\n if (removeHistoryListener)\r\n return;\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n // cannot be a redirect route because it was in history\r\n const toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* NAVIGATION_ABORTED */ | 8 /* NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is not guarantee for\r\n // it to work on every browser. So Instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ |\r\n 16 /* NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\r\n .catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta)\r\n routerHistory.go(-info.delta, false);\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error, toLocation, from);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure) {\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ | 16 /* NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n function markAsReady(err) {\r\n if (!ready) {\r\n // still not ready if an error happened\r\n ready = !err;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n return err;\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(err => triggerError(err, to, from));\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && removeHistoryListener();\r\n removeHistoryListener = null;\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n return router;\r\n}\r\nfunction runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n * IMPORTANT: all calls of this function must be prefixed with\r\n * \\/\\*#\\_\\_PURE\\_\\_\\*\\/\r\n * So that rollup can tree-shake them if necessary.\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n const map = Object.create(null);\r\n const list = str.split(',');\r\n for (let i = 0; i < list.length; i++) {\r\n map[list[i]] = true;\r\n }\r\n return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val];\r\n}\n\n/**\r\n * dev only flag -> name mapping\r\n */\r\nconst PatchFlagNames = {\r\n [1 /* TEXT */]: `TEXT`,\r\n [2 /* CLASS */]: `CLASS`,\r\n [4 /* STYLE */]: `STYLE`,\r\n [8 /* PROPS */]: `PROPS`,\r\n [16 /* FULL_PROPS */]: `FULL_PROPS`,\r\n [32 /* HYDRATE_EVENTS */]: `HYDRATE_EVENTS`,\r\n [64 /* STABLE_FRAGMENT */]: `STABLE_FRAGMENT`,\r\n [128 /* KEYED_FRAGMENT */]: `KEYED_FRAGMENT`,\r\n [256 /* UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`,\r\n [512 /* NEED_PATCH */]: `NEED_PATCH`,\r\n [1024 /* DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`,\r\n [2048 /* DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`,\r\n [-1 /* HOISTED */]: `HOISTED`,\r\n [-2 /* BAIL */]: `BAIL`\r\n};\n\n/**\r\n * Dev only\r\n */\r\nconst slotFlagsText = {\r\n [1 /* STABLE */]: 'STABLE',\r\n [2 /* DYNAMIC */]: 'DYNAMIC',\r\n [3 /* FORWARDED */]: 'FORWARDED'\r\n};\n\nconst GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' +\r\n 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' +\r\n 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt';\r\nconst isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED);\n\nconst range = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n // Split the content into individual lines but capture the newline sequence\r\n // that separated each line. This is important because the actual sequence is\r\n // needed to properly take into account the full line length for offset\r\n // comparison\r\n let lines = source.split(/(\\r?\\n)/);\r\n // Separate the lines and newline sequences into separate arrays for easier referencing\r\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\r\n lines = lines.filter((_, idx) => idx % 2 === 0);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count +=\r\n lines[i].length +\r\n ((newlineSequences[i] && newlineSequences[i].length) || 0);\r\n if (count >= start) {\r\n for (let j = i - range; j <= i + range || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - (lineLength + newLineSeqLength));\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + newLineSeqLength;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * On the client we only need to offer special cases for boolean attributes that\r\n * have different names from their corresponding dom properties:\r\n * - itemscope -> N/A\r\n * - allowfullscreen -> allowFullscreen\r\n * - formnovalidate -> formNoValidate\r\n * - ismap -> isMap\r\n * - nomodule -> noModule\r\n * - novalidate -> noValidate\r\n * - readonly -> readOnly\r\n */\r\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\r\nconst isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);\r\n/**\r\n * The full list is needed during SSR to produce the correct initial markup.\r\n */\r\nconst isBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs +\r\n `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,` +\r\n `loop,open,required,reversed,scoped,seamless,` +\r\n `checked,muted,multiple,selected`);\r\n/**\r\n * Boolean attributes should be included if the value is truthy or ''.\r\n * e.g. `