{"version":3,"file":"js/chunk-vendors-89d5c698.11f94359.js","mappings":"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","sources":["webpack://app/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://app/./node_modules/normalize-wheel/index.js","webpack://app/./node_modules/normalize-wheel/src/ExecutionEnvironment.js","webpack://app/./node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js","webpack://app/./node_modules/normalize-wheel/src/isEventSupported.js","webpack://app/./node_modules/normalize-wheel/src/normalizeWheel.js","webpack://app/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://app/./node_modules/throttle-debounce/debounce.js","webpack://app/./node_modules/throttle-debounce/index.js","webpack://app/./node_modules/throttle-debounce/throttle.js","webpack://app/./node_modules/vue-router/dist/vue-router.esm.js"],"sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","module.exports = require('./src/normalizeWheel.js');\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n'use strict';\n\nvar canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners:\n canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n","/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n * Provides entirely client-side User Agent and OS detection. You should prefer\n * the non-deprecated UserAgent module when possible, which exposes our\n * authoritative server-side PHP-based detection to the client.\n *\n * Usage is straightforward:\n *\n * if (UserAgent_DEPRECATED.ie()) {\n * // IE\n * }\n *\n * You can also do version checks:\n *\n * if (UserAgent_DEPRECATED.ie() >= 7) {\n * // IE7 or better\n * }\n *\n * The browser functions will return NaN if the browser does not match, so\n * you can also do version compares the other way:\n *\n * if (UserAgent_DEPRECATED.ie() < 7) {\n * // IE6 or worse\n * }\n *\n * Note that the version is a float and may include a minor version number,\n * so you should always use range operators to perform comparisons, not\n * strict equality.\n *\n * **Note:** You should **strongly** prefer capability detection to browser\n * version detection where it's reasonable:\n *\n * http://www.quirksmode.org/js/support.html\n *\n * Further, we have a large number of mature wrapper functions and classes\n * which abstract away many browser irregularities. Check the documentation,\n * grep for things, or ask on javascript@lists.facebook.com before writing yet\n * another copy of \"event || window.event\".\n *\n */\n\nvar _populated = false;\n\n// Browsers\nvar _ie, _firefox, _opera, _webkit, _chrome;\n\n// Actual IE browser for compatibility mode\nvar _ie_real_version;\n\n// Platforms\nvar _osx, _windows, _linux, _android;\n\n// Architectures\nvar _win64;\n\n// Devices\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n if (_populated) {\n return;\n }\n\n _populated = true;\n\n // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas);\n\n // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n _win64 = !!(/Win64/.exec(uas));\n\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : (\n agent[5] ? parseFloat(agent[5]) : NaN);\n // IE compatibility mode\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n }\n // grab the \"true\" ie version from the trident token if available\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set _osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\n\nvar UserAgent_DEPRECATED = {\n\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function() {\n return _populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function() {\n return _populate() || (_ie_real_version > _ie);\n },\n\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function() {\n return UserAgent_DEPRECATED.ie() && _win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function() {\n return _populate() || _firefox;\n },\n\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function() {\n return _populate() || _opera;\n },\n\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function() {\n return _populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function() {\n return UserAgent_DEPRECATED.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome : function() {\n return _populate() || _chrome;\n },\n\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function() {\n return _populate() || _windows;\n },\n\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function() {\n return _populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function() {\n return _populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function() {\n return _populate() || _iphone;\n },\n\n mobile: function() {\n return _populate() || (_iphone || _ipad || _android || _mobile);\n },\n\n nativeApp: function() {\n // webviews inside of the native apps\n return _populate() || _native;\n },\n\n android: function() {\n return _populate() || _android;\n },\n\n ipad: function() {\n return _populate() || _ipad;\n }\n};\n\nmodule.exports = UserAgent_DEPRECATED;\n","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature =\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM ||\n capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n\n'use strict';\n\nvar UserAgent_DEPRECATED = require('./UserAgent_DEPRECATED');\n\nvar isEventSupported = require('./isEventSupported');\n\n\n// Reasonable defaults\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n *\n * So what to do? The is the best:\n *\n * normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas. This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds. Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n * - spin is trying to normalize how far the wheel was spun (or trackpad\n * dragged). This is super useful for zoom support where you want to\n * throw away the chunky scroll steps on the PC and make those equal to\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\n * resolve a single slow step on a wheel to 1.\n *\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\n * get the crazy differences between browsers, but at least it'll be in\n * pixels!\n *\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n * should translate to positive value zooming IN, negative zooming OUT.\n * This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n * with a mouse. It results in side-scrolling in the browser by default.\n *\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n * probably is by browsers in conjunction with fancy 3D controllers .. but\n * you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n *\n * On the trackpad:\n *\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n * backward compatibility with older events. Those other values help us\n * better normalize spin speed. Example of what the browsers provide:\n *\n * | event.wheelDelta | event.detail\n * ------------------+------------------+--------------\n * Safari v5/OS X | -120 | 0\n * Safari v5/Win7 | -120 | 0\n * Chrome v17/OS X | -120 | 0\n * Chrome v17/Win7 | -120 | 0\n * IE9/Win7 | -120 | undefined\n * Firefox v4/OS X | undefined | 1\n * Firefox v4/Win7 | undefined | 3\n *\n */\nfunction normalizeWheel(/*object*/ event) /*object*/ {\n var sX = 0, sY = 0, // spinX, spinY\n pX = 0, pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in event) { sY = event.detail; }\n if ('wheelDelta' in event) { sY = -event.wheelDelta / 120; }\n if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; }\n if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; }\n\n // side scrolling on FF with DOMMouseScroll\n if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) { pY = event.deltaY; }\n if ('deltaX' in event) { pX = event.deltaX; }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) { sX = (pX < 1) ? -1 : 1; }\n if (pY && !sY) { sY = (pY < 1) ? -1 : 1; }\n\n return { spinX : sX,\n spinY : sY,\n pixelX : pX,\n pixelY : pY };\n}\n\n\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\nnormalizeWheel.getEventType = function() /*string*/ {\n return (UserAgent_DEPRECATED.firefox())\n ? 'DOMMouseScroll'\n : (isEventSupported('wheel'))\n ? 'wheel'\n : 'mousewheel';\n};\n\nmodule.exports = normalizeWheel;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/* eslint-disable no-undefined */\n\nvar throttle = require('./throttle');\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [atBegin] Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\nmodule.exports = function ( delay, atBegin, callback ) {\n\treturn callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n};\n","var throttle = require('./throttle');\nvar debounce = require('./debounce');\n\nmodule.exports = {\n\tthrottle: throttle,\n\tdebounce: debounce\n};\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nmodule.exports = function ( delay, noTrailing, callback, debounceMode ) {\n\n\t// After wrapper has stopped being called, this timeout ensures that\n\t// `callback` is executed at the proper times in `throttle` and `end`\n\t// debounce modes.\n\tvar timeoutID;\n\n\t// Keep track of the last time `callback` was executed.\n\tvar lastExec = 0;\n\n\t// `noTrailing` defaults to falsy.\n\tif ( typeof noTrailing !== 'boolean' ) {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t// The `wrapper` function encapsulates all of the throttling / debouncing\n\t// functionality and when executed will limit the rate at which `callback`\n\t// is executed.\n\tfunction wrapper () {\n\n\t\tvar self = this;\n\t\tvar elapsed = Number(new Date()) - lastExec;\n\t\tvar args = arguments;\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec () {\n\t\t\tlastExec = Number(new Date());\n\t\t\tcallback.apply(self, args);\n\t\t}\n\n\t\t// If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t// to allow future `callback` executions.\n\t\tfunction clear () {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif ( debounceMode && !timeoutID ) {\n\t\t\t// Since `wrapper` is being called for the first time and\n\t\t\t// `debounceMode` is true (at begin), execute `callback`.\n\t\t\texec();\n\t\t}\n\n\t\t// Clear any existing timeout.\n\t\tif ( timeoutID ) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\n\t\tif ( debounceMode === undefined && elapsed > delay ) {\n\t\t\t// In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t// `callback`.\n\t\t\texec();\n\n\t\t} else if ( noTrailing !== true ) {\n\t\t\t// In trailing throttle mode, since `delay` time has not been\n\t\t\t// exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t// recent execution.\n\t\t\t//\n\t\t\t// If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t// after `delay` ms.\n\t\t\t//\n\t\t\t// If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t// execute after `delay` ms.\n\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n\t\t}\n\n\t}\n\n\t// Return the wrapper function.\n\treturn wrapper;\n\n};\n","/*!\n * vue-router v3.5.3\n * (c) 2021 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\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 if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n 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.3';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n"],"names":["normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","exports","module","canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","isInWorker","_ie","_firefox","_opera","_webkit","_chrome","_ie_real_version","_osx","_windows","_linux","_android","_win64","_iphone","_ipad","_native","_mobile","_populated","_populate","uas","navigator","userAgent","agent","exec","os","parseFloat","NaN","documentMode","trident","ver","replace","UserAgent_DEPRECATED","ie","ieCompatibilityMode","ie64","firefox","opera","webkit","safari","chrome","windows","osx","linux","iphone","mobile","nativeApp","android","ipad","useHasFeature","isEventSupported","eventNameSuffix","capture","eventName","isSupported","element","setAttribute","implementation","hasFeature","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","normalizeWheel","event","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","getEventType","MapShim","Map","getIndex","arr","key","result","some","entry","index","class_1","__entries__","Object","defineProperty","prototype","get","length","enumerable","configurable","set","value","push","delete","entries","splice","has","clear","forEach","callback","ctx","_i","_a","isBrowser","global$1","g","Math","self","Function","requestAnimationFrame$1","requestAnimationFrame","bind","setTimeout","Date","now","trailingTimeout","throttle","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","addObserver","observer","indexOf","connect_","removeObserver","observers","disconnect_","changesDetected","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","observe","attributes","childList","characterData","subtree","removeEventListener","disconnect","_b","propertyName","isReflowProperty","getInstance","instance_","defineConfigurable","target","props","keys","writable","getWindowOf","ownerGlobal","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","styles","positions","arguments","reduce","size","position","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getBBox","width","height","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","horizPad","left","right","vertPad","top","bottom","boxSizing","round","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","documentElement","getContentRect","createReadOnlyRect","x","y","Constr","DOMRectReadOnly","rect","create","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","TypeError","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","_this","observation","map","WeakMap","ResizeObserver","method","apply","atBegin","undefined","debounce","noTrailing","debounceMode","timeoutID","lastExec","wrapper","elapsed","Number","args","clearTimeout","extend","a","b","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parse","parseQuery","e","Array","isArray","castQueryParamValue","String","res","trim","split","param","parts","shift","val","join","stringifyQuery","obj","val2","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","route","name","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","ref","_stringifyQuery","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bKey","bVal","isIncludedRoute","current","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","type","default","_","children","data","routerView","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","vm","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","defaultDelimiter","delimiter","m","escaped","offset","next","prefix","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","JSON","j","test","attachKeys","re","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","noop","Link","to","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","this$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","install","Vue","installed","isDef","v","registerInstance","callVal","_parentVnode","mixin","_router","util","defineReactive","history","destroyed","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","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","hasOwnProperty","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","performance","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","handlePopState","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","pageYOffset","getElementPosition","el","docEl","docRect","getBoundingClientRect","elRect","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","selector","getElementById","querySelector","style","scrollTo","supportsPushState","ua","pushState","url","runQueue","queue","fn","cb","step","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","message","Error","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","hasSymbol","Symbol","toStringTag","__esModule","called","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","max","updated","activated","deactivated","extractGuards","records","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","n","fromRoute","getCurrentLocation","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","registerHook","list","createHref","$once","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","normalizedTo","defineProperties","version","START_LOCATION","use"],"sourceRoot":""}