{"version":3,"file":"js/347.1bfefb7d.js","mappings":"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","sources":["webpack://ibe/./node_modules/vue-router/dist/vue-router.esm.js","webpack://ibe/./src/router/routes.js","webpack://ibe/./src/router/index.js","webpack://ibe/./node_modules/vuex-router-sync/index.js"],"sourcesContent":["/*!\n * vue-router v3.4.3\n * (c) 2020 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\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\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\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\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\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\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"RouterLink with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = val;\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 window.scrollTo(position.x, position.y);\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\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 this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\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 this$1.ready = true;\n // Initial redirection should still trigger the onReady onSuccess\n // https://github.com/vuejs/vue-router/issues/3225\n if (!isNavigationFailure(err, NavigationFailureType.redirected)) {\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\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 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 this.pending = route;\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 var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\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 postEnterCbs.forEach(function (cb) {\n cb();\n });\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.teardownListeners = function teardownListeners () {\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\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 cbs,\n isValid\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n next(cb);\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (\n instances[key] &&\n !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n ) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\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 = decodeURI(window.location.pathname);\n if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n // decode the hash but not the search or hash\n // as search(query) is already decoded\n // https://github.com/vuejs/vue-router/issues/2708\n var searchIndex = href.indexOf('?');\n if (searchIndex < 0) {\n var hashIndex = href.indexOf('#');\n if (hashIndex > -1) {\n href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex);\n } else { href = decodeURI(href); }\n } else {\n href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex);\n }\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 this$1.index = targetIndex;\n this$1.updateRoute(route);\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) {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this$1.history.teardownListeners();\n }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.4.3';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","/* Views */\r\n// const StyleGuide = () => import('../pages/StyleGuide.vue')\r\nconst Wizard = () => import(/* webpackChunkName: 'wizardvue' */ '../pages/Wizard')\r\nconst ThankYouPage = () => import(/* webpackChunkName: 'thankyouvue' */ '../pages/ThankYou')\r\n\r\n/* Localized routes */\r\nconst LOCALIZED_ROUTES = {\r\n 'en-GB': 'online-booking',\r\n 'de-DE': 'online-buchung',\r\n 'it-IT': 'prenotazione-online',\r\n 'fr-FR': 'reservation-en-ligne'\r\n}\r\n\r\n/* Router configuration */\r\nconst childRoutesPerLocale = (locale) => [\r\n {\r\n path: '',\r\n meta: { guest: true },\r\n component: Wizard,\r\n },\r\n\r\n {\r\n path: 'thank-you',\r\n name: `thank-you__${locale}`,\r\n component: ThankYouPage\r\n },\r\n\r\n // {\r\n // path: 'style-guide',\r\n // meta: { guest: true },\r\n // component: StyleGuide,\r\n // },\r\n\r\n { path: '*', redirect: '' }\r\n]\r\n\r\nexport default Object.entries(LOCALIZED_ROUTES)\r\n .map(([locale, route]) => ({\r\n path: `/:lang/${route}`,\r\n component: { render: c => c('router-view') },\r\n children: childRoutesPerLocale(locale)\r\n })\r\n)\r\n","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nimport store from '../store/index'\r\nimport routes from './routes'\r\nimport { sync } from 'vuex-router-sync'\r\n\r\nVue.use(Router)\r\n\r\nconst router = new Router({\r\n mode: 'history',\r\n base: '/',\r\n routes\r\n})\r\n\r\nsync(store, router)\r\n\r\nexport default router\r\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n"],"names":["warn","condition","message","extend","a","b","key","View","name","functional","props","type","String","default","render","_","ref","children","parent","data","routerView","h","$createElement","route","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","matched","components","registerRouteInstance","vm","val","current","instances","hook","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","config","params","undefined","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","resolveQuery","query","extraQuery","_parseQuery","parse","parseQuery","parsedQuery","e","value","Array","isArray","map","castQueryParamValue","res","trim","split","forEach","param","parts","shift","length","join","push","stringifyQuery","obj","Object","keys","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","options","clone","meta","path","hash","fullPath","getFullPath","formatMatch","freeze","START","unshift","_stringifyQuery","stringify","isSameRoute","isObjectEqual","aKeys","bKeys","every","aVal","bVal","isIncludedRoute","target","indexOf","queryIncludes","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","i","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","arr","prototype","call","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","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","RegExp","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","noop","Link","to","required","tag","exact","Boolean","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","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","_Vue","install","Vue","installed","isDef","v","registerInstance","callVal","$options","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","history","destroyed","defineProperty","get","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","beforeEnter","childMatchAs","alias","aliases","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","addRoutes","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","err","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","document","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","selector","getElementById","querySelector","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","url","runQueue","queue","fn","cb","step","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","concat","apply","hasSymbol","Symbol","toStringTag","__esModule","called","args","arguments","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","max","Math","updated","activated","deactivated","extractGuards","records","bind","reverse","guards","instance","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","cbs","isValid","bindEnterGuard","poll","_isBeingDestroyed","setTimeout","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","prev","updateRoute","ensureURL","afterHooks","abort","console","lastRouteIndex","lastCurrentIndex","beforeHooks","iterator","postEnterCbs","enterGuards","resolveHooks","setupListeners","teardownListeners","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","decodeURI","pathname","toLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","searchIndex","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","configurable","registerHook","list","createHref","$once","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","normalizedTo","defineProperties","version","use","Wizard","ThankYouPage","LOCALIZED_ROUTES","childRoutesPerLocale","guest","locale","entries","Router","sync","store","exports","moduleName","registerModule","namespaced","cloneRoute","mutations","transition","isTimeTraveling","currentPath","storeUnwatch","watch","afterEachUnHook","commit","unregisterModule"],"sourceRoot":""}