File manager - Edit - /home/web/vm-3fadc827.na4u.ru/www/bitrix/modules/ui/install/js/ui/vue3/router/dist/vue-router.bundle.js.map
Back
{"version":3,"file":"vue-router.bundle.js","sources":["../src/vue-router.js"],"sourcesContent":["/*!\n * vue-router v4.0.12\n * (c) 2021 Eduardo San Martin Morote\n * @license MIT\n *\n * @source: https://unpkg.com/vue-router@4.0.12/dist/vue-router.esm-browser.js\n */\n\n/**\n * Modify list for integration with Bitrix Framework:\n * - remove import '@vue/devtools-api', add function setupDevtoolsPlugin\n */\n\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'ui.vue3';\n\nfunction getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nfunction getTarget() {\n // @ts-ignore\n return typeof navigator !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n}\n\nconst HOOK_SETUP = 'devtools-plugin:setup';\n\nfunction setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const hook = getDevtoolsGlobalHook();\n if (hook) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const target = getTarget();\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor,\n setupFn\n });\n }\n}\n\n// origin-start\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nconst PolySymbol = (name) =>\n// vr = vue router\n hasSymbol\n ? Symbol('[vue-router]: ' + name )\n : ('[vue-router]: ' ) + name;\n// rvlm = Router View Location Matched\n/**\n * RouteRecord being rendered by the closest ancestor Router View. Used for\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n * Location Matched\n *\n * @internal\n */\nconst matchedRouteKey = /*#__PURE__*/ PolySymbol('router view location matched' );\n/**\n * Allows overriding the router view depth to control which component in\n * `matched` is rendered. rvd stands for Router View Depth\n *\n * @internal\n */\nconst viewDepthKey = /*#__PURE__*/ PolySymbol('router view depth' );\n/**\n * Allows overriding the router instance returned by `useRouter` in tests. r\n * stands for router\n *\n * @internal\n */\nconst routerKey = /*#__PURE__*/ PolySymbol('router' );\n/**\n * Allows overriding the current route returned by `useRoute` in tests. rl\n * stands for route location\n *\n * @internal\n */\nconst routeLocationKey = /*#__PURE__*/ PolySymbol('route location' );\n/**\n * Allows overriding the current route used by router-view. Internally this is\n * used when the `route` prop is passed.\n *\n * @internal\n */\nconst routerViewLocationKey = /*#__PURE__*/ PolySymbol('router view location' );\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module');\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n const newParams = {};\n for (const key in params) {\n const value = params[key];\n newParams[key] = Array.isArray(value) ? value.map(fn) : fn(value);\n }\n return newParams;\n}\nconst noop = () => { };\n\nfunction warn(msg) {\n // avoid using ...args as it breaks in older Edge builds\n const args = Array.from(arguments).slice(1);\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\n/**\n * Transforms an URI into a normalized history location\n *\n * @param parseQuery\n * @param location - URI to normalize\n * @param currentLocation - current absolute location. Allows resolving relative\n * paths. Must start with `/`. Defaults to `/`\n * @returns a normalized history location\n */\nfunction parseURL(parseQuery, location, currentLocation = '/') {\n let path, query = {}, searchString = '', hash = '';\n // Could use URL and URLSearchParams but IE 11 doesn't support it\n const searchPos = location.indexOf('?');\n const hashPos = location.indexOf('#', searchPos > -1 ? searchPos : 0);\n if (searchPos > -1) {\n path = location.slice(0, searchPos);\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\n query = parseQuery(searchString);\n }\n if (hashPos > -1) {\n path = path || location.slice(0, hashPos);\n // keep the # character\n hash = location.slice(hashPos, location.length);\n }\n // no search and no query\n path = resolveRelativePath(path != null ? path : location, currentLocation);\n // empty path means a relative query or hash `?foo=f`, `#thing`\n return {\n fullPath: path + (searchString && '?') + searchString + hash,\n path,\n query,\n hash,\n };\n}\n/**\n * Stringifies a URL object\n *\n * @param stringifyQuery\n * @param location\n */\nfunction stringifyURL(stringifyQuery, location) {\n const query = location.query ? stringifyQuery(location.query) : '';\n return location.path + (query && '?') + query + (location.hash || '');\n}\n/**\n * Strips off the base from the beginning of a location.pathname in a non\n * case-sensitive way.\n *\n * @param pathname - location.pathname\n * @param base - base to strip off\n */\nfunction stripBase(pathname, base) {\n // no base or base is not found at the beginning\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\n return pathname;\n return pathname.slice(base.length) || '/';\n}\n/**\n * Checks if two RouteLocation are equal. This means that both locations are\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\n * parameters and `hash` are the same\n *\n * @param a - first {@link RouteLocation}\n * @param b - second {@link RouteLocation}\n */\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n const aLastIndex = a.matched.length - 1;\n const bLastIndex = b.matched.length - 1;\n return (aLastIndex > -1 &&\n aLastIndex === bLastIndex &&\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\n isSameRouteLocationParams(a.params, b.params) &&\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\n a.hash === b.hash);\n}\n/**\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\n * considered equal to the `RouteRecord` they are aliasing.\n *\n * @param a - first {@link RouteRecord}\n * @param b - second {@link RouteRecord}\n */\nfunction isSameRouteRecord(a, b) {\n // since the original record has an undefined value for aliasOf\n // but all aliases point to the original record, this will always compare\n // the original record\n return (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n if (Object.keys(a).length !== Object.keys(b).length)\n return false;\n for (const key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\n return false;\n }\n return true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n return Array.isArray(a)\n ? isEquivalentArray(a, b)\n : Array.isArray(b)\n ? isEquivalentArray(b, a)\n : a === b;\n}\n/**\n * Check if two arrays are the same or if an array with one single entry is the\n * same as another primitive value. Used to check query and parameters\n *\n * @param a - array of values\n * @param b - array of values or a single value\n */\nfunction isEquivalentArray(a, b) {\n return Array.isArray(b)\n ? a.length === b.length && a.every((value, i) => value === b[i])\n : a.length === 1 && a[0] === b;\n}\n/**\n * Resolves a relative path that starts with `.`.\n *\n * @param to - path location we are resolving\n * @param from - currentLocation.path, should start with `/`\n */\nfunction resolveRelativePath(to, from) {\n if (to.startsWith('/'))\n return to;\n if (!from.startsWith('/')) {\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n return to;\n }\n if (!to)\n return from;\n const fromSegments = from.split('/');\n const toSegments = to.split('/');\n let position = fromSegments.length - 1;\n let toPosition;\n let segment;\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n segment = toSegments[toPosition];\n // can't go below zero\n if (position === 1 || segment === '.')\n continue;\n if (segment === '..')\n position--;\n // found something that is not relative path\n else\n break;\n }\n return (fromSegments.slice(0, position).join('/') +\n '/' +\n toSegments\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\n .join('/'));\n}\n\nvar NavigationType;\n(function (NavigationType) {\n NavigationType[\"pop\"] = \"pop\";\n NavigationType[\"push\"] = \"push\";\n})(NavigationType || (NavigationType = {}));\nvar NavigationDirection;\n(function (NavigationDirection) {\n NavigationDirection[\"back\"] = \"back\";\n NavigationDirection[\"forward\"] = \"forward\";\n NavigationDirection[\"unknown\"] = \"\";\n})(NavigationDirection || (NavigationDirection = {}));\n/**\n * Starting location for Histories\n */\nconst START = '';\n// Generic utils\n/**\n * Normalizes a base by removing any trailing slash and reading the base tag if\n * present.\n *\n * @param base - base to normalize\n */\nfunction normalizeBase(base) {\n if (!base) {\n if (isBrowser) {\n // respect <base> tag\n const baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\n }\n else {\n base = '/';\n }\n }\n // ensure leading slash when it was removed by the regex above avoid leading\n // slash with hash because the file could be read from the disk like file://\n // and the leading slash would cause problems\n if (base[0] !== '/' && base[0] !== '#')\n base = '/' + base;\n // remove the trailing slash so all other method can just do `base + fullPath`\n // to build an href\n return removeTrailingSlash(base);\n}\n// remove any character before the hash\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n return base.replace(BEFORE_HASH_RE, '#') + location;\n}\n\nfunction getElementPosition(el, offset) {\n const docRect = document.documentElement.getBoundingClientRect();\n const elRect = el.getBoundingClientRect();\n return {\n behavior: offset.behavior,\n left: elRect.left - docRect.left - (offset.left || 0),\n top: elRect.top - docRect.top - (offset.top || 0),\n };\n}\nconst computeScrollPosition = () => ({\n left: window.pageXOffset,\n top: window.pageYOffset,\n});\nfunction scrollToPosition(position) {\n let scrollToOptions;\n if ('el' in position) {\n const positionEl = position.el;\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\n /**\n * `id`s can accept pretty much any characters, including CSS combinators\n * like `>` or `~`. It's still possible to retrieve elements using\n * `document.getElementById('~')` but it needs to be escaped when using\n * `document.querySelector('#\\\\~')` for it to be valid. The only\n * requirements for `id`s are them to be unique on the page and to not be\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\n * be properly escaped for it to work with `querySelector`. We could check\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\n * would make things inconsistent since they are valid characters for an\n * `id` but would need to be escaped when using `querySelector`, breaking\n * their usage and ending up in no selector returned. Selectors need to be\n * escaped:\n *\n * - `#1-thing` becomes `#\\31 -thing`\n * - `#with~symbols` becomes `#with\\\\~symbols`\n *\n * - More information about the topic can be found at\n * https://mathiasbynens.be/notes/html5-id-class.\n * - Practical example: https://mathiasbynens.be/demo/html5-id\n */\n if (typeof position.el === 'string') {\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\n try {\n const foundEl = document.querySelector(position.el);\n if (isIdSelector && foundEl) {\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n // return to avoid other warnings\n return;\n }\n }\n catch (err) {\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).`);\n // return to avoid other warnings\n return;\n }\n }\n }\n const el = typeof positionEl === 'string'\n ? isIdSelector\n ? document.getElementById(positionEl.slice(1))\n : document.querySelector(positionEl)\n : positionEl;\n if (!el) {\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n return;\n }\n scrollToOptions = getElementPosition(el, position);\n }\n else {\n scrollToOptions = position;\n }\n if ('scrollBehavior' in document.documentElement.style)\n window.scrollTo(scrollToOptions);\n else {\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\n }\n}\nfunction getScrollKey(path, delta) {\n const position = history.state ? history.state.position - delta : -1;\n return position + path;\n}\nconst scrollPositions = new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n scrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n const scroll = scrollPositions.get(key);\n // consume it so it's not used again\n scrollPositions.delete(key);\n return scroll;\n}\n// TODO: RFC about how to save scroll position\n/**\n * ScrollBehavior instance used by the router to compute and restore the scroll\n * position when navigating.\n */\n// export interface ScrollHandler<ScrollPositionEntry extends HistoryStateValue, ScrollPosition extends ScrollPositionEntry> {\n// // returns a scroll position that can be saved in history\n// compute(): ScrollPositionEntry\n// // can take an extended ScrollPositionEntry\n// scroll(position: ScrollPosition): void\n// }\n// export const scrollHandler: ScrollHandler<ScrollPosition> = {\n// compute: computeScroll,\n// scroll: scrollToPosition,\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\n/**\n * Creates a normalized history location from a window.location object\n * @param location -\n */\nfunction createCurrentLocation(base, location) {\n const { pathname, search, hash } = location;\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\n const hashPos = base.indexOf('#');\n if (hashPos > -1) {\n let slicePos = hash.includes(base.slice(hashPos))\n ? base.slice(hashPos).length\n : 1;\n let pathFromHash = hash.slice(slicePos);\n // prepend the starting slash to hash so the url starts with /#\n if (pathFromHash[0] !== '/')\n pathFromHash = '/' + pathFromHash;\n return stripBase(pathFromHash, '');\n }\n const path = stripBase(pathname, base);\n return path + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n let listeners = [];\n let teardowns = [];\n // TODO: should it be a stack? a Dict. Check if the popstate listener\n // can trigger twice\n let pauseState = null;\n const popStateHandler = ({ state, }) => {\n const to = createCurrentLocation(base, location);\n const from = currentLocation.value;\n const fromState = historyState.value;\n let delta = 0;\n if (state) {\n currentLocation.value = to;\n historyState.value = state;\n // ignore the popstate and reset the pauseState\n if (pauseState && pauseState === from) {\n pauseState = null;\n return;\n }\n delta = fromState ? state.position - fromState.position : 0;\n }\n else {\n replace(to);\n }\n // console.log({ deltaFromCurrent })\n // Here we could also revert the navigation by calling history.go(-delta)\n // this listener will have to be adapted to not trigger again and to wait for the url\n // to be updated before triggering the listeners. Some kind of validation function would also\n // need to be passed to the listeners so the navigation can be accepted\n // call all listeners\n listeners.forEach(listener => {\n listener(currentLocation.value, from, {\n delta,\n type: NavigationType.pop,\n direction: delta\n ? delta > 0\n ? NavigationDirection.forward\n : NavigationDirection.back\n : NavigationDirection.unknown,\n });\n });\n };\n function pauseListeners() {\n pauseState = currentLocation.value;\n }\n function listen(callback) {\n // setup the listener and prepare teardown callbacks\n listeners.push(callback);\n const teardown = () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n teardowns.push(teardown);\n return teardown;\n }\n function beforeUnloadListener() {\n const { history } = window;\n if (!history.state)\n return;\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\n }\n function destroy() {\n for (const teardown of teardowns)\n teardown();\n teardowns = [];\n window.removeEventListener('popstate', popStateHandler);\n window.removeEventListener('beforeunload', beforeUnloadListener);\n }\n // setup the listeners and prepare teardown callbacks\n window.addEventListener('popstate', popStateHandler);\n window.addEventListener('beforeunload', beforeUnloadListener);\n return {\n pauseListeners,\n listen,\n destroy,\n };\n}\n/**\n * Creates a state object\n */\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n return {\n back,\n current,\n forward,\n replaced,\n position: window.history.length,\n scroll: computeScroll ? computeScrollPosition() : null,\n };\n}\nfunction useHistoryStateNavigation(base) {\n const { history, location } = window;\n // private variables\n const currentLocation = {\n value: createCurrentLocation(base, location),\n };\n const historyState = { value: history.state };\n // build current history entry as this is a fresh navigation\n if (!historyState.value) {\n changeLocation(currentLocation.value, {\n back: null,\n current: currentLocation.value,\n forward: null,\n // the length is off by one, we need to decrease it\n position: history.length - 1,\n replaced: true,\n // don't add a scroll as the user may have an anchor and we want\n // scrollBehavior to be triggered without a saved position\n scroll: null,\n }, true);\n }\n function changeLocation(to, state, replace) {\n /**\n * if a base tag is provided and we are on a normal domain, we have to\n * respect the provided `base` attribute because pushState() will use it and\n * potentially erase anything before the `#` like at\n * https://github.com/vuejs/vue-router-next/issues/685 where a base of\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\n * there is no host, the `<base>` tag makes no sense and if there isn't a\n * base tag we can just use everything after the `#`.\n */\n const hashIndex = base.indexOf('#');\n const url = hashIndex > -1\n ? (location.host && document.querySelector('base')\n ? base\n : base.slice(hashIndex)) + to\n : createBaseLocation() + base + to;\n try {\n // BROWSER QUIRK\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\n historyState.value = state;\n }\n catch (err) {\n {\n warn('Error with push/replace State', err);\n }\n // Force the navigation, this also resets the call count\n location[replace ? 'replace' : 'assign'](url);\n }\n }\n function replace(to, data) {\n const state = assign({}, history.state, buildState(historyState.value.back,\n // keep back and forward entries but override current position\n to, historyState.value.forward, true), data, { position: historyState.value.position });\n changeLocation(to, state, true);\n currentLocation.value = to;\n }\n function push(to, data) {\n // Add to current entry the information of where we are going\n // as well as saving the current position\n const currentState = assign({},\n // use current history state to gracefully handle a wrong call to\n // history.replaceState\n // https://github.com/vuejs/vue-router-next/issues/366\n historyState.value, history.state, {\n forward: to,\n scroll: computeScrollPosition(),\n });\n if (!history.state) {\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` +\n `history.replaceState(history.state, '', url)\\n\\n` +\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\n }\n changeLocation(currentState.current, currentState, true);\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\n changeLocation(to, state, false);\n currentLocation.value = to;\n }\n return {\n location: currentLocation,\n state: historyState,\n push,\n replace,\n };\n}\n/**\n * Creates an HTML5 history. Most common history for single page applications.\n *\n * @param base -\n */\nfunction createWebHistory(base) {\n base = normalizeBase(base);\n const historyNavigation = useHistoryStateNavigation(base);\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n function go(delta, triggerListeners = true) {\n if (!triggerListeners)\n historyListeners.pauseListeners();\n history.go(delta);\n }\n const routerHistory = assign({\n // it's overridden right after\n location: '',\n base,\n go,\n createHref: createHref.bind(null, base),\n }, historyNavigation, historyListeners);\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => historyNavigation.location.value,\n });\n Object.defineProperty(routerHistory, 'state', {\n enumerable: true,\n get: () => historyNavigation.state.value,\n });\n return routerHistory;\n}\n\n/**\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.\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n *\n * @param base - Base applied to all urls, defaults to '/'\n * @returns a history object that can be passed to the router constructor\n */\nfunction createMemoryHistory(base = '') {\n let listeners = [];\n let queue = [START];\n let position = 0;\n base = normalizeBase(base);\n function setLocation(location) {\n position++;\n if (position === queue.length) {\n // we are at the end, we can simply append a new entry\n queue.push(location);\n }\n else {\n // we are in the middle, we remove everything from here in the queue\n queue.splice(position);\n queue.push(location);\n }\n }\n function triggerListeners(to, from, { direction, delta }) {\n const info = {\n direction,\n delta,\n type: NavigationType.pop,\n };\n for (const callback of listeners) {\n callback(to, from, info);\n }\n }\n const routerHistory = {\n // rewritten by Object.defineProperty\n location: START,\n // TODO: should be kept in queue\n state: {},\n base,\n createHref: createHref.bind(null, base),\n replace(to) {\n // remove current entry and decrement position\n queue.splice(position--, 1);\n setLocation(to);\n },\n push(to, data) {\n setLocation(to);\n },\n listen(callback) {\n listeners.push(callback);\n return () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n },\n destroy() {\n listeners = [];\n queue = [START];\n position = 0;\n },\n go(delta, shouldTrigger = true) {\n const from = this.location;\n const direction =\n // we are considering delta === 0 going forward, but in abstract mode\n // using 0 for the delta doesn't make sense like it does in html5 where\n // it reloads the page\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\n if (shouldTrigger) {\n triggerListeners(this.location, from, {\n direction,\n delta,\n });\n }\n },\n };\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => queue[position],\n });\n return routerHistory;\n}\n\n/**\n * Creates a hash history. Useful for web applications with no host (e.g.\n * `file://`) or when configuring a server to handle any URL is not possible.\n *\n * @param base - optional base to provide. Defaults to `location.pathname +\n * location.search` If there is a `<base>` tag in the `head`, its value will be\n * ignored in favor of this parameter **but note it affects all the\n * history.pushState() calls**, meaning that if you use a `<base>` tag, it's\n * `href` value **has to match this parameter** (ignoring anything after the\n * `#`).\n *\n * @example\n * ```js\n * // at https://example.com/folder\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n * // you should avoid doing this because it changes the original url and breaks copying urls\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n *\n * // at file:///usr/etc/folder/index.html\n * // for locations with no `host`, the base is ignored\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n * ```\n */\nfunction createWebHashHistory(base) {\n // Make sure this implementation is fine in terms of encoding, specially for IE11\n // for `file://`, directly use the pathname and ignore the base\n // location.pathname contains an initial `/` even at the root: `https://example.com`\n base = location.host ? base || location.pathname + location.search : '';\n // allow the user to provide a `#` in the middle: `/base/#/app`\n if (!base.includes('#'))\n base += '#';\n if (!base.endsWith('#/') && !base.endsWith('#')) {\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\n }\n return createWebHistory(base);\n}\n\nfunction isRouteLocation(route) {\n return typeof route === 'string' || (route && typeof route === 'object');\n}\nfunction isRouteName(name) {\n return typeof name === 'string' || typeof name === 'symbol';\n}\n\n/**\n * Initial route location where the router is. Can be used in navigation guards\n * to differentiate the initial navigation.\n *\n * @example\n * ```js\n * import { START_LOCATION } from 'vue-router'\n *\n * router.beforeEach((to, from) => {\n * if (from === START_LOCATION) {\n * // initial navigation\n * }\n * })\n * ```\n */\nconst START_LOCATION_NORMALIZED = {\n path: '/',\n name: undefined,\n params: {},\n query: {},\n hash: '',\n fullPath: '/',\n matched: [],\n meta: {},\n redirectedFrom: undefined,\n};\n\nconst NavigationFailureSymbol = /*#__PURE__*/ PolySymbol('navigation failure' );\n/**\n * Enumeration with all possible types for navigation failures. Can be passed to\n * {@link isNavigationFailure} to check for specific failures.\n */\nvar NavigationFailureType;\n(function (NavigationFailureType) {\n /**\n * An aborted navigation is a navigation that failed because a navigation\n * guard returned `false` or called `next(false)`\n */\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n /**\n * A cancelled navigation is a navigation that failed because a more recent\n * navigation finished started (not necessarily finished).\n */\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n /**\n * A duplicated navigation is a navigation that failed because it was\n * initiated while already being at the exact same location.\n */\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n})(NavigationFailureType || (NavigationFailureType = {}));\n// DEV only debug messages\nconst ErrorTypeMessages = {\n [1 /* MATCHER_NOT_FOUND */]({ location, currentLocation }) {\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\n : ''}`;\n },\n [2 /* NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n },\n [4 /* NAVIGATION_ABORTED */]({ from, to }) {\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n },\n [8 /* NAVIGATION_CANCELLED */]({ from, to }) {\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n },\n [16 /* NAVIGATION_DUPLICATED */]({ from, to }) {\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n },\n};\nfunction createRouterError(type, params) {\n // keep full error messages in cjs versions\n {\n return assign(new Error(ErrorTypeMessages[type](params)), {\n type,\n [NavigationFailureSymbol]: true,\n }, params);\n }\n}\nfunction isNavigationFailure(error, type) {\n return (error instanceof Error &&\n NavigationFailureSymbol in error &&\n (type == null || !!(error.type & type)));\n}\nconst propertiesToLog = ['params', 'query', 'hash'];\nfunction stringifyRoute(to) {\n if (typeof to === 'string')\n return to;\n if ('path' in to)\n return to.path;\n const location = {};\n for (const key of propertiesToLog) {\n if (key in to)\n location[key] = to[key];\n }\n return JSON.stringify(location, null, 2);\n}\n\n// default pattern for a param: non greedy everything but /\nconst BASE_PARAM_PATTERN = '[^/]+?';\nconst BASE_PATH_PARSER_OPTIONS = {\n sensitive: false,\n strict: false,\n start: true,\n end: true,\n};\n// Special Regex characters that must be escaped in static tokens\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\n *\n * @param segments - array of segments returned by tokenizePath\n * @param extraOptions - optional options for the regexp\n * @returns a PathParser\n */\nfunction tokensToParser(segments, extraOptions) {\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\n const score = [];\n // the regexp as a string\n let pattern = options.start ? '^' : '';\n // extracted keys\n const keys = [];\n for (const segment of segments) {\n // the root segment needs special treatment\n const segmentScores = segment.length ? [] : [90 /* Root */];\n // allow trailing slash\n if (options.strict && !segment.length)\n pattern += '/';\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n const token = segment[tokenIndex];\n // resets the score if we are inside a sub segment /:a-other-:b\n let subSegmentScore = 40 /* Segment */ +\n (options.sensitive ? 0.25 /* BonusCaseSensitive */ : 0);\n if (token.type === 0 /* Static */) {\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n pattern += '/';\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\n subSegmentScore += 40 /* Static */;\n }\n else if (token.type === 1 /* Param */) {\n const { value, repeatable, optional, regexp } = token;\n keys.push({\n name: value,\n repeatable,\n optional,\n });\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\n // the user provided a custom regexp /:id(\\\\d+)\n if (re !== BASE_PARAM_PATTERN) {\n subSegmentScore += 10 /* BonusCustomRegExp */;\n // make sure the regexp is valid before using it\n try {\n new RegExp(`(${re})`);\n }\n catch (err) {\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\n err.message);\n }\n }\n // when we repeat we must take care of the repeating leading slash\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n subPattern =\n // avoid an optional / if there are more segments e.g. /:p?-static\n // or /:p?-:p2\n optional && segment.length < 2\n ? `(?:/${subPattern})`\n : '/' + subPattern;\n if (optional)\n subPattern += '?';\n pattern += subPattern;\n subSegmentScore += 20 /* Dynamic */;\n if (optional)\n subSegmentScore += -8 /* BonusOptional */;\n if (repeatable)\n subSegmentScore += -20 /* BonusRepeatable */;\n if (re === '.*')\n subSegmentScore += -50 /* BonusWildcard */;\n }\n segmentScores.push(subSegmentScore);\n }\n // an empty array like /home/ -> [[{home}], []]\n // if (!segment.length) pattern += '/'\n score.push(segmentScores);\n }\n // only apply the strict bonus to the last score\n if (options.strict && options.end) {\n const i = score.length - 1;\n score[i][score[i].length - 1] += 0.7000000000000001 /* BonusStrict */;\n }\n // TODO: dev only warn double trailing slash\n if (!options.strict)\n pattern += '/?';\n if (options.end)\n pattern += '$';\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\n else if (options.strict)\n pattern += '(?:/|$)';\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\n function parse(path) {\n const match = path.match(re);\n const params = {};\n if (!match)\n return null;\n for (let i = 1; i < match.length; i++) {\n const value = match[i] || '';\n const key = keys[i - 1];\n params[key.name] = value && key.repeatable ? value.split('/') : value;\n }\n return params;\n }\n function stringify(params) {\n let path = '';\n // for optional parameters to allow to be empty\n let avoidDuplicatedSlash = false;\n for (const segment of segments) {\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\n path += '/';\n avoidDuplicatedSlash = false;\n for (const token of segment) {\n if (token.type === 0 /* Static */) {\n path += token.value;\n }\n else if (token.type === 1 /* Param */) {\n const { value, repeatable, optional } = token;\n const param = value in params ? params[value] : '';\n if (Array.isArray(param) && !repeatable)\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n const text = Array.isArray(param) ? param.join('/') : param;\n if (!text) {\n if (optional) {\n // if we have more than one optional param like /:a?-static we\n // don't need to care about the optional param\n if (segment.length < 2) {\n // remove the last slash as we could be at the end\n if (path.endsWith('/'))\n path = path.slice(0, -1);\n // do not append a slash on the next iteration\n else\n avoidDuplicatedSlash = true;\n }\n }\n else\n throw new Error(`Missing required param \"${value}\"`);\n }\n path += text;\n }\n }\n }\n return path;\n }\n return {\n re,\n score,\n keys,\n parse,\n stringify,\n };\n}\n/**\n * Compares an array of numbers as used in PathParser.score and returns a\n * number. This function can be used to `sort` an array\n *\n * @param a - first array of numbers\n * @param b - second array of numbers\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n * should be sorted first\n */\nfunction compareScoreArray(a, b) {\n let i = 0;\n while (i < a.length && i < b.length) {\n const diff = b[i] - a[i];\n // only keep going if diff === 0\n if (diff)\n return diff;\n i++;\n }\n // if the last subsegment was Static, the shorter segments should be sorted first\n // otherwise sort the longest segment first\n if (a.length < b.length) {\n return a.length === 1 && a[0] === 40 /* Static */ + 40 /* Segment */\n ? -1\n : 1;\n }\n else if (a.length > b.length) {\n return b.length === 1 && b[0] === 40 /* Static */ + 40 /* Segment */\n ? 1\n : -1;\n }\n return 0;\n}\n/**\n * Compare function that can be used with `sort` to sort an array of PathParser\n *\n * @param a - first PathParser\n * @param b - second PathParser\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n */\nfunction comparePathParserScore(a, b) {\n let i = 0;\n const aScore = a.score;\n const bScore = b.score;\n while (i < aScore.length && i < bScore.length) {\n const comp = compareScoreArray(aScore[i], bScore[i]);\n // do not return if both are equal\n if (comp)\n return comp;\n i++;\n }\n // if a and b share the same score entries but b has more, sort b first\n return bScore.length - aScore.length;\n // this is the ternary version\n // return aScore.length < bScore.length\n // ? 1\n // : aScore.length > bScore.length\n // ? -1\n // : 0\n}\n\nconst ROOT_TOKEN = {\n type: 0 /* Static */,\n value: '',\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\n// After some profiling, the cache seems to be unnecessary because tokenizePath\n// (the slowest part of adding a route) is very fast\n// const tokenCache = new Map<string, Token[][]>()\nfunction tokenizePath(path) {\n if (!path)\n return [[]];\n if (path === '/')\n return [[ROOT_TOKEN]];\n if (!path.startsWith('/')) {\n throw new Error(`Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\n );\n }\n // if (tokenCache.has(path)) return tokenCache.get(path)!\n function crash(message) {\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n }\n let state = 0 /* Static */;\n let previousState = state;\n const tokens = [];\n // the segment will always be valid because we get into the initial state\n // with the leading /\n let segment;\n function finalizeSegment() {\n if (segment)\n tokens.push(segment);\n segment = [];\n }\n // index on the path\n let i = 0;\n // char at index\n let char;\n // buffer of the value read\n let buffer = '';\n // custom regexp for a param\n let customRe = '';\n function consumeBuffer() {\n if (!buffer)\n return;\n if (state === 0 /* Static */) {\n segment.push({\n type: 0 /* Static */,\n value: buffer,\n });\n }\n else if (state === 1 /* Param */ ||\n state === 2 /* ParamRegExp */ ||\n state === 3 /* ParamRegExpEnd */) {\n if (segment.length > 1 && (char === '*' || char === '+'))\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n segment.push({\n type: 1 /* Param */,\n value: buffer,\n regexp: customRe,\n repeatable: char === '*' || char === '+',\n optional: char === '*' || char === '?',\n });\n }\n else {\n crash('Invalid state to consume buffer');\n }\n buffer = '';\n }\n function addCharToBuffer() {\n buffer += char;\n }\n while (i < path.length) {\n char = path[i++];\n if (char === '\\\\' && state !== 2 /* ParamRegExp */) {\n previousState = state;\n state = 4 /* EscapeNext */;\n continue;\n }\n switch (state) {\n case 0 /* Static */:\n if (char === '/') {\n if (buffer) {\n consumeBuffer();\n }\n finalizeSegment();\n }\n else if (char === ':') {\n consumeBuffer();\n state = 1 /* Param */;\n }\n else {\n addCharToBuffer();\n }\n break;\n case 4 /* EscapeNext */:\n addCharToBuffer();\n state = previousState;\n break;\n case 1 /* Param */:\n if (char === '(') {\n state = 2 /* ParamRegExp */;\n }\n else if (VALID_PARAM_RE.test(char)) {\n addCharToBuffer();\n }\n else {\n consumeBuffer();\n state = 0 /* Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n }\n break;\n case 2 /* ParamRegExp */:\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\n // it already works by escaping the closing )\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\n // is this really something people need since you can also write\n // /prefix_:p()_suffix\n if (char === ')') {\n // handle the escaped )\n if (customRe[customRe.length - 1] == '\\\\')\n customRe = customRe.slice(0, -1) + char;\n else\n state = 3 /* ParamRegExpEnd */;\n }\n else {\n customRe += char;\n }\n break;\n case 3 /* ParamRegExpEnd */:\n // same as finalizing a param\n consumeBuffer();\n state = 0 /* Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n customRe = '';\n break;\n default:\n crash('Unknown state');\n break;\n }\n }\n if (state === 2 /* ParamRegExp */)\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n consumeBuffer();\n finalizeSegment();\n // tokenCache.set(path, tokens)\n return tokens;\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\n const parser = tokensToParser(tokenizePath(record.path), options);\n // warn against params with the same name\n {\n const existingKeys = new Set();\n for (const key of parser.keys) {\n if (existingKeys.has(key.name))\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n existingKeys.add(key.name);\n }\n }\n const matcher = assign(parser, {\n record,\n parent,\n // these needs to be populated by the parent\n children: [],\n alias: [],\n });\n if (parent) {\n // both are aliases or both are not aliases\n // we don't want to mix them because the order is used when\n // passing originalRecord in Matcher.addRoute\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\n parent.children.push(matcher);\n }\n return matcher;\n}\n\n/**\n * Creates a Router Matcher.\n *\n * @internal\n * @param routes - array of initial routes\n * @param globalOptions - global route options\n */\nfunction createRouterMatcher(routes, globalOptions) {\n // normalized ordered array of matchers\n const matchers = [];\n const matcherMap = new Map();\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\n function getRecordMatcher(name) {\n return matcherMap.get(name);\n }\n function addRoute(record, parent, originalRecord) {\n // used later on to remove by name\n const isRootAdd = !originalRecord;\n const mainNormalizedRecord = normalizeRouteRecord(record);\n // we might be the child of an alias\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n const options = mergeOptions(globalOptions, record);\n // generate an array of records to correctly handle aliases\n const normalizedRecords = [\n mainNormalizedRecord,\n ];\n if ('alias' in record) {\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\n for (const alias of aliases) {\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\n // this allows us to hold a copy of the `components` option\n // so that async components cache is hold on the original record\n components: originalRecord\n ? originalRecord.record.components\n : mainNormalizedRecord.components,\n path: alias,\n // we might be the child of an alias\n aliasOf: originalRecord\n ? originalRecord.record\n : mainNormalizedRecord,\n // the aliases are always of the same kind as the original since they\n // are defined on the same record\n }));\n }\n }\n let matcher;\n let originalMatcher;\n for (const normalizedRecord of normalizedRecords) {\n const { path } = normalizedRecord;\n // Build up the path for nested routes if the child isn't an absolute\n // route. Only add the / delimiter if the child path isn't empty and if the\n // parent path doesn't have a trailing slash\n if (parent && path[0] !== '/') {\n const parentPath = parent.record.path;\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\n normalizedRecord.path =\n parent.record.path + (path && connectingSlash + path);\n }\n if (normalizedRecord.path === '*') {\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\n }\n // create the object before hand so it can be passed to children\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n if (parent && path[0] === '/')\n checkMissingParamsInAbsolutePath(matcher, parent);\n // if we are an alias we must tell the original record that we exist\n // so we can be removed\n if (originalRecord) {\n originalRecord.alias.push(matcher);\n {\n checkSameParams(originalRecord, matcher);\n }\n }\n else {\n // otherwise, the first record is the original and others are aliases\n originalMatcher = originalMatcher || matcher;\n if (originalMatcher !== matcher)\n originalMatcher.alias.push(matcher);\n // remove the route if named and only for the top record (avoid in nested calls)\n // this works because the original record is the first one\n if (isRootAdd && record.name && !isAliasRecord(matcher))\n removeRoute(record.name);\n }\n if ('children' in mainNormalizedRecord) {\n const children = mainNormalizedRecord.children;\n for (let i = 0; i < children.length; i++) {\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n }\n }\n // if there was no original record, then the first one was not an alias and all\n // other alias (if any) need to reference this record when adding children\n originalRecord = originalRecord || matcher;\n // TODO: add normalized records for more flexibility\n // if (parent && isAliasRecord(originalRecord)) {\n // parent.children.push(originalRecord)\n // }\n insertMatcher(matcher);\n }\n return originalMatcher\n ? () => {\n // since other matchers are aliases, they should be removed by the original matcher\n removeRoute(originalMatcher);\n }\n : noop;\n }\n function removeRoute(matcherRef) {\n if (isRouteName(matcherRef)) {\n const matcher = matcherMap.get(matcherRef);\n if (matcher) {\n matcherMap.delete(matcherRef);\n matchers.splice(matchers.indexOf(matcher), 1);\n matcher.children.forEach(removeRoute);\n matcher.alias.forEach(removeRoute);\n }\n }\n else {\n const index = matchers.indexOf(matcherRef);\n if (index > -1) {\n matchers.splice(index, 1);\n if (matcherRef.record.name)\n matcherMap.delete(matcherRef.record.name);\n matcherRef.children.forEach(removeRoute);\n matcherRef.alias.forEach(removeRoute);\n }\n }\n }\n function getRoutes() {\n return matchers;\n }\n function insertMatcher(matcher) {\n let i = 0;\n // console.log('i is', { i })\n while (i < matchers.length &&\n comparePathParserScore(matcher, matchers[i]) >= 0)\n i++;\n // console.log('END i is', { i })\n // while (i < matchers.length && matcher.score <= matchers[i].score) i++\n matchers.splice(i, 0, matcher);\n // only add the original record to the name map\n if (matcher.record.name && !isAliasRecord(matcher))\n matcherMap.set(matcher.record.name, matcher);\n }\n function resolve(location, currentLocation) {\n let matcher;\n let params = {};\n let path;\n let name;\n if ('name' in location && location.name) {\n matcher = matcherMap.get(location.name);\n if (!matcher)\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\n location,\n });\n name = matcher.record.name;\n params = assign(\n // paramsFromLocation is a new object\n paramsFromLocation(currentLocation.params,\n // only keep params that exist in the resolved location\n // TODO: only keep optional params coming from a parent record\n matcher.keys.filter(k => !k.optional).map(k => k.name)), location.params);\n // throws if cannot be stringified\n path = matcher.stringify(params);\n }\n else if ('path' in location) {\n // no need to resolve the path with the matcher as it was provided\n // this also allows the user to control the encoding\n path = location.path;\n if (!path.startsWith('/')) {\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/vue-router-next.`);\n }\n matcher = matchers.find(m => m.re.test(path));\n // matcher should have a value after the loop\n if (matcher) {\n // TODO: dev warning of unused params if provided\n // we know the matcher works because we tested the regexp\n params = matcher.parse(path);\n name = matcher.record.name;\n }\n // location is a relative path\n }\n else {\n // match by name or path of current route\n matcher = currentLocation.name\n ? matcherMap.get(currentLocation.name)\n : matchers.find(m => m.re.test(currentLocation.path));\n if (!matcher)\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\n location,\n currentLocation,\n });\n name = matcher.record.name;\n // since we are navigating to the same location, we don't need to pick the\n // params like when `name` is provided\n params = assign({}, currentLocation.params, location.params);\n path = matcher.stringify(params);\n }\n const matched = [];\n let parentMatcher = matcher;\n while (parentMatcher) {\n // reversed order so parents are at the beginning\n matched.unshift(parentMatcher.record);\n parentMatcher = parentMatcher.parent;\n }\n return {\n name,\n path,\n params,\n matched,\n meta: mergeMetaFields(matched),\n };\n }\n // add initial routes\n routes.forEach(route => addRoute(route));\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\n}\nfunction paramsFromLocation(params, keys) {\n const newParams = {};\n for (const key of keys) {\n if (key in params)\n newParams[key] = params[key];\n }\n return newParams;\n}\n/**\n * Normalizes a RouteRecordRaw. Creates a copy\n *\n * @param record\n * @returns the normalized version\n */\nfunction normalizeRouteRecord(record) {\n return {\n path: record.path,\n redirect: record.redirect,\n name: record.name,\n meta: record.meta || {},\n aliasOf: undefined,\n beforeEnter: record.beforeEnter,\n props: normalizeRecordProps(record),\n children: record.children || [],\n instances: {},\n leaveGuards: new Set(),\n updateGuards: new Set(),\n enterCallbacks: {},\n components: 'components' in record\n ? record.components || {}\n : { default: record.component },\n };\n}\n/**\n * Normalize the optional `props` in a record to always be an object similar to\n * components. Also accept a boolean for components.\n * @param record\n */\nfunction normalizeRecordProps(record) {\n const propsObject = {};\n // props does not exist on redirect records but we can set false directly\n const props = record.props || false;\n if ('component' in record) {\n propsObject.default = props;\n }\n else {\n // NOTE: we could also allow a function to be applied to every component.\n // Would need user feedback for use cases\n for (const name in record.components)\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\n }\n return propsObject;\n}\n/**\n * Checks if a record or any of its parent is an alias\n * @param record\n */\nfunction isAliasRecord(record) {\n while (record) {\n if (record.record.aliasOf)\n return true;\n record = record.parent;\n }\n return false;\n}\n/**\n * Merge meta fields of an array of records\n *\n * @param matched - array of matched records\n */\nfunction mergeMetaFields(matched) {\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction mergeOptions(defaults, partialOptions) {\n const options = {};\n for (const key in defaults) {\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n }\n return options;\n}\nfunction isSameParam(a, b) {\n return (a.name === b.name &&\n a.optional === b.optional &&\n a.repeatable === b.repeatable);\n}\n/**\n * Check if a path and its alias have the same required params\n *\n * @param a - original record\n * @param b - alias record\n */\nfunction checkSameParams(a, b) {\n for (const key of a.keys) {\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\n }\n for (const key of b.keys) {\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\n }\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n for (const key of parent.keys) {\n if (!record.keys.find(isSameParam.bind(null, key)))\n return warn(`Absolute path \"${record.record.path}\" should have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n }\n}\n\n/**\n * Encoding Rules ? = Space Path: ? \" < > # ? { } Query: ? \" < > # & = Hash: ? \"\n * < > `\n *\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n * defines some extra characters to be encoded. Most browsers do not encode them\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n * also encode `!'()*`. Leaving unencoded only ASCII alphanumeric(`a-zA-Z0-9`)\n * plus `-._~`. This extra safety should be applied to query by patching the\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\n * encoded everywhere because some browsers like FF encode it when directly\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n */\n// const EXTRA_RESERVED_RE = /[!'()*]/g\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\nconst HASH_RE = /#/g; // %23\nconst AMPERSAND_RE = /&/g; // %26\nconst SLASH_RE = /\\//g; // %2F\nconst EQUAL_RE = /=/g; // %3D\nconst IM_RE = /\\?/g; // %3F\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\n * seems to be less flexible than not doing so and I can't find out the legacy\n * systems requiring this for regular requests like text/html. In the standard,\n * the encoding of the plus character is only mentioned for\n * application/x-www-form-urlencoded\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n * leave the plus character as is in queries. To be more flexible, we allow the\n * plus character on the query but it can also be manually encoded by the user.\n *\n * Resources:\n * - https://url.spec.whatwg.org/#urlencoded-parsing\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n */\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\nconst ENC_CARET_RE = /%5E/g; // ^\nconst ENC_BACKTICK_RE = /%60/g; // `\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\nconst ENC_PIPE_RE = /%7C/g; // |\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\nconst ENC_SPACE_RE = /%20/g; // }\n/**\n * Encode characters that need to be encoded on the path, search and hash\n * sections of the URL.\n *\n * @internal\n * @param text - string to encode\n * @returns encoded string\n */\nfunction commonEncode(text) {\n return encodeURI('' + text)\n .replace(ENC_PIPE_RE, '|')\n .replace(ENC_BRACKET_OPEN_RE, '[')\n .replace(ENC_BRACKET_CLOSE_RE, ']');\n}\n/**\n * Encode characters that need to be encoded on the hash section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeHash(text) {\n return commonEncode(text)\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^');\n}\n/**\n * Encode characters that need to be encoded query values on the query\n * section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeQueryValue(text) {\n return (commonEncode(text)\n // Encode the space as +, encode the + to differentiate it from the space\n .replace(PLUS_RE, '%2B')\n .replace(ENC_SPACE_RE, '+')\n .replace(HASH_RE, '%23')\n .replace(AMPERSAND_RE, '%26')\n .replace(ENC_BACKTICK_RE, '`')\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^'));\n}\n/**\n * Like `encodeQueryValue` but also encodes the `=` character.\n *\n * @param text - string to encode\n */\nfunction encodeQueryKey(text) {\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodePath(text) {\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL as a\n * param. This function encodes everything {@link encodePath} does plus the\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n * string instead.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeParam(text) {\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n try {\n return decodeURIComponent('' + text);\n }\n catch (err) {\n warn(`Error decoding \"${text}\". Using original value`);\n }\n return '' + text;\n}\n\n/**\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n * version with the leading `?` and without Should work as URLSearchParams\n\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n const query = {};\n // avoid creating an object with an empty key and empty value\n // because of split('&')\n if (search === '' || search === '?')\n return query;\n const hasLeadingIM = search[0] === '?';\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n for (let i = 0; i < searchParams.length; ++i) {\n // pre decode the + into space\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n // allow the = character\n const eqPos = searchParam.indexOf('=');\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n // an extra variable for ts types\n let currentValue = query[key];\n if (!Array.isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n }\n else {\n query[key] = value;\n }\n }\n return query;\n}\n/**\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n * doesn't prepend a `?`\n *\n * @internal\n *\n * @param query - query object to stringify\n * @returns string version of the query without the leading `?`\n */\nfunction stringifyQuery(query) {\n let search = '';\n for (let key in query) {\n const value = query[key];\n key = encodeQueryKey(key);\n if (value == null) {\n // only null adds the value\n if (value !== undefined) {\n search += (search.length ? '&' : '') + key;\n }\n continue;\n }\n // keep null values\n const values = Array.isArray(value)\n ? value.map(v => v && encodeQueryValue(v))\n : [value && encodeQueryValue(value)];\n values.forEach(value => {\n // skip undefined values in arrays as if they were not present\n // smaller code than using filter\n if (value !== undefined) {\n // only append & with non-empty search\n search += (search.length ? '&' : '') + key;\n if (value != null)\n search += '=' + value;\n }\n });\n }\n return search;\n}\n/**\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n * numbers into strings, removing keys with an undefined value and replacing\n * undefined with null in arrays\n *\n * @param query - query object to normalize\n * @returns a normalized query object\n */\nfunction normalizeQuery(query) {\n const normalizedQuery = {};\n for (const key in query) {\n const value = query[key];\n if (value !== undefined) {\n normalizedQuery[key] = Array.isArray(value)\n ? value.map(v => (v == null ? null : '' + v))\n : value == null\n ? value\n : '' + value;\n }\n }\n return normalizedQuery;\n}\n\n/**\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n */\nfunction useCallbacks() {\n let handlers = [];\n function add(handler) {\n handlers.push(handler);\n return () => {\n const i = handlers.indexOf(handler);\n if (i > -1)\n handlers.splice(i, 1);\n };\n }\n function reset() {\n handlers = [];\n }\n return {\n add,\n list: () => handlers,\n reset,\n };\n}\n\nfunction registerGuard(record, name, guard) {\n const removeFromList = () => {\n record[name].delete(guard);\n };\n onUnmounted(removeFromList);\n onDeactivated(removeFromList);\n onActivated(() => {\n record[name].add(guard);\n });\n record[name].add(guard);\n}\n/**\n * Add a navigation guard that triggers whenever the component for the current\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\n * used in any component. The guard is removed when the component is unmounted.\n *\n * @param leaveGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteLeave(leaveGuard) {\n if (!getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey,\n // to avoid warning\n {}).value;\n if (!activeRecord) {\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside of a component child of <router-view>. Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\n}\n/**\n * Add a navigation guard that triggers whenever the current location is about\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n * component. The guard is removed when the component is unmounted.\n *\n * @param updateGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteUpdate(updateGuard) {\n if (!getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey,\n // to avoid warning\n {}).value;\n if (!activeRecord) {\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside of a component child of <router-view>. Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'updateGuards', updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name) {\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\n const enterCallbackArray = record &&\n // name is defined if record is because of the function overload\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n return () => new Promise((resolve, reject) => {\n const next = (valid) => {\n if (valid === false)\n reject(createRouterError(4 /* NAVIGATION_ABORTED */, {\n from,\n to,\n }));\n else if (valid instanceof Error) {\n reject(valid);\n }\n else if (isRouteLocation(valid)) {\n reject(createRouterError(2 /* NAVIGATION_GUARD_REDIRECT */, {\n from: to,\n to: valid,\n }));\n }\n else {\n if (enterCallbackArray &&\n // since enterCallbackArray is truthy, both record and name also are\n record.enterCallbacks[name] === enterCallbackArray &&\n typeof valid === 'function')\n enterCallbackArray.push(valid);\n resolve();\n }\n };\n // wrapping with Promise.resolve allows it to work with both async and sync guards\n const guardReturn = guard.call(record && record.instances[name], to, from, canOnlyBeCalledOnce(next, to, from) );\n let guardCall = Promise.resolve(guardReturn);\n if (guard.length < 3)\n guardCall = guardCall.then(next);\n if (guard.length > 2) {\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.`;\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\n guardCall = guardCall.then(resolvedValue => {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n return Promise.reject(new Error('Invalid navigation guard'));\n }\n return resolvedValue;\n });\n // TODO: test me!\n }\n else if (guardReturn !== undefined) {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n reject(new Error('Invalid navigation guard'));\n return;\n }\n }\n }\n guardCall.catch(err => reject(err));\n });\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n let called = 0;\n return function () {\n if (called++ === 1)\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.`);\n // @ts-expect-error: we put it in the original one because it's easier to check\n next._called = true;\n if (called === 1)\n next.apply(null, arguments);\n };\n}\nfunction extractComponentsGuards(matched, guardType, to, from) {\n const guards = [];\n for (const record of matched) {\n for (const name in record.components) {\n let rawComponent = record.components[name];\n {\n if (!rawComponent ||\n (typeof rawComponent !== 'object' &&\n typeof rawComponent !== 'function')) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\n ` a valid component. Received \"${String(rawComponent)}\".`);\n // throw to ensure we stop here but warn to ensure the message isn't\n // missed by the user\n throw new Error('Invalid route component');\n }\n else if ('then' in rawComponent) {\n // warn if user wrote import('/component.vue') instead of () =>\n // import('./component.vue')\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\n `Promise instead of a function that returns a Promise. Did you ` +\n `write \"import('./MyPage.vue')\" instead of ` +\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\n `production if not fixed.`);\n const promise = rawComponent;\n rawComponent = () => promise;\n }\n else if (rawComponent.__asyncLoader &&\n // warn only once per component\n !rawComponent.__warnedDefineAsync) {\n rawComponent.__warnedDefineAsync = true;\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\n `using \"defineAsyncComponent()\". ` +\n `Write \"() => import('./MyPage.vue')\" instead of ` +\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n }\n }\n // skip update and leave guards if the route component is not mounted\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\n continue;\n if (isRouteComponent(rawComponent)) {\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = rawComponent.__vccOpts || rawComponent;\n const guard = options[guardType];\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\n }\n else {\n // start requesting the chunk already\n let componentPromise = rawComponent();\n if (!('catch' in componentPromise)) {\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.`);\n componentPromise = Promise.resolve(componentPromise);\n }\n guards.push(() => componentPromise.then(resolved => {\n if (!resolved)\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // replace the function with the resolved component\n record.components[name] = resolvedComponent;\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = resolvedComponent.__vccOpts || resolvedComponent;\n const guard = options[guardType];\n return guard && guardToPromiseFn(guard, to, from, record, name)();\n }));\n }\n }\n }\n return guards;\n}\n/**\n * Allows differentiating lazy components from functional components and vue-class-component\n *\n * @param component\n */\nfunction isRouteComponent(component) {\n return (typeof component === 'object' ||\n 'displayName' in component ||\n 'props' in component ||\n '__vccOpts' in component);\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\n// `isExactActive` behavior should go through an RFC\nfunction useLink(props) {\n const router = inject(routerKey);\n const currentRoute = inject(routeLocationKey);\n const route = computed(() => router.resolve(unref(props.to)));\n const activeRecordIndex = computed(() => {\n const { matched } = route.value;\n const { length } = matched;\n const routeMatched = matched[length - 1];\n const currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length)\n return -1;\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n if (index > -1)\n return index;\n // possible parent record\n const parentRecordPath = getOriginalPath(matched[length - 2]);\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n getOriginalPath(routeMatched) === parentRecordPath &&\n // avoid comparing the child with its parent\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\n : index);\n });\n const isActive = computed(() => activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, route.value.params));\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, route.value.params));\n function navigate(e = {}) {\n if (guardEvent(e)) {\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\n // avoid uncaught errors are they are logged anyway\n ).catch(noop);\n }\n return Promise.resolve();\n }\n // devtools only\n if (isBrowser) {\n const instance = getCurrentInstance();\n if (instance) {\n const linkContextDevtools = {\n route: route.value,\n isActive: isActive.value,\n isExactActive: isExactActive.value,\n };\n // @ts-expect-error: this is internal\n instance.__vrl_devtools = instance.__vrl_devtools || [];\n // @ts-expect-error: this is internal\n instance.__vrl_devtools.push(linkContextDevtools);\n watchEffect(() => {\n linkContextDevtools.route = route.value;\n linkContextDevtools.isActive = isActive.value;\n linkContextDevtools.isExactActive = isExactActive.value;\n }, { flush: 'post' });\n }\n }\n return {\n route,\n href: computed(() => route.value.href),\n isActive,\n isExactActive,\n navigate,\n };\n}\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterLink',\n props: {\n to: {\n type: [String, Object],\n required: true,\n },\n replace: Boolean,\n activeClass: String,\n // inactiveClass: String,\n exactActiveClass: String,\n custom: Boolean,\n ariaCurrentValue: {\n type: String,\n default: 'page',\n },\n },\n useLink,\n setup(props, { slots }) {\n const link = reactive(useLink(props));\n const { options } = inject(routerKey);\n const elClass = computed(() => ({\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\n // [getLinkClass(\n // props.inactiveClass,\n // options.linkInactiveClass,\n // 'router-link-inactive'\n // )]: !link.isExactActive,\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\n }));\n return () => {\n const children = slots.default && slots.default(link);\n return props.custom\n ? children\n : h('a', {\n 'aria-current': link.isExactActive\n ? props.ariaCurrentValue\n : null,\n href: link.href,\n // this would override user added attrs but Vue will still add\n // the listener so we end up triggering both\n onClick: link.navigate,\n class: elClass.value,\n }, children);\n };\n },\n});\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to render a link that triggers a navigation on click.\n */\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n return;\n // don't redirect when preventDefault called\n if (e.defaultPrevented)\n return;\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0)\n return;\n // don't redirect if `target=\"_blank\"`\n // @ts-expect-error getAttribute does exist\n if (e.currentTarget && e.currentTarget.getAttribute) {\n // @ts-expect-error getAttribute exists\n const target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target))\n return;\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault)\n e.preventDefault();\n return true;\n}\nfunction includesParams(outer, inner) {\n for (const key in inner) {\n const innerValue = inner[key];\n const outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue)\n return false;\n }\n else {\n if (!Array.isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some((value, i) => value !== outerValue[i]))\n return false;\n }\n }\n return true;\n}\n/**\n * Get the original path value of a record by following its aliasOf\n * @param record\n */\nfunction getOriginalPath(record) {\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\n}\n/**\n * Utility class to get the active class based on defaults.\n * @param propClass\n * @param globalClass\n * @param defaultClass\n */\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\n ? propClass\n : globalClass != null\n ? globalClass\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterView',\n // #674 we manually inherit them\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n default: 'default',\n },\n route: Object,\n },\n setup(props, { attrs, slots }) {\n warnDeprecatedUsage();\n const injectedRoute = inject(routerViewLocationKey);\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\n const depth = inject(viewDepthKey, 0);\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth]);\n provide(viewDepthKey, depth + 1);\n provide(matchedRouteKey, matchedRouteRef);\n provide(routerViewLocationKey, routeToDisplay);\n const viewRef = ref();\n // watch at the same time the component instance, the route record we are\n // rendering, and the name\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\n // copy reused instances\n if (to) {\n // this will update the instance for new instances as well as reused\n // instances when navigating to a new route\n to.instances[name] = instance;\n // the component instance is reused for a different route or name so\n // we copy any saved update or leave guards. With async setup, the\n // mounting component will mount before the matchedRoute changes,\n // making instance === oldInstance, so we check if guards have been\n // added before. This works because we remove guards when\n // unmounting/deactivating components\n if (from && from !== to && instance && instance === oldInstance) {\n if (!to.leaveGuards.size) {\n to.leaveGuards = from.leaveGuards;\n }\n if (!to.updateGuards.size) {\n to.updateGuards = from.updateGuards;\n }\n }\n }\n // trigger beforeRouteEnter next callbacks\n if (instance &&\n to &&\n // if there is no instance but to and from are the same this might be\n // the first visit\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\n }\n }, { flush: 'post' });\n return () => {\n const route = routeToDisplay.value;\n const matchedRoute = matchedRouteRef.value;\n const ViewComponent = matchedRoute && matchedRoute.components[props.name];\n // we need the value at the time we render because when we unmount, we\n // navigated to a different location so the value is different\n const currentName = props.name;\n if (!ViewComponent) {\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\n }\n // props from route configuration\n const routePropsOption = matchedRoute.props[props.name];\n const routeProps = routePropsOption\n ? routePropsOption === true\n ? route.params\n : typeof routePropsOption === 'function'\n ? routePropsOption(route)\n : routePropsOption\n : null;\n const onVnodeUnmounted = vnode => {\n // remove the instance reference to prevent leak\n if (vnode.component.isUnmounted) {\n matchedRoute.instances[currentName] = null;\n }\n };\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\n onVnodeUnmounted,\n ref: viewRef,\n }));\n if (isBrowser &&\n component.ref) {\n // TODO: can display if it's an alias, its props\n const info = {\n depth,\n name: matchedRoute.name,\n path: matchedRoute.path,\n meta: matchedRoute.meta,\n };\n const internalInstances = Array.isArray(component.ref)\n ? component.ref.map(r => r.i)\n : [component.ref.i];\n internalInstances.forEach(instance => {\n // @ts-expect-error\n instance.__vrv_devtools = info;\n });\n }\n return (\n // pass the vnode to the slot as a prop.\n // h and <component :is=\"...\"> both accept vnodes\n normalizeSlot(slots.default, { Component: component, route }) ||\n component);\n };\n },\n});\nfunction normalizeSlot(slot, data) {\n if (!slot)\n return null;\n const slotContent = slot(data);\n return slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to display the current route the user is at.\n */\nconst RouterView = RouterViewImpl;\n// warn against deprecated usage with <transition> & <keep-alive>\n// due to functional component being no longer eager in Vue 3\nfunction warnDeprecatedUsage() {\n const instance = getCurrentInstance();\n const parentName = instance.parent && instance.parent.type.name;\n if (parentName &&\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\n warn(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\\n` +\n `Use slot props instead:\\n\\n` +\n `<router-view v-slot=\"{ Component }\">\\n` +\n ` <${comp}>\\n` +\n ` <component :is=\"Component\" />\\n` +\n ` </${comp}>\\n` +\n `</router-view>`);\n }\n}\n\nfunction formatRouteLocation(routeLocation, tooltip) {\n const copy = assign({}, routeLocation, {\n // remove variables that can contain vue instances\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\n });\n return {\n _custom: {\n type: null,\n readOnly: true,\n display: routeLocation.fullPath,\n tooltip,\n value: copy,\n },\n };\n}\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\n// to support multiple router instances\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n // Take over router.beforeEach and afterEach\n // make sure we are not registering the devtool twice\n if (router.__hasDevtools)\n return;\n router.__hasDevtools = true;\n // increment to support multiple router instances\n const id = routerId++;\n setupDevtoolsPlugin({\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\n label: 'Vue Router',\n packageName: 'vue-router',\n homepage: 'https://next.router.vuejs.org/',\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\n componentStateTypes: ['Routing'],\n app,\n }, api => {\n // display state added by the router\n api.on.inspectComponent((payload, ctx) => {\n if (payload.instanceData) {\n payload.instanceData.state.push({\n type: 'Routing',\n key: '$route',\n editable: false,\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\n });\n }\n });\n // mark router-link as active and display tags on router views\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n if (componentInstance.__vrv_devtools) {\n const info = componentInstance.__vrv_devtools;\n node.tags.push({\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\n textColor: 0,\n tooltip: 'This component is rendered by <router-view>',\n backgroundColor: PINK_500,\n });\n }\n // if multiple useLink are used\n if (Array.isArray(componentInstance.__vrl_devtools)) {\n componentInstance.__devtoolsApi = api;\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\n let backgroundColor = ORANGE_400;\n let tooltip = '';\n if (devtoolsData.isExactActive) {\n backgroundColor = LIME_500;\n tooltip = 'This is exactly active';\n }\n else if (devtoolsData.isActive) {\n backgroundColor = BLUE_600;\n tooltip = 'This link is active';\n }\n node.tags.push({\n label: devtoolsData.route.path,\n textColor: 0,\n tooltip,\n backgroundColor,\n });\n });\n }\n });\n watch(router.currentRoute, () => {\n // refresh active state\n refreshRoutesView();\n api.notifyComponentUpdate();\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n const navigationsLayerId = 'router:navigations:' + id;\n api.addTimelineLayer({\n id: navigationsLayerId,\n label: `Router${id ? ' ' + id : ''} Navigations`,\n color: 0x40a8c4,\n });\n // const errorsLayerId = 'router:errors'\n // api.addTimelineLayer({\n // id: errorsLayerId,\n // label: 'Router Errors',\n // color: 0xea5455,\n // })\n router.onError((error, to) => {\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'Error during Navigation',\n subtitle: to.fullPath,\n logType: 'error',\n time: Date.now(),\n data: { error },\n groupId: to.meta.__navigationId,\n },\n });\n });\n // attached to `meta` and used to group events\n let navigationId = 0;\n router.beforeEach((to, from) => {\n const data = {\n guard: formatDisplay('beforeEach'),\n from: formatRouteLocation(from, 'Current Location during this navigation'),\n to: formatRouteLocation(to, 'Target location'),\n };\n // Used to group navigations together, hide from devtools\n Object.defineProperty(to.meta, '__navigationId', {\n value: navigationId++,\n });\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n time: Date.now(),\n title: 'Start of navigation',\n subtitle: to.fullPath,\n data,\n groupId: to.meta.__navigationId,\n },\n });\n });\n router.afterEach((to, from, failure) => {\n const data = {\n guard: formatDisplay('afterEach'),\n };\n if (failure) {\n data.failure = {\n _custom: {\n type: Error,\n readOnly: true,\n display: failure ? failure.message : '',\n tooltip: 'Navigation Failure',\n value: failure,\n },\n };\n data.status = formatDisplay('?');\n }\n else {\n data.status = formatDisplay('?');\n }\n // we set here to have the right order\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\n data.to = formatRouteLocation(to, 'Target location');\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'End of navigation',\n subtitle: to.fullPath,\n time: Date.now(),\n data,\n logType: failure ? 'warning' : 'default',\n groupId: to.meta.__navigationId,\n },\n });\n });\n /**\n * Inspector of Existing routes\n */\n const routerInspectorId = 'router-inspector:' + id;\n api.addInspector({\n id: routerInspectorId,\n label: 'Routes' + (id ? ' ' + id : ''),\n icon: 'book',\n treeFilterPlaceholder: 'Search routes',\n });\n function refreshRoutesView() {\n // the routes view isn't active\n if (!activeRoutesPayload)\n return;\n const payload = activeRoutesPayload;\n // children routes will appear as nested\n let routes = matcher.getRoutes().filter(route => !route.parent);\n // reset match state to false\n routes.forEach(resetMatchStateOnRouteRecord);\n // apply a match state if there is a payload\n if (payload.filter) {\n routes = routes.filter(route =>\n // save matches state based on the payload\n isRouteMatching(route, payload.filter.toLowerCase()));\n }\n // mark active routes\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\n }\n let activeRoutesPayload;\n api.on.getInspectorTree(payload => {\n activeRoutesPayload = payload;\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n refreshRoutesView();\n }\n });\n /**\n * Display information about the currently selected route record\n */\n api.on.getInspectorState(payload => {\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n const routes = matcher.getRoutes();\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\n if (route) {\n payload.state = {\n options: formatRouteRecordMatcherForStateInspector(route),\n };\n }\n }\n });\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n}\nfunction modifierForKey(key) {\n if (key.optional) {\n return key.repeatable ? '*' : '?';\n }\n else {\n return key.repeatable ? '+' : '';\n }\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n const { record } = route;\n const fields = [\n { editable: false, key: 'path', value: record.path },\n ];\n if (record.name != null) {\n fields.push({\n editable: false,\n key: 'name',\n value: record.name,\n });\n }\n fields.push({ editable: false, key: 'regexp', value: route.re });\n if (route.keys.length) {\n fields.push({\n editable: false,\n key: 'keys',\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.keys\n .map(key => `${key.name}${modifierForKey(key)}`)\n .join(' '),\n tooltip: 'Param keys',\n value: route.keys,\n },\n },\n });\n }\n if (record.redirect != null) {\n fields.push({\n editable: false,\n key: 'redirect',\n value: record.redirect,\n });\n }\n if (route.alias.length) {\n fields.push({\n editable: false,\n key: 'aliases',\n value: route.alias.map(alias => alias.record.path),\n });\n }\n fields.push({\n key: 'score',\n editable: false,\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.score.map(score => score.join(', ')).join(' | '),\n tooltip: 'Score used to sort routes',\n value: route.score,\n },\n },\n });\n return fields;\n}\n/**\n * Extracted from tailwind palette\n */\nconst PINK_500 = 0xec4899;\nconst BLUE_600 = 0x2563eb;\nconst LIME_500 = 0x84cc16;\nconst CYAN_400 = 0x22d3ee;\nconst ORANGE_400 = 0xfb923c;\n// const GRAY_100 = 0xf4f4f5\nconst DARK = 0x666666;\nfunction formatRouteRecordForInspector(route) {\n const tags = [];\n const { record } = route;\n if (record.name != null) {\n tags.push({\n label: String(record.name),\n textColor: 0,\n backgroundColor: CYAN_400,\n });\n }\n if (record.aliasOf) {\n tags.push({\n label: 'alias',\n textColor: 0,\n backgroundColor: ORANGE_400,\n });\n }\n if (route.__vd_match) {\n tags.push({\n label: 'matches',\n textColor: 0,\n backgroundColor: PINK_500,\n });\n }\n if (route.__vd_exactActive) {\n tags.push({\n label: 'exact',\n textColor: 0,\n backgroundColor: LIME_500,\n });\n }\n if (route.__vd_active) {\n tags.push({\n label: 'active',\n textColor: 0,\n backgroundColor: BLUE_600,\n });\n }\n if (record.redirect) {\n tags.push({\n label: 'redirect: ' +\n (typeof record.redirect === 'string' ? record.redirect : 'Object'),\n textColor: 0xffffff,\n backgroundColor: DARK,\n });\n }\n // add an id to be able to select it. Using the `path` is not possible because\n // empty path children would collide with their parents\n let id = record.__vd_id;\n if (id == null) {\n id = String(routeRecordId++);\n record.__vd_id = id;\n }\n return {\n id,\n label: record.path,\n tags,\n children: route.children.map(formatRouteRecordForInspector),\n };\n}\n// incremental id for route records and inspector state\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n // no route will be active if matched is empty\n // reset the matching state\n const isExactActive = currentRoute.matched.length &&\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n route.__vd_exactActive = route.__vd_active = isExactActive;\n if (!isExactActive) {\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\n }\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n route.__vd_match = false;\n route.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\n route.__vd_match = false;\n if (!found || found.length < 3) {\n return false;\n }\n // use a regexp without $ at the end to match nested routes better\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\n if (nonEndingRE.test(filter)) {\n // mark children as matches\n route.children.forEach(child => isRouteMatching(child, filter));\n // exception case: `/`\n if (route.record.path !== '/' || filter === '/') {\n route.__vd_match = route.re.test(filter);\n return true;\n }\n // hide the / route\n return false;\n }\n const path = route.record.path.toLowerCase();\n const decodedPath = decode(path);\n // also allow partial matching on the path\n if (!filter.startsWith('/') &&\n (decodedPath.includes(filter) || path.includes(filter)))\n return true;\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\n return true;\n if (route.record.name && String(route.record.name).includes(filter))\n return true;\n return route.children.some(child => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n const ret = {};\n for (const key in obj) {\n if (!keys.includes(key)) {\n // @ts-expect-error\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n\n/**\n * Creates a Router instance that can be used by a Vue app.\n *\n * @param options - {@link RouterOptions}\n */\nfunction createRouter(options) {\n const matcher = createRouterMatcher(options.routes, options);\n const parseQuery$1 = options.parseQuery || parseQuery;\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n const routerHistory = options.history;\n if (!routerHistory)\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\n ' https://next.router.vuejs.org/api/#history.');\n const beforeGuards = useCallbacks();\n const beforeResolveGuards = useCallbacks();\n const afterGuards = useCallbacks();\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n let pendingLocation = START_LOCATION_NORMALIZED;\n // leave the scrollRestoration if no scrollBehavior is provided\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\n const encodeParams = applyToParams.bind(null, encodeParam);\n const decodeParams =\n // @ts-expect-error: intentionally avoid the type check\n applyToParams.bind(null, decode);\n function addRoute(parentOrRoute, route) {\n let parent;\n let record;\n if (isRouteName(parentOrRoute)) {\n parent = matcher.getRecordMatcher(parentOrRoute);\n record = route;\n }\n else {\n record = parentOrRoute;\n }\n return matcher.addRoute(record, parent);\n }\n function removeRoute(name) {\n const recordMatcher = matcher.getRecordMatcher(name);\n if (recordMatcher) {\n matcher.removeRoute(recordMatcher);\n }\n else {\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\n }\n }\n function getRoutes() {\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\n }\n function hasRoute(name) {\n return !!matcher.getRecordMatcher(name);\n }\n function resolve(rawLocation, currentLocation) {\n // const objectLocation = routerLocationAsObject(rawLocation)\n // we create a copy to modify it later\n currentLocation = assign({}, currentLocation || currentRoute.value);\n if (typeof rawLocation === 'string') {\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n const href = routerHistory.createHref(locationNormalized.fullPath);\n {\n if (href.startsWith('//'))\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${rawLocation}\"`);\n }\n }\n // locationNormalized is always a new object\n return assign(locationNormalized, matchedRoute, {\n params: decodeParams(matchedRoute.params),\n hash: decode(locationNormalized.hash),\n redirectedFrom: undefined,\n href,\n });\n }\n let matcherLocation;\n // path could be relative in object as well\n if ('path' in rawLocation) {\n if ('params' in rawLocation &&\n !('name' in rawLocation) &&\n // @ts-expect-error: the type is never\n Object.keys(rawLocation.params).length) {\n warn(`Path \"${\n // @ts-expect-error: the type is never\n rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n }\n matcherLocation = assign({}, rawLocation, {\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\n });\n }\n else {\n // remove any nullish param\n const targetParams = assign({}, rawLocation.params);\n for (const key in targetParams) {\n if (targetParams[key] == null) {\n delete targetParams[key];\n }\n }\n // pass encoded values to the matcher so it can produce encoded path and fullPath\n matcherLocation = assign({}, rawLocation, {\n params: encodeParams(rawLocation.params),\n });\n // current location params are decoded, we need to encode them in case the\n // matcher merges the params\n currentLocation.params = encodeParams(currentLocation.params);\n }\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n const hash = rawLocation.hash || '';\n if (hash && !hash.startsWith('#')) {\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n }\n // decoding them) the matcher might have merged current location params so\n // we need to run the decoding again\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n hash: encodeHash(hash),\n path: matchedRoute.path,\n }));\n const href = routerHistory.createHref(fullPath);\n {\n if (href.startsWith('//')) {\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n }\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\n }\n }\n return assign({\n fullPath,\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\n // hash\n hash,\n query:\n // if the user is using a custom query lib like qs, we might have\n // nested objects, so we keep the query as is, meaning it can contain\n // numbers at `$route.query`, but at the point, the user will have to\n // use their own type anyway.\n // https://github.com/vuejs/vue-router-next/issues/328#issuecomment-649481567\n stringifyQuery$1 === stringifyQuery\n ? normalizeQuery(rawLocation.query)\n : (rawLocation.query || {}),\n }, matchedRoute, {\n redirectedFrom: undefined,\n href,\n });\n }\n function locationAsObject(to) {\n return typeof to === 'string'\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\n : assign({}, to);\n }\n function checkCanceledNavigation(to, from) {\n if (pendingLocation !== to) {\n return createRouterError(8 /* NAVIGATION_CANCELLED */, {\n from,\n to,\n });\n }\n }\n function push(to) {\n return pushWithRedirect(to);\n }\n function replace(to) {\n return push(assign(locationAsObject(to), { replace: true }));\n }\n function handleRedirectRecord(to) {\n const lastMatched = to.matched[to.matched.length - 1];\n if (lastMatched && lastMatched.redirect) {\n const { redirect } = lastMatched;\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\n if (typeof newTargetLocation === 'string') {\n newTargetLocation =\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\n ? (newTargetLocation = locationAsObject(newTargetLocation))\n : // force empty params\n { path: newTargetLocation };\n // @ts-expect-error: force empty params when a string is passed to let\n // the router parse them again\n newTargetLocation.params = {};\n }\n if (!('path' in newTargetLocation) &&\n !('name' in newTargetLocation)) {\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.`);\n throw new Error('Invalid redirect');\n }\n return assign({\n query: to.query,\n hash: to.hash,\n params: to.params,\n }, newTargetLocation);\n }\n }\n function pushWithRedirect(to, redirectedFrom) {\n const targetLocation = (pendingLocation = resolve(to));\n const from = currentRoute.value;\n const data = to.state;\n const force = to.force;\n // to could be a string where `replace` is a function\n const replace = to.replace === true;\n const shouldRedirect = handleRedirectRecord(targetLocation);\n if (shouldRedirect)\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n state: data,\n force,\n replace,\n }),\n // keep original redirectedFrom if it exists\n redirectedFrom || targetLocation);\n // if it was a redirect we already called `pushWithRedirect` above\n const toLocation = targetLocation;\n toLocation.redirectedFrom = redirectedFrom;\n let failure;\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n failure = createRouterError(16 /* NAVIGATION_DUPLICATED */, { to: toLocation, from });\n // trigger scroll to allow scrolling to the same anchor\n handleScroll(from, from,\n // this is a push, the only way for it to be triggered from a\n // history.listen is with a redirect, which makes it become a push\n true,\n // This cannot be the first navigation because the initial location\n // cannot be manually navigated to\n false);\n }\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\n .catch((error) => isNavigationFailure(error)\n ? error\n : // reject any unknown error\n triggerError(error, toLocation, from))\n .then((failure) => {\n if (failure) {\n if (isNavigationFailure(failure, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\n if (// we are redirecting to the same location we were already at\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\n // and we have done it a couple of times\n redirectedFrom &&\n // @ts-expect-error: added only in dev\n (redirectedFrom._count = redirectedFrom._count\n ? // @ts-expect-error\n redirectedFrom._count + 1\n : 1) > 10) {\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.`);\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\n }\n return pushWithRedirect(\n // keep options\n assign(locationAsObject(failure.to), {\n state: data,\n force,\n replace,\n }),\n // preserve the original redirectedFrom if any\n redirectedFrom || toLocation);\n }\n }\n else {\n // if we fail we don't finalize the navigation\n failure = finalizeNavigation(toLocation, from, true, replace, data);\n }\n triggerAfterEach(toLocation, from, failure);\n return failure;\n });\n }\n /**\n * Helper to reject and skip all navigation guards if a new navigation happened\n * @param to\n * @param from\n */\n function checkCanceledNavigationAndReject(to, from) {\n const error = checkCanceledNavigation(to, from);\n return error ? Promise.reject(error) : Promise.resolve();\n }\n // TODO: refactor the whole before guards by internally using router.beforeEach\n function navigate(to, from) {\n let guards;\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n // all components here have been resolved once because we are leaving\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\n // leavingRecords is already reversed\n for (const record of leavingRecords) {\n record.leaveGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeRouteLeave guards\n return (runGuardQueue(guards)\n .then(() => {\n // check global guards beforeEach\n guards = [];\n for (const guard of beforeGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n .then(() => {\n // check in components beforeRouteUpdate\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\n for (const record of updatingRecords) {\n record.updateGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check the route beforeEnter\n guards = [];\n for (const record of to.matched) {\n // do not trigger beforeEnter on reused views\n if (record.beforeEnter && !from.matched.includes(record)) {\n if (Array.isArray(record.beforeEnter)) {\n for (const beforeEnter of record.beforeEnter)\n guards.push(guardToPromiseFn(beforeEnter, to, from));\n }\n else {\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n }\n }\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise<Component>\n // clear existing enterCallbacks, these are added by extractComponentsGuards\n to.matched.forEach(record => (record.enterCallbacks = {}));\n // check in-component beforeRouteEnter\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check global guards beforeResolve\n guards = [];\n for (const guard of beforeResolveGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n // catch any navigation canceled\n .catch(err => isNavigationFailure(err, 8 /* NAVIGATION_CANCELLED */)\n ? err\n : Promise.reject(err)));\n }\n function triggerAfterEach(to, from, failure) {\n // navigation is confirmed, call afterGuards\n // TODO: wrap with error handlers\n for (const guard of afterGuards.list())\n guard(to, from, failure);\n }\n /**\n * - Cleans up any navigation guards\n * - Changes the url if necessary\n * - Calls the scrollBehavior\n */\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\n // a more recent navigation took place\n const error = checkCanceledNavigation(toLocation, from);\n if (error)\n return error;\n // only consider as push if it's not the first navigation\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\n const state = !isBrowser ? {} : history.state;\n // change URL only if the user did a push/replace and if it's not the initial navigation because\n // it's just reflecting the url\n if (isPush) {\n // on the initial navigation, we want to reuse the scroll position from\n // history state if it exists\n if (replace || isFirstNavigation)\n routerHistory.replace(toLocation.fullPath, assign({\n scroll: isFirstNavigation && state && state.scroll,\n }, data));\n else\n routerHistory.push(toLocation.fullPath, data);\n }\n // accept current navigation\n currentRoute.value = toLocation;\n handleScroll(toLocation, from, isPush, isFirstNavigation);\n markAsReady();\n }\n let removeHistoryListener;\n // attach listener to history to trigger navigations\n function setupListeners() {\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\n // cannot be a redirect route because it was in history\n const toLocation = resolve(to);\n // due to dynamic routing, and to hash history with manual navigation\n // (manually changing the url or calling history.hash = '#/somewhere'),\n // there could be a redirect record in history\n const shouldRedirect = handleRedirectRecord(toLocation);\n if (shouldRedirect) {\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\n return;\n }\n pendingLocation = toLocation;\n const from = currentRoute.value;\n // TODO: should be moved to web history?\n if (isBrowser) {\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n }\n navigate(toLocation, from)\n .catch((error) => {\n if (isNavigationFailure(error, 4 /* NAVIGATION_ABORTED */ | 8 /* NAVIGATION_CANCELLED */)) {\n return error;\n }\n if (isNavigationFailure(error, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\n // false) but this is bug prone as we have no way to wait the\n // navigation to be finished before calling pushWithRedirect. Using\n // a setTimeout of 16ms seems to work but there is not guarantee for\n // it to work on every browser. So Instead we do not restore the\n // history entry and trigger a new navigation as requested by the\n // navigation guard.\n // the error is already handled by router.push we just want to avoid\n // logging the error\n pushWithRedirect(error.to, toLocation\n // avoid an uncaught rejection, let push call triggerError\n )\n .then(failure => {\n // manual change in hash history #916 ending up in the URL not\n // changing but it was changed by the manual url change, so we\n // need to manually change it ourselves\n if (isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ |\n 16 /* NAVIGATION_DUPLICATED */) &&\n !info.delta &&\n info.type === NavigationType.pop) {\n routerHistory.go(-1, false);\n }\n })\n .catch(noop);\n // avoid the then branch\n return Promise.reject();\n }\n // do not restore history on unknown direction\n if (info.delta)\n routerHistory.go(-info.delta, false);\n // unrecognized error, transfer to the global handler\n return triggerError(error, toLocation, from);\n })\n .then((failure) => {\n failure =\n failure ||\n finalizeNavigation(\n // after navigation, all matched components are resolved\n toLocation, from, false);\n // revert the navigation\n if (failure) {\n if (info.delta) {\n routerHistory.go(-info.delta, false);\n }\n else if (info.type === NavigationType.pop &&\n isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ | 16 /* NAVIGATION_DUPLICATED */)) {\n // manual change in hash history #916\n // it's like a push but lacks the information of the direction\n routerHistory.go(-1, false);\n }\n }\n triggerAfterEach(toLocation, from, failure);\n })\n .catch(noop);\n });\n }\n // Initialization and Errors\n let readyHandlers = useCallbacks();\n let errorHandlers = useCallbacks();\n let ready;\n /**\n * Trigger errorHandlers added via onError and throws the error as well\n *\n * @param error - error to throw\n * @param to - location we were navigating to when the error happened\n * @param from - location we were navigating from when the error happened\n * @returns the error as a rejected promise\n */\n function triggerError(error, to, from) {\n markAsReady(error);\n const list = errorHandlers.list();\n if (list.length) {\n list.forEach(handler => handler(error, to, from));\n }\n else {\n {\n warn('uncaught error during route navigation:');\n }\n console.error(error);\n }\n return Promise.reject(error);\n }\n function isReady() {\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\n return Promise.resolve();\n return new Promise((resolve, reject) => {\n readyHandlers.add([resolve, reject]);\n });\n }\n /**\n * Mark the router as ready, resolving the promised returned by isReady(). Can\n * only be called once, otherwise does nothing.\n * @param err - optional error\n */\n function markAsReady(err) {\n if (ready)\n return;\n ready = true;\n setupListeners();\n readyHandlers\n .list()\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\n readyHandlers.reset();\n }\n // Scroll behavior\n function handleScroll(to, from, isPush, isFirstNavigation) {\n const { scrollBehavior } = options;\n if (!isBrowser || !scrollBehavior)\n return Promise.resolve();\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\n ((isFirstNavigation || !isPush) &&\n history.state &&\n history.state.scroll) ||\n null;\n return nextTick()\n .then(() => scrollBehavior(to, from, scrollPosition))\n .then(position => position && scrollToPosition(position))\n .catch(err => triggerError(err, to, from));\n }\n const go = (delta) => routerHistory.go(delta);\n let started;\n const installedApps = new Set();\n const router = {\n currentRoute,\n addRoute,\n removeRoute,\n hasRoute,\n getRoutes,\n resolve,\n options,\n push,\n replace,\n go,\n back: () => go(-1),\n forward: () => go(1),\n beforeEach: beforeGuards.add,\n beforeResolve: beforeResolveGuards.add,\n afterEach: afterGuards.add,\n onError: errorHandlers.add,\n isReady,\n install(app) {\n const router = this;\n app.component('RouterLink', RouterLink);\n app.component('RouterView', RouterView);\n app.config.globalProperties.$router = router;\n Object.defineProperty(app.config.globalProperties, '$route', {\n enumerable: true,\n get: () => unref(currentRoute),\n });\n // this initial navigation is only necessary on client, on server it doesn't\n // make sense because it will create an extra unnecessary navigation and could\n // lead to problems\n if (isBrowser &&\n // used for the initial navigation client side to avoid pushing\n // multiple times when the router is used in multiple apps\n !started &&\n currentRoute.value === START_LOCATION_NORMALIZED) {\n // see above\n started = true;\n push(routerHistory.location).catch(err => {\n warn('Unexpected error when starting the router:', err);\n });\n }\n const reactiveRoute = {};\n for (const key in START_LOCATION_NORMALIZED) {\n // @ts-expect-error: the key matches\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\n }\n app.provide(routerKey, router);\n app.provide(routeLocationKey, reactive(reactiveRoute));\n app.provide(routerViewLocationKey, currentRoute);\n const unmountApp = app.unmount;\n installedApps.add(app);\n app.unmount = function () {\n installedApps.delete(app);\n // the router is not attached to an app anymore\n if (installedApps.size < 1) {\n // invalidate the current navigation\n pendingLocation = START_LOCATION_NORMALIZED;\n removeHistoryListener && removeHistoryListener();\n currentRoute.value = START_LOCATION_NORMALIZED;\n started = false;\n ready = false;\n }\n unmountApp();\n };\n if (isBrowser) {\n addDevtools(app, router, matcher);\n }\n },\n };\n return router;\n}\nfunction runGuardQueue(guards) {\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\n}\nfunction extractChangingRecords(to, from) {\n const leavingRecords = [];\n const updatingRecords = [];\n const enteringRecords = [];\n const len = Math.max(from.matched.length, to.matched.length);\n for (let i = 0; i < len; i++) {\n const recordFrom = from.matched[i];\n if (recordFrom) {\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\n updatingRecords.push(recordFrom);\n else\n leavingRecords.push(recordFrom);\n }\n const recordTo = to.matched[i];\n if (recordTo) {\n // the type doesn't matter because we are comparing per reference\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\n enteringRecords.push(recordTo);\n }\n }\n }\n return [leavingRecords, updatingRecords, enteringRecords];\n}\n\n/**\n * Returns the router instance. Equivalent to using `$router` inside\n * templates.\n */\nfunction useRouter() {\n return inject(routerKey);\n}\n/**\n * Returns the current route location. Equivalent to using `$route` inside\n * templates.\n */\nfunction useRoute() {\n return inject(routeLocationKey);\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// origin-end"],"names":["getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","navigator","window","global","HOOK_SETUP","setupDevtoolsPlugin","pluginDescriptor","setupFn","hook","emit","target","list","__VUE_DEVTOOLS_PLUGINS__","push","hasSymbol","Symbol","toStringTag","PolySymbol","name","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","isBrowser","isESModule","obj","__esModule","assign","Object","applyToParams","fn","params","newParams","key","value","Array","isArray","map","noop","warn","msg","args","from","arguments","slice","console","apply","concat","TRAILING_SLASH_RE","removeTrailingSlash","path","replace","parseURL","parseQuery","location","currentLocation","query","searchString","hash","searchPos","indexOf","hashPos","length","resolveRelativePath","fullPath","stringifyURL","stringifyQuery","stripBase","pathname","base","toLowerCase","startsWith","isSameRouteLocation","a","b","aLastIndex","matched","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","keys","isSameRouteLocationParamsValue","isEquivalentArray","every","i","to","fromSegments","split","toSegments","position","toPosition","segment","join","NavigationType","NavigationDirection","START","normalizeBase","baseEl","document","querySelector","getAttribute","BEFORE_HASH_RE","createHref","getElementPosition","el","offset","docRect","documentElement","getBoundingClientRect","elRect","behavior","left","top","computeScrollPosition","pageXOffset","pageYOffset","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getElementById","foundEl","err","style","scrollTo","getScrollKey","delta","history","state","scrollPositions","Map","saveScrollPosition","scrollPosition","set","getSavedScrollPosition","scroll","get","delete","createBaseLocation","protocol","host","createCurrentLocation","search","slicePos","includes","pathFromHash","useHistoryListeners","historyState","listeners","teardowns","pauseState","popStateHandler","fromState","forEach","listener","type","pop","direction","forward","back","unknown","pauseListeners","listen","callback","teardown","index","splice","beforeUnloadListener","replaceState","destroy","removeEventListener","addEventListener","buildState","current","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","data","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","bind","defineProperty","enumerable","createMemoryHistory","queue","setLocation","info","shouldTrigger","Math","max","min","createWebHashHistory","endsWith","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","undefined","meta","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","ErrorTypeMessages","JSON","stringify","stringifyRoute","createRouterError","Error","isNavigationFailure","error","propertiesToLog","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","strict","start","end","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","options","score","pattern","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re","message","subPattern","RegExp","parse","match","avoidDuplicatedSlash","param","text","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","test","createRouteRecordMatcher","record","parent","parser","existingKeys","Set","has","add","matcher","children","alias","createRouterMatcher","routes","globalOptions","matchers","matcherMap","mergeOptions","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","components","originalMatcher","normalizedRecord","parentPath","connectingSlash","checkMissingParamsInAbsolutePath","checkSameParams","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","resolve","paramsFromLocation","filter","k","find","m","parentMatcher","unshift","mergeMetaFields","redirect","beforeEnter","props","normalizeRecordProps","instances","leaveGuards","updateGuards","enterCallbacks","default","component","propsObject","reduce","defaults","partialOptions","isSameParam","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","decodeURIComponent","hasLeadingIM","searchParams","searchParam","eqPos","currentValue","values","v","normalizeQuery","normalizedQuery","useCallbacks","handlers","handler","reset","registerGuard","guard","removeFromList","onUnmounted","onDeactivated","onActivated","onBeforeRouteLeave","leaveGuard","getCurrentInstance","activeRecord","inject","onBeforeRouteUpdate","updateGuard","guardToPromiseFn","enterCallbackArray","Promise","reject","next","valid","guardReturn","call","canOnlyBeCalledOnce","guardCall","then","toString","resolvedValue","_called","catch","called","extractComponentsGuards","guardType","guards","rawComponent","String","promise","__asyncLoader","__warnedDefineAsync","isRouteComponent","__vccOpts","componentPromise","resolved","resolvedComponent","useLink","router","currentRoute","computed","unref","activeRecordIndex","routeMatched","currentMatched","findIndex","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","e","guardEvent","instance","linkContextDevtools","__vrl_devtools","watchEffect","flush","href","RouterLinkImpl","defineComponent","required","Boolean","activeClass","exactActiveClass","custom","ariaCurrentValue","setup","slots","link","reactive","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","h","onClick","class","RouterLink","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","preventDefault","outer","inner","innerValue","outerValue","some","propClass","globalClass","defaultClass","RouterViewImpl","inheritAttrs","attrs","warnDeprecatedUsage","injectedRoute","routeToDisplay","depth","matchedRouteRef","provide","viewRef","ref","watch","oldInstance","oldName","size","matchedRoute","ViewComponent","currentName","normalizeSlot","Component","routePropsOption","routeProps","onVnodeUnmounted","vnode","isUnmounted","internalInstances","r","__vrv_devtools","slot","slotContent","RouterView","parentName","formatRouteLocation","routeLocation","tooltip","copy","omit","_custom","readOnly","display","formatDisplay","routerId","addDevtools","app","__hasDevtools","id","label","packageName","homepage","logo","componentStateTypes","api","on","inspectComponent","payload","ctx","instanceData","editable","visitComponentTree","treeNode","node","componentInstance","tags","textColor","backgroundColor","PINK_500","__devtoolsApi","devtoolsData","ORANGE_400","LIME_500","BLUE_600","refreshRoutesView","notifyComponentUpdate","sendInspectorTree","routerInspectorId","sendInspectorState","navigationsLayerId","addTimelineLayer","color","onError","addTimelineEvent","layerId","event","title","subtitle","logType","time","Date","now","groupId","__navigationId","navigationId","beforeEach","afterEach","failure","status","addInspector","icon","treeFilterPlaceholder","activeRoutesPayload","resetMatchStateOnRouteRecord","isRouteMatching","markRouteRecordActive","rootNodes","formatRouteRecordForInspector","getInspectorTree","inspectorId","getInspectorState","__vd_id","nodeId","formatRouteRecordMatcherForStateInspector","modifierForKey","fields","CYAN_400","DARK","__vd_match","__vd_exactActive","__vd_active","routeRecordId","EXTRACT_REGEXP_RE","childRoute","found","nonEndingRE","child","decodedPath","ret","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","shallowRef","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","force","shouldRedirect","toLocation","handleScroll","triggerError","_count","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","reverse","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","markAsReady","removeHistoryListener","setupListeners","_from","readyHandlers","errorHandlers","ready","isReady","nextTick","started","installedApps","beforeResolve","install","config","globalProperties","$router","reactiveRoute","unmountApp","unmount","len","recordFrom","recordTo","useRouter","useRoute"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.29 |
proxy
|
phpinfo
|
Settings