{"version":3,"file":"npm.vue-router.js","mappings":"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","sources":["webpack:///../../node_modules/vue-router/dist/vue-router.esm.js"],"sourcesContent":["/*!\n * vue-router v3.4.9\n * (c) 2020 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\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 if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var 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 var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var 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 var result = [];\n val.forEach(function (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(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: 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 var res = {};\n for (var 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\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var 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 (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](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: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\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 var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var 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 var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var 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 var cachedData = cache[name];\n var 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 var matched = route.matched[depth];\n var 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: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var 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 = function (_, 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 = function (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 var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: 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 var 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 var attrs = data.attrs = data.attrs || {};\n for (var 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 if (process.env.NODE_ENV !== 'production') {\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 var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var 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 var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var 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 var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var 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: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//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\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var 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 if (process.env.NODE_ENV !== 'production') {\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 var 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 var 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 var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\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 exact: 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: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"RouterLink with to=\\\"\" + (this.to) + \"\\\" 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 if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var 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 (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have 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 var 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 var child;\n for (var 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\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var 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: function 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: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var 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\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var 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 if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + 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: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\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 var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: 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 if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.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: '\" + (route.name) + \"'\\\"), \" +\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(function (child) {\n var 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 var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && 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 var 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 (process.env.NODE_ENV !== 'production' && !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 var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (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 var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var 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 (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var 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 if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\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 var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var 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: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\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 var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var 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: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var 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\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar 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 var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\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 var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var 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(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var 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 var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var 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\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var 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 var 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 var 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\nvar supportsPushState =\n inBrowser &&\n (function () {\n var 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 var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var 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/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n// When changing thing, also edit router.d.ts\nvar 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 var 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 \\\"\" + (to.fullPath) + \"\\\" 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 \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var 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\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (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 resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (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 var resolve = once(function (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 var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var 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 var 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(function (m) {\n return Object.keys(m.components).map(function (key) { return 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\nvar 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 var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (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\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function 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\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var 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(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.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$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (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$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var 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 return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var 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(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.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$1.replace(to);\n } else {\n this$1.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, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (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\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var 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 var i;\n var 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 var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return 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 function (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, function (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\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.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 var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var 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 var href = window.location.href;\n var 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 var href = window.location.href;\n var i = href.indexOf('#');\n var 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\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\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 var 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 if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\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', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.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$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) { this$1.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 var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var 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(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var 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\nVueRouter.install = install;\nVueRouter.version = '3.4.9';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n"],"names":["extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","process","castQueryParamValue","value","_typeof","String","parseQuery","query","res","trim","split","forEach","param","parts","shift","val","length","join","undefined","Array","isArray","push","stringifyQuery","obj","Object","keys","map","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","options","clone","e","route","name","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","parent","ref","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bVal","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","functional","props","type","default","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","current","hook","prepatch","vnode","componentInstance","init","propsToPass","config","resolveProps","attrs","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","cleanPath","isarray","arr","prototype","call","pathToRegexp_1","pathToRegexp","parse_1","parse","compile_1","tokensToFunction","tokensToFunction_1","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","offset","slice","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","matches","flags","opts","pretty","token","TypeError","JSON","stringify","j","test","attachKeys","re","sensitive","strict","end","endsWithDelimiter","groups","source","match","regexpToRegexp","arrayToRegexp","stringToRegexp","compile","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","hashIndex","indexOf","queryIndex","parsePath","basePath","extraQuery","_parseQuery","parsedQuery","resolveQuery","_Vue","noop","Link","to","required","tag","exact","Boolean","activeClass","exactActiveClass","ariaCurrentValue","event","this$1","this","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","target","queryIncludes","isIncludedRoute","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","beforeEnter","childMatchAs","alias","aliases","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","aliasedMatch","aliasedRecord","addRoutes","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","history","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","isValidPosition","isNumber","normalizePosition","v","hashStartsWithNumberRE","isObject","selector","el","document","getElementById","querySelector","docRect","documentElement","getBoundingClientRect","elRect","left","top","getElementPosition","style","scrollTo","ua","supportsPushState","navigator","userAgent","pushState","url","runQueue","queue","fn","cb","step","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","propertiesToLog","stringifyRoute","createNavigationCancelledError","message","error","Error","_isRouter","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","__esModule","hasSymbol","Symbol","toStringTag","resolved","reject","reason","msg","comp","flatten","concat","apply","called","args","arguments","History","baseEl","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","extractGuards","records","bind","reverse","guards","guard","extractGuard","bindGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","console","lastRouteIndex","lastCurrentIndex","max","Math","updated","activated","deactivated","resolveQueue","extractLeaveGuards","beforeHooks","extractUpdateHooks","iterator","createNavigationAbortedError","enterGuards","bindEnterGuard","extractEnterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","toLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","configurable","registerHook","list","get","$once","routeOrError","handleInitialScroll","_route","beforeEach","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","createHref","normalizedTo","defineProperties","install","Vue","installed","isDef","registerInstance","callVal","$options","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","destroyed","defineProperty","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","version","use"],"sourceRoot":""}