{"version":3,"sources":["webpack:///./node_modules/vue-the-mask/dist/vue-the-mask.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js"],"names":["e","t","module","exports","this","r","n","a","i","l","call","m","c","d","o","Object","defineProperty","configurable","enumerable","get","__esModule","default","prototype","hasOwnProperty","p","s","pattern","X","S","A","transform","toLocaleUpperCase","toLocaleLowerCase","escape","document","createEvent","initEvent","value","Array","isArray","mask","tokens","tagName","u","getElementsByTagName","length","Error","oninput","isTrusted","selectionEnd","charAt","activeElement","setSelectionRange","setTimeout","dispatchEvent","arguments","component","name","directive","window","Vue","use","props","String","Number","type","required","masked","Boolean","directives","data","lastValue","display","watch","refresh","computed","config","methods","onInput","target","$emit","sort","test","f","options","render","staticRenderFns","_scopeId","keys","forEach","esModule","$createElement","_self","_c","rawName","expression","attrs","domProps","on","input","warn","condition","message","extend","b","key","encodeReserveRE","encodeReserveReplacer","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parse","parseQuery","map","castQueryParamValue","res","trim","split","param","parts","shift","val","join","undefined","push","stringifyQuery","obj","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","bKeys","every","aVal","bKey","bVal","isIncludedRoute","current","indexOf","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","functional","_","children","routerView","h","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","components","registerRouteInstance","vm","hook","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","resolvePath","relative","base","append","firstChar","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","arr","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","index","defaultDelimiter","delimiter","exec","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","TypeError","JSON","j","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","to","tag","custom","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","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","install","installed","isDef","v","registerInstance","callVal","$options","_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","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","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","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","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","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","console","lastRouteIndex","lastCurrentIndex","beforeHooks","iterator","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathname","toLowerCase","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","defineProperties","version","START_LOCATION"],"mappings":"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","file":"js/chunk-vendors~bc9d1275.33b12f3d.js","sourcesContent":["(function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueTheMask=t():e.VueTheMask=t()})(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\".\",t(t.s=10)}([function(e,t){e.exports={\"#\":{pattern:/\\d/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleUpperCase()}},a:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleLowerCase()}},\"!\":{escape:!0}}},function(e,t,n){\"use strict\";function r(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!0),t}var a=n(2),o=n(0),i=n.n(o);t.a=function(e,t){var o=t.value;if((Array.isArray(o)||\"string\"==typeof o)&&(o={mask:o,tokens:i.a}),\"INPUT\"!==e.tagName.toLocaleUpperCase()){var u=e.getElementsByTagName(\"input\");if(1!==u.length)throw new Error(\"v-mask directive requires 1 input, found \"+u.length);e=u[0]}e.oninput=function(t){if(t.isTrusted){var i=e.selectionEnd,u=e.value[i-1];for(e.value=n.i(a.a)(e.value,o.mask,!0,o.tokens);i2&&void 0!==arguments[2])||arguments[2],i=arguments[3];return Array.isArray(t)?n.i(a.a)(r.a,t,i)(e,t,o,i):n.i(r.a)(e,t,o,i)}},function(e,t,n){\"use strict\";function r(e){e.component(s.a.name,s.a),e.directive(\"mask\",i.a)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=n(0),o=n.n(a),i=n(1),u=n(7),s=n.n(u);n.d(t,\"TheMask\",function(){return s.a}),n.d(t,\"mask\",function(){return i.a}),n.d(t,\"tokens\",function(){return o.a}),n.d(t,\"version\",function(){return c});var c=\"0.11.1\";t.default=r,\"undefined\"!=typeof window&&window.Vue&&window.Vue.use(r)},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(1),a=n(0),o=n.n(a),i=n(2);t.default={name:\"TheMask\",props:{value:[String,Number],mask:{type:[String,Array],required:!0},masked:{type:Boolean,default:!1},tokens:{type:Object,default:function(){return o.a}}},directives:{mask:r.a},data:function(){return{lastValue:null,display:this.value}},watch:{value:function(e){e!==this.lastValue&&(this.display=e)},masked:function(){this.refresh(this.display)}},computed:{config:function(){return{mask:this.mask,tokens:this.tokens,masked:this.masked}}},methods:{onInput:function(e){e.isTrusted||this.refresh(e.target.value)},refresh:function(e){this.display=e;var e=n.i(i.a)(e,this.mask,this.masked,this.tokens);e!==this.lastValue&&(this.lastValue=e,this.$emit(\"input\",e))}}}},function(e,t,n){\"use strict\";function r(e,t,n){return t=t.sort(function(e,t){return e.length-t.length}),function(r,a){for(var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=0;iu.length))return e(r,u,o,n)}return\"\"}}t.a=r},function(e,t,n){\"use strict\";function r(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments[3];e=e||\"\",t=t||\"\";for(var a=0,o=0,i=\"\";a= 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) {\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 if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) { this$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.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.1';\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"],"sourceRoot":""}