{"version":3,"file":"js/chunk-vendors-637fdb70.b25d8336.js","mappings":"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","sources":["webpack://ida-jandaya/./node_modules/vue-axios/dist/vue-axios.esm.min.js","webpack://ida-jandaya/./node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack://ida-jandaya/./node_modules/vue-property-decorator/lib/helpers/metadata.js","webpack://ida-jandaya/./node_modules/vue-router/dist/vue-router.esm.js"],"sourcesContent":["function _typeof(o){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&\"function\"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?\"symbol\":typeof o})(o)}function plugin(o,e){if(!plugin.installed)if(e){if(plugin.installed=!0,o.version&&o.version.split(\".\")[0]<3)Object.defineProperties(o.prototype,{axios:{get:function(){return e}},$http:{get:function(){return e}}});else{if(!(o.version&&o.version.split(\".\")[0]>=3))return void console.error(\"Unknown Vue version\");o.config.globalProperties.axios=e,o.config.globalProperties.$http=e}o.axios=e,o.$http=e}else console.error(\"You have to install axios\")}\"object\"==(\"undefined\"==typeof exports?\"undefined\":_typeof(exports))?module.exports=plugin:\"function\"==typeof define&&define.amd?define([],(function(){return plugin})):window.Vue&&window.axios&&window.Vue.use&&Vue.use(plugin,window.axios);export{plugin as default};","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\nvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\nexport function applyMetadata(options, target, key) {\n if (reflectMetadataIsSupported) {\n if (!Array.isArray(options) &&\n typeof options !== 'function' &&\n !options.hasOwnProperty('type') &&\n typeof options.type === 'undefined') {\n var type = Reflect.getMetadata('design:type', target, key);\n if (type !== Object) {\n options.type = type;\n }\n }\n }\n}\n","/*!\n * vue-router v3.5.2\n * (c) 2021 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, 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 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 warnedCustomSlot;\nvar warnedTagProp;\nvar 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: 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, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\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 (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\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 (\" 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 (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'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 \"'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: 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 parentRoute\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, parentRoute);\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 alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\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 addRoute (parentOrRoute, route) {\n var 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(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\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 addRoute: addRoute,\n getRoutes: getRoutes,\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 var pathLowerCase = path.toLowerCase();\n var 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\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.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function 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\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\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\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.5.2';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","plugin","e","installed","version","split","Object","defineProperties","axios","get","$http","console","error","config","globalProperties","exports","module","define","window","Vue","use","obj","_defineProperty","key","value","defineProperty","enumerable","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","i","arr2","length","iter","toString","call","from","TypeError","reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","forwardMetadata","getOwnPropertyNames","forEach","propertyKey","metaKeys","metaKey","metadata","getOwnMetadata","fakeArray","__proto__","hasProto","isPrimitive","type","collectDataFromConstructor","vm","Component","originalInit","_init","_this","this","keys","$options","props","hasOwnProperty","push","set","data","plainData","undefined","$internalHooks","componentFactory","options","arguments","name","_componentTag","proto","indexOf","descriptor","getOwnPropertyDescriptor","methods","mixins","computed","decorators","__decorators__","fn","superProto","getPrototypeOf","Super","Extended","extend","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","apply","getMetadata","warn","condition","message","a","b","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parse","parseQuery","map","castQueryParamValue","String","res","trim","param","parts","shift","val","join","stringifyQuery","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","route","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","parent","ref","_stringifyQuery","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","aVal","bKey","bVal","isIncludedRoute","current","target","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","functional","default","render","_","children","routerView","h","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","hook","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","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","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","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","noop","Link","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","install","isDef","v","registerInstance","callVal","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","history","destroyed","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","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","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","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","runQueue","queue","cb","step","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","Error","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","concat","hasSymbol","toStringTag","__esModule","called","args","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","max","Math","updated","activated","deactivated","extractGuards","records","bind","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","registerHook","list","createHref","$once","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","normalizedTo","START_LOCATION"],"sourceRoot":""}