Current Path : /var/www/www-root/data/www/www.monolith-realty.ru/bitrix/js/ui/vue/router/dist/ |
Current File : /var/www/www-root/data/www/www.monolith-realty.ru/bitrix/js/ui/vue/router/dist/router.bundle.js.map |
{"version":3,"file":"router.bundle.js","sources":["../src/router.js"],"sourcesContent":["/*!\n * vue-router v3.6.5\n * (c) 2021 Evan You\n * @license MIT\n *\n * @source: https://unpkg.com/vue-router@3.5.3/dist/vue-router.esm.browser.js\n */\n\n/**\n * Modify list for integration with Bitrix Framework:\n * - replaced usages window.Vue to local value of Vue;\n * - add method VueRouter.create\n */\n\nimport {VueVendor as Vue} from \"ui.vue\";\n\n// origin-start\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error(`[vue-router] ${message}`)\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn(`[vue-router] ${message}`);\n }\n}\n\nfunction extend (a, b) {\n for (const key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nconst encodeReserveRE = /[!'()*]/g;\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\nconst commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nconst encode = str =>\n encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ',');\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n {\n warn(false, `Error decoding \"${str}\". Leaving it intact.`);\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery = {},\n _parseQuery\n) {\n const parse = _parseQuery || parseQuery;\n let parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n warn(false, e.message);\n parsedQuery = {};\n }\n for (const key in extraQuery) {\n const value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nconst castQueryParamValue = value => (value == null || typeof value === 'object' ? value : String(value));\n\nfunction parseQuery (query) {\n const res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(param => {\n const parts = param.replace(/\\+/g, ' ').split('=');\n const key = decode(parts.shift());\n const val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n const res = obj\n ? Object.keys(obj)\n .map(key => {\n const val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n const result = [];\n val.forEach(val2 => {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(x => x.length > 0)\n .join('&')\n : null;\n return res ? `?${res}` : ''\n}\n\n/* */\n\nconst trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n const stringifyQuery = router && router.options.stringifyQuery;\n\n let query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n const route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n const res = {};\n for (const key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nconst START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n const res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n { path, query = {}, hash = '' },\n _stringifyQuery\n) {\n const stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a = {}, b = {}) {\n // handle null value #1566\n if (!a || !b) return a === b\n const aKeys = Object.keys(a).sort();\n const bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every((key, i) => {\n const aVal = a[key];\n const bKey = bKeys[i];\n if (bKey !== key) return false\n const bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) return aVal === bVal\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (const key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (let i = 0; i < route.matched.length; i++) {\n const record = route.matched[i];\n for (const name in record.instances) {\n const instance = record.instances[name];\n const cbs = record.enteredCbs[name];\n if (!instance || !cbs) continue\n delete record.enteredCbs[name];\n for (let i = 0; i < cbs.length; i++) {\n if (!instance._isBeingDestroyed) cbs[i](instance);\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render (_, { props, children, parent, data }) {\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n const h = parent.$createElement;\n const name = props.name;\n const route = parent.$route;\n const cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n let depth = 0;\n let inactive = false;\n while (parent && parent._routerRoot !== parent) {\n const vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n const cachedData = cache[name];\n const cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n const matched = route.matched[depth];\n const component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = (vm, val) => {\n // val could be undefined for unregistration\n const current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = (_, vnode) => {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = (vnode) => {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n const configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route,\n configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n let propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n const attrs = data.attrs = data.attrs || {};\n for (const key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n {\n warn(\n false,\n `props in \"${route.path}\" is a ${typeof config}, ` +\n `expecting an object, function or boolean.`\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n const firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n const stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n const segments = relative.replace(/^\\//, '').split('/');\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n let hash = '';\n let query = '';\n\n const hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n const queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path,\n query,\n hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nconst regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n const filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') params[0] = params.pathMatch;\n\n return filler(params, { pretty: true })\n } catch (e) {\n {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', `missing param for ${routeMsg}: ${e.message}`);\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n let next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n const params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n const params = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params;\n } else if (current.matched.length) {\n const rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params, `path ${current.path}`);\n } else {\n warn(false, `relative params navigation requires a current route.`);\n }\n return next\n }\n\n const parsedPath = parsePath(next.path || '');\n const basePath = (current && current.path) || '/';\n const path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n const query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n let hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = `#${hash}`;\n }\n\n return {\n _normalized: true,\n path,\n query,\n hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nconst toTypes = [String, Object];\nconst eventTypes = [String, Array];\n\nconst noop = () => {};\n\nlet warnedCustomSlot;\nlet warnedTagProp;\nlet warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render (h) {\n const router = this.$router;\n const current = this.$route;\n const { location, route, href } = router.resolve(\n this.to,\n current,\n this.append\n );\n\n const classes = {};\n const globalActiveClass = router.options.linkActiveClass;\n const globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n const activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n const exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n const activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n const exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n const compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n const ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n const handler = e => {\n if (guardEvent(e)) {\n if (this.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n const on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(e => {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n const data = { class: classes };\n\n const scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href,\n route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (!this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an <a> element. Use the custom prop to remove this warning:\\n<router-link v-slot=\"{ navigate, href }\" custom></router-link>\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n {\n warn(\n false,\n `<router-link> with to=\"${\n this.to\n }\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.`\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n `<router-link>'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.`\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n `<router-link>'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.`\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first <a> child and apply listener and href\n const a = findAnchor(this.$slots.default);\n if (a) {\n // in case the <a> is a static node\n a.isStatic = false;\n const aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (const event in aData.on) {\n const handler = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler) ? handler : [handler];\n }\n }\n // append new listeners for router-link\n for (const event in on) {\n if (event in aData.on) {\n // on[event] is always a function\n aData.on[event].push(on[event]);\n } else {\n aData.on[event] = handler;\n }\n }\n\n const aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have <a> child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return\n // don't redirect when preventDefault called\n if (e.defaultPrevented) return\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) return\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n const target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) return\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n let child;\n for (let i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nlet _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) return\n install.installed = true;\n\n _Vue = Vue;\n\n const isDef = v => v !== undefined;\n\n const registerInstance = (vm, callVal) => {\n let i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n const strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nconst inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n const pathList = oldPathList || [];\n // $flow-disable-line\n const pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n const nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(route => {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (let i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n {\n // warn if routes do not include leading slashes\n const found = pathList\n // check for missing leading slash\n .filter(path => path && path.charAt(0) !== '*' && path.charAt(0) !== '/');\n\n if (found.length > 0) {\n const pathNames = found.map(path => `- ${path}`).join('\\n');\n warn(false, `Non-nested routes must include a leading slash character. Fix the following routes: \\n${pathNames}`);\n }\n }\n\n return {\n pathList,\n pathMap,\n nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n const { path, name } = route;\n {\n assert(path != null, `\"path\" is required in a route configuration.`);\n assert(\n typeof route.component !== 'string',\n `route config \"component\" for path: ${String(\n path || name\n )} cannot be a ` + `string id. Use an actual component instead.`\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n `Route with path \"${path}\" contains unencoded characters, make sure ` +\n `your path is correctly encoded before passing it to the router. Use ` +\n `encodeURI to encode static segments of your path.`\n );\n }\n\n const pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n const normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n const record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name,\n parent,\n matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(child => /^\\/?$/.test(child.path))\n ) {\n warn(\n false,\n `Named Route '${route.name}' has a default child route. ` +\n `When navigating to this named route (:to=\"{name: '${\n route.name\n }'}\"), ` +\n `the default child route will not be rendered. Remove the name from ` +\n `this route and use the name of the default child route for named ` +\n `links instead.`\n );\n }\n }\n route.children.forEach(child => {\n const childMatchAs = matchAs\n ? cleanPath(`${matchAs}/${child.path}`)\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n const aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (let i = 0; i < aliases.length; ++i) {\n const alias = aliases[i];\n if (alias === path) {\n warn(\n false,\n `Found an alias with the same value as the path: \"${path}\". You have to remove that alias. It will be ignored in development.`\n );\n // skip in dev to make it work\n continue\n }\n\n const aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (!matchAs) {\n warn(\n false,\n `Duplicate named routes definition: ` +\n `{ name: \"${name}\", path: \"${record.path}\" }`\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n const regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n {\n const keys = Object.create(null);\n regex.keys.forEach(key => {\n warn(\n !keys[key.name],\n `Duplicate param keys in route with path: \"${path}\"`\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) path = path.replace(/\\/$/, '');\n if (path[0] === '/') return path\n if (parent == null) return path\n return cleanPath(`${parent.path}/${path}`)\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n const { pathList, pathMap, nameMap } = createRouteMap(routes);\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n const parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(alias => ({ path: alias, children: [route] })),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(path => pathMap[path])\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n const location = normalizeLocation(raw, currentRoute, false, router);\n const { name } = location;\n\n if (name) {\n const record = nameMap[name];\n {\n warn(record, `Route with name '${name}' does not exist`);\n }\n if (!record) return _createRoute(null, location)\n const paramNames = record.regex.keys\n .filter(key => !key.optional)\n .map(key => key.name);\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (const key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, `named route \"${name}\"`);\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (let i = 0; i < pathList.length; i++) {\n const path = pathList[i];\n const record = pathMap[path];\n if (matchRoute(record.regex, location.path, location.params)) {\n return _createRoute(record, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n const originalRedirect = record.redirect;\n let redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n {\n warn(\n false, `invalid redirect option: ${JSON.stringify(redirect)}`\n );\n }\n return _createRoute(null, location)\n }\n\n const re = redirect;\n const { name, path } = re;\n let { query, hash, params } = location;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n const targetRecord = nameMap[name];\n {\n assert(targetRecord, `redirect failed: named route \"${name}\" not found.`);\n }\n return match({\n _normalized: true,\n name,\n query,\n hash,\n params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n const rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n const resolvedPath = fillParams(rawPath, params, `redirect route with path \"${rawPath}\"`);\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query,\n hash\n }, undefined, location)\n } else {\n {\n warn(false, `invalid redirect option: ${JSON.stringify(redirect)}`);\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n const aliasedPath = fillParams(matchAs, location.params, `aliased route with path \"${matchAs}\"`);\n const aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n const matched = aliasedMatch.matched;\n const aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match,\n addRoute,\n getRoutes,\n addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n const m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (let i = 1, len = m.length; i < len; ++i) {\n const key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nconst Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nlet _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nconst positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n const protocolAndPath = window.location.protocol + '//' + window.location.host;\n const absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n const stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return () => {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n const behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n {\n assert(typeof behavior === 'function', `scrollBehavior must be a function`);\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(() => {\n const position = getScrollPosition();\n const shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(shouldScroll => {\n scrollToPosition((shouldScroll), position);\n })\n .catch(err => {\n {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n const key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n const key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n const docEl = document.documentElement;\n const docRect = docEl.getBoundingClientRect();\n const elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nconst hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n const isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n const el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n let offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nconst supportsPushState =\n inBrowser &&\n (function () {\n const ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n const history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n const stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nconst NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n `Redirected when going from \"${from.fullPath}\" to \"${stringifyRoute(\n to\n )}\" via a navigation guard.`\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n const error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n `Avoided redundant navigation to current location: \"${from.fullPath}\".`\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n `Navigation cancelled from \"${from.fullPath}\" to \"${\n to.fullPath\n }\" with a new navigation.`\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n `Navigation aborted from \"${from.fullPath}\" to \"${\n to.fullPath\n }\" via a navigation guard.`\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n const error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nconst propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') return to\n if ('path' in to) return to.path\n const location = {};\n propertiesToLog.forEach(key => {\n if (key in to) location[key] = to[key];\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n const step = index => {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], () => {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return (to, from, next) => {\n let hasAsync = false;\n let pending = 0;\n let error = null;\n\n flatMapComponents(matched, (def, _, match, key) => {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n const resolve = once(resolvedDef => {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n const reject = once(reason => {\n const msg = `Failed to resolve async component ${key}: ${reason}`;\n warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n let res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n const comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) next();\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(m => {\n return Object.keys(m.components).map(key => fn(\n m.components[key],\n m.instances[key],\n m, key\n ))\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nconst hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n let called = false;\n return function (...args) {\n if (called) return\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nclass History {\n\n\n\n\n\n\n\n\n\n\n\n\n // implemented by sub-classes\n\n\n\n\n\n\n\n constructor (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n }\n\n listen (cb) {\n this.cb = cb;\n }\n\n onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n }\n\n onError (errorCb) {\n this.errorCbs.push(errorCb);\n }\n\n transitionTo (\n location,\n onComplete,\n onAbort\n ) {\n let route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(cb => {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n const prev = this.current;\n this.confirmTransition(\n route,\n () => {\n this.updateRoute(route);\n onComplete && onComplete(route);\n this.ensureURL();\n this.router.afterHooks.forEach(hook => {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this.ready) {\n this.ready = true;\n this.readyCbs.forEach(cb => {\n cb(route);\n });\n }\n },\n err => {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this.ready = true;\n this.readyErrorCbs.forEach(cb => {\n cb(err);\n });\n }\n }\n }\n );\n }\n\n confirmTransition (route, onComplete, onAbort) {\n const current = this.current;\n this.pending = route;\n const abort = err => {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this.errorCbs.length) {\n this.errorCbs.forEach(cb => {\n cb(err);\n });\n } else {\n {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n const lastRouteIndex = route.matched.length - 1;\n const lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n const { updated, deactivated, activated } = resolveQueue(\n this.current.matched,\n route.matched\n );\n\n const queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(m => m.beforeEnter),\n // async components\n resolveAsyncComponents(activated)\n );\n\n const iterator = (hook, next) => {\n if (this.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, (to) => {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this.replace(to);\n } else {\n this.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, () => {\n // wait until async components are resolved before\n // extracting in-component enter guards\n const enterGuards = extractEnterGuards(activated);\n const queue = enterGuards.concat(this.router.resolveHooks);\n runQueue(queue, iterator, () => {\n if (this.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this.pending = null;\n onComplete(route);\n if (this.router.app) {\n this.router.app.$nextTick(() => {\n handleRouteEntered(route);\n });\n }\n });\n });\n }\n\n updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n }\n\n setupListeners () {\n // Default implementation is empty\n }\n\n teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(cleanupListener => {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n }\n}\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\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(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n let i;\n const max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n const guards = flatMapComponents(records, (def, instance, match, key) => {\n const guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(guard => bind(guard, instance, match, key))\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n (guard, _, match, key) => {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, cb => {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nclass HTML5History extends History {\n\n\n constructor (router, base) {\n super(router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n setupListeners () {\n if (this.listeners.length > 0) {\n return\n }\n\n const router = this.router;\n const expectScroll = router.options.scrollBehavior;\n const supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n const handleRoutingEvent = () => {\n const current = this.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n const location = getLocation(this.base);\n if (this.current === START && location === this._startLocation) {\n return\n }\n\n this.transitionTo(location, route => {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(() => {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n }\n\n go (n) {\n window.history.go(n);\n }\n\n push (location, onComplete, onAbort) {\n const { current: fromRoute } = this;\n this.transitionTo(location, route => {\n pushState(cleanPath(this.base + route.fullPath));\n handleScroll(this.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n }\n\n replace (location, onComplete, onAbort) {\n const { current: fromRoute } = this;\n this.transitionTo(location, route => {\n replaceState(cleanPath(this.base + route.fullPath));\n handleScroll(this.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n }\n\n ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n const current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n }\n\n getCurrentLocation () {\n return getLocation(this.base)\n }\n}\n\nfunction getLocation (base) {\n let path = window.location.pathname;\n const pathLowerCase = path.toLowerCase();\n const baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nclass HashHistory extends History {\n constructor (router, base, fallback) {\n super(router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n setupListeners () {\n if (this.listeners.length > 0) {\n return\n }\n\n const router = this.router;\n const expectScroll = router.options.scrollBehavior;\n const supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n const handleRoutingEvent = () => {\n const current = this.current;\n if (!ensureSlash()) {\n return\n }\n this.transitionTo(getHash(), route => {\n if (supportsScroll) {\n handleScroll(this.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n const eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(() => {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n }\n\n push (location, onComplete, onAbort) {\n const { current: fromRoute } = this;\n this.transitionTo(\n location,\n route => {\n pushHash(route.fullPath);\n handleScroll(this.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n }\n\n replace (location, onComplete, onAbort) {\n const { current: fromRoute } = this;\n this.transitionTo(\n location,\n route => {\n replaceHash(route.fullPath);\n handleScroll(this.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n }\n\n go (n) {\n window.history.go(n);\n }\n\n ensureURL (push) {\n const current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n }\n\n getCurrentLocation () {\n return getHash()\n }\n}\n\nfunction checkFallback (base) {\n const location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n const path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n let href = window.location.href;\n const index = href.indexOf('#');\n // empty path\n if (index < 0) return ''\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n const href = window.location.href;\n const i = href.indexOf('#');\n const base = i >= 0 ? href.slice(0, i) : href;\n return `${base}#${path}`\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nclass AbstractHistory extends History {\n\n\n\n constructor (router, base) {\n super(router, base);\n this.stack = [];\n this.index = -1;\n }\n\n push (location, onComplete, onAbort) {\n this.transitionTo(\n location,\n route => {\n this.stack = this.stack.slice(0, this.index + 1).concat(route);\n this.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n }\n\n replace (location, onComplete, onAbort) {\n this.transitionTo(\n location,\n route => {\n this.stack = this.stack.slice(0, this.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n }\n\n go (n) {\n const targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n const route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n () => {\n const prev = this.current;\n this.index = targetIndex;\n this.updateRoute(route);\n this.router.afterHooks.forEach(hook => {\n hook && hook(route, prev);\n });\n },\n err => {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this.index = targetIndex;\n }\n }\n );\n }\n\n getCurrentLocation () {\n const current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n }\n\n ensureURL () {\n // noop\n }\n}\n\n/* */\n\n\n\nclass VueRouter {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n constructor (options = {}) {\n {\n warn(this instanceof VueRouter, `Router must be called with the new operator.`);\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n let mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n {\n assert(false, `invalid mode: ${mode}`);\n }\n }\n }\n\n match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n }\n\n get currentRoute () {\n return this.history && this.history.current\n }\n\n init (app /* Vue component instance */) {\n assert(\n install.installed,\n `not installed. Make sure to call \\`Vue.use(VueRouter)\\` ` +\n `before creating root instance.`\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', () => {\n // clean out app from this.apps array once destroyed\n const index = this.apps.indexOf(app);\n if (index > -1) this.apps.splice(index, 1);\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this.app === app) this.app = this.apps[0] || null;\n\n if (!this.app) this.history.teardown();\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n const history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n const handleInitialScroll = routeOrError => {\n const from = history.current;\n const expectScroll = this.options.scrollBehavior;\n const supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this, routeOrError, from, false);\n }\n };\n const setupListeners = routeOrError => {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(route => {\n this.apps.forEach(app => {\n app._route = route;\n });\n });\n }\n\n beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n }\n\n beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n }\n\n afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n }\n\n onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n }\n\n onError (errorCb) {\n this.history.onError(errorCb);\n }\n\n push (location, onComplete, onAbort) {\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise((resolve, reject) => {\n this.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n }\n\n replace (location, onComplete, onAbort) {\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise((resolve, reject) => {\n this.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n }\n\n go (n) {\n this.history.go(n);\n }\n\n back () {\n this.go(-1);\n }\n\n forward () {\n this.go(1);\n }\n\n getMatchedComponents (to) {\n const route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(m => {\n return Object.keys(m.components).map(key => {\n return m.components[key]\n })\n })\n )\n }\n\n resolve (\n to,\n current,\n append\n ) {\n current = current || this.history.current;\n const location = normalizeLocation(to, current, append, this);\n const route = this.match(location, current);\n const fullPath = route.redirectedFrom || route.fullPath;\n const base = this.history.base;\n const href = createHref(base, fullPath, this.mode);\n return {\n location,\n route,\n href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n }\n\n getRoutes () {\n return this.matcher.getRoutes()\n }\n\n addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n }\n\n addRoutes (routes) {\n {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n }\n}\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return () => {\n const i = list.indexOf(fn);\n if (i > -1) list.splice(i, 1);\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.RouterLink = Link;\nVueRouter.RouterView = View;\nVueRouter.START_LOCATION = START;\n// origin-end\n\nVueRouter.create = (params) => new VueRouter(params);\nVue.use(VueRouter);\n\nexport {VueRouter};"],"names":["assert","condition","message","Error","warn","console","extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parse","parseQuery","parsedQuery","e","value","Array","isArray","map","castQueryParamValue","String","res","trim","split","forEach","param","parts","shift","val","length","join","undefined","push","stringifyQuery","obj","Object","keys","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","options","clone","route","name","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","parent","_stringifyQuery","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bKey","bVal","isIncludedRoute","current","target","indexOf","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","_isBeingDestroyed","View","functional","props","type","render","_","children","data","routerView","h","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","vm","hook","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","arr","prototype","call","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","TypeError","JSON","j","test","attachKeys","re","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","rawPath","parsedPath","basePath","toTypes","eventTypes","noop","warnedCustomSlot","warnedTagProp","warnedEventProp","Link","to","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","$options","propsData","findAnchor","$slots","isStatic","aData","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","_Vue","install","Vue","installed","isDef","v","registerInstance","callVal","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","history","destroyed","defineProperty","get","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","splice","found","pathNames","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","some","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","matchRoute","originalRedirect","hasOwnProperty","targetRecord","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","document","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","selector","getElementById","querySelector","style","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","url","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","queue","fn","cb","step","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","concat","apply","hasSymbol","Symbol","toStringTag","__esModule","called","args","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","errorCb","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","resolveQueue","updated","deactivated","activated","extractLeaveGuards","beforeHooks","extractUpdateHooks","iterator","enterGuards","extractEnterGuards","resolveHooks","cleanupListener","baseEl","max","Math","extractGuards","records","bind","reverse","guards","guard","extractGuard","bindGuard","boundRouteGuard","arguments","bindEnterGuard","routeEnterGuard","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","transitionTo","n","go","fromRoute","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","$once","teardown","handleInitialScroll","routeOrError","setupListeners","getCurrentLocation","listen","registerHook","onReady","onError","Promise","createHref","normalizedTo","list","version","RouterLink","RouterView","START_LOCATION","use"],"mappings":"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"}