{"version":3,"sources":["webpack:///./node_modules/vue-meta/node_modules/deepmerge/dist/cjs.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue-meta/dist/vue-meta.esm.js","webpack:///./node_modules/vuejs-noty/dist/vuejs-noty.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","Object","prototype","toString","call","isReactElement","canUseSymbol","Symbol","for","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","val","Array","isArray","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","defaultArrayMerge","target","source","concat","map","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getKeys","keys","propertyIsOnObject","object","property","_","propertyIsUnsafe","hasOwnProperty","mergeObject","destination","forEach","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","all","array","Error","reduce","prev","next","deepmerge_1","module","exports","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","version","_typeof","obj","iterator","constructor","_defineProperty","defineProperty","enumerable","configurable","writable","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","push","apply","_objectSpread2","i","arguments","length","getOwnPropertyDescriptors","defineProperties","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","iter","from","o","minLen","n","slice","name","test","len","arr2","TypeError","_createForOfIteratorHelper","allowArrayLike","it","F","s","done","e","f","err","normalCompletion","didErr","step","return","arg","isUndefined","isObject","isPureObject","isFunction","isString","hasGlobalWindowFn","window","hasGlobalWindow","_global","global","console","warn","str","showWarningNotSupported","defaultInfo","title","undefined","titleChunk","titleTemplate","htmlAttrs","bodyAttrs","headAttrs","base","link","meta","style","script","noscript","__dangerouslyDisableSanitizers","__dangerouslyDisableSanitizersByTagID","rootConfigKey","keyName","attribute","ssrAttribute","tagIDKeyName","metaTemplateKeyName","contentKeyName","ssrAppId","debounceWait","waitOnDestroyed","defaultOptions","defaultInfoKeys","disableOptionKeys","metaInfoOptionKeys","metaInfoAttributeKeys","tagsSupportingOnload","tagsWithoutEndTag","tagsWithInnerContent","tagAttributeAsInnerContent","tagProperties","commonDataAttributes","booleanHtmlAttributes","batchId","triggerUpdate","_ref","rootVm","hookName","initialized","initializing","pausing","batchUpdate","$meta","refresh","callback","timeout","clearTimeout","setTimeout","find","predicate","thisArg","idx","findIndex","toArray","includes","querySelector","el","document","querySelectorAll","getTag","tags","tag","getElementsByTagName","getElementsKey","body","pbody","queryElements","parentNode","_ref2","attributes","appId","type","queries","query","attributeValue","join","removeElementsByAppId","_ref3","remove","removeAttribute","attributeName","hasMetaInfo","vm","inMetaInfoBranch","pause","resume","addNavGuards","router","$router","navGuards","beforeEach","to","afterEach","$nextTick","_resume","metaInfo","afterNavigation","createMixin","Vue","updateOnLifecycleHook","wasServerRendered","_this2","rootKey","devtoolsEnabled","config","devtools","get","deprecationWarningShown","$once","$el","nodeType","hasAttribute","htmlTag","child","$children","c","fnOptions","$parent","computed","$metaInfo","$isServer","$on","$watch","initializedSsr","_$root$$meta$refresh","refreshOnceOnNavigation","_this","_hasMetaInfo","offsetParent","interval","setInterval","clearInterval","lifecycleHook","setOptions","getOptions","optionsCopy","ensureIsArray","serverSequences","clientSequences","escape","info","escapeOptions","escapeKeys","_escapeOptions$doEsca","doEscape","v","escaped","disableKey","tagId","escapedKey","escapeMetaInfo","escapeSequences","seq","replace","index","applyTemplate","headObject","template","chunk","component","_arrayMerge","targetItem","targetIndex","sourceIndex","item","sourceItem","innerHTML","splice","targetTemplate","sourceTemplate","warningShown","merge","attrKey","t","getComponentMetaInfo","getComponentOption","result","_inactive","_options","data","childComponent","callbacks","isDOMComplete","d","readyState","addCallback","addCallbacks","autoAddListeners","hasAsyncCallback","addListeners","applyCallbacks","onreadystatechange","matchElement","args","selector","elements","matches","__vm_cb","onload","__vm_l","__vm_ev","addEventListener","appsMetaInfo","attributeMap","updateAttribute","attrs","vueMetaAttrString","getAttribute","JSON","parse","decodeURI","toUpdate","attr","_attr","attrData","_i","_toUpdate","_attr2","_attrData","attrValues","_appId","attrValue","some","Boolean","setAttribute","updateTitle","updateTag","head","dataAttributes","newElements","queryOptions","currentElements","found","x","k","stringify","res","skip","newElement","createElement","once","isBooleanAttribute","styleSheet","cssText","appendChild","createTextNode","json","indexToDelete","oldElements","hasEqualElement","existingTag","isEqualNode","_type","removeChild","insertBefore","firstChild","oldTags","newTags","updateClientMetaInfo","newInfo","addLoadListeners","tagsAdded","tagsRemoved","tagName","substr","_updateTag","addApp","set","setMetaInfo","removeMetaInfo","_step","_iterator","clearAppsMetaInfo","getAppsMetaInfo","force","getMetaInfo","metaItem","hasVmid","isFirstItemForVmid","metaObject","rawInfo","changed","addedTags","removedTags","additionalAppId","attributeGenerator","addSsrAttribute","attributeStr","encodeURI","titleGenerator","generatorOptions","ln","tagGenerator","_ref2$isSSR","isSSR","_ref2$body","_ref2$pbody","_ref2$ln","tagsStr","tagKeys","prefix","isBooleanAttr","content","hasEndTag","hasContent","generateServerInjector","globalInjectOptions","serverInjector","extraData","addInfo","callInjectors","opts","m","injectors","text","bodyPrepend","bodyAppend","_loop","injectOptions","attributeData","_data","_appId2","_data2","extraStr","inject","newOptions","refreshNavKey","debounceWaitKey","parseInt","isNaN","waitOnDestroyedKey","generate","install","__vuemeta_installed","mixin","l","__esModule","default","p","a","Math","self","Function","__g","__e","split","ceil","floor","event","stopPropagation","cancelBubble","r","random","offsetHeight","getComputedStyle","marginTop","marginBottom","u","attachEvent","indexOf","className","substring","b","PageHidden","Store","visibilityControl","stop","queueRenderAll","hidden","msHidden","webkitHidden","hasSound","sounds","sources","src","barDom","volume","soundPlayed","play","onended","match","css","deepExtend","animationEndEvents","inArray","generateID","outerHeight","addListener","hasClass","addClass","removeClass","classList","visibilityChangeFlow","createAudioElements","y","toUpperCase","charAt","E","P","maxVisible","D","queue","closed","current","id","shift","show","height","insertAdjacentHTML","outerHTML","getElementById","theme","buttons","dom","modal","S","DocModalCount","container","layoutDom","layout","progressBar","progressDom","transition","width","closeTimer","close","listeners","w","g","closing","titleCount","conditions","C","decrement","Defaults","Queues","DefaultMaxVisible","docTitle","getQueueCounts","addToQueue","removeFromQueue","queueRender","ghostFix","build","hasButtons","handleModal","handleModalClose","queueClose","dequeueClose","fire","openFlow","closeFlow","originalTitle","count","timer","increment","_update","_clear","closeWith","animation","open","killer","beforeShow","onShow","afterShow","onClose","afterClose","onHover","onTemplate","NotyButton","cb","Push","subData","workerPath","onPermissionGranted","onPermissionDenied","onSubscriptionSuccess","onSubscriptionCancel","onWorkerError","onWorkerSuccess","onWorkerNotSupported","log","Notification","webkitNotifications","navigator","mozNotification","external","msIsSiteMode","permissionLevel","checkPermission","permission","toLowerCase","endpoint","subscriptionId","serviceWorker","controller","state","getRegistrations","then","unregister","getPermissionStatus","register","ready","pushManager","subscribe","userVisibleOnly","getKey","getEndpoint","p256dh","btoa","String","fromCharCode","Uint8Array","auth","catch","unregisterWorker","requestPermission","z","U","R","Q","X","tt","j","_state","_result","error","_label","nt","ot","resolve","_onerror","et","_subscribers","rt","O","T","st","M","_instanceConstructor","promise","V","_input","_remaining","_enumerate","A","q","N","H","L","W","B","Promise","cast","I","Z","G","Y","K","MutationObserver","WebKitMutationObserver","$","J","Uint8ClampedArray","importScripts","MessageChannel","nextTick","observe","characterData","port1","onmessage","port2","postMessage","runOnLoop","runOnContext","_eachEntry","_settledAt","_willSettleAt","race","reject","_setScheduler","_setAsap","_asap","polyfill","showing","shown","killable","promises","on","closeAll","bind","run","fun","browser","env","argv","versions","off","removeListener","removeAllListeners","emit","binding","cwd","chdir","umask","eval","success","warning","$noty","noty","assign","virtual","max","min","valueOf","extend","encodeReserveRE","encodeReserveReplacer","charCodeAt","commaRE","encode","encodeURIComponent","decode","decodeURIComponent","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","trim","param","parts","stringifyQuery","val2","trailingSlashRE","createRoute","record","location","redirectedFrom","route","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","ref","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","aVal","bKey","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","props","children","routerView","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","keepAlive","_directInactive","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","components","registerRouteInstance","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","resolvePath","relative","append","firstChar","stack","pop","segments","segment","parsePath","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","defaultDelimiter","delimiter","exec","offset","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","flags","pretty","token","attachKeys","re","sensitive","regexpToRegexp","groups","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","noop","Link","required","custom","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","this$1$1","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","preventDefault","installed","isDef","registerInstance","callVal","_parentVnode","_router","util","defineReactive","history","destroyed","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","replaceState","handlePopState","removeEventListener","handleScroll","isPop","app","behavior","scrollBehavior","position","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","pageXOffset","pageYOffset","getElementPosition","docEl","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","scrollTo","supportsPushState","ua","userAgent","pushState","url","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","message","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","runQueue","fn","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","resolvedDef","isESModule","resolved","reason","msg","comp","flatten","hasSymbol","toStringTag","called","History","normalizeBase","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","updated","activated","deactivated","extractGuards","records","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","abort","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathname","pathLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","VueRouter","apps","matcher","mode","prototypeAccessors","handleInitialScroll","routeOrError","registerHook","beforeResolve","back","forward","getMatchedComponents","createHref","normalizedTo","VueRouter$1","list","START_LOCATION","use"],"mappings":"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","file":"js/chunk-vendors~205977d4.aec1d816.4.2.0.js","sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/* 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","/**\n * vue-meta v2.4.0\n * (c) 2020\n * - Declan de Wet\n * - Sébastien Chopin (@Atinux)\n * - Pim (@pimlie)\n * - All the amazing contributors\n * @license MIT\n */\n\nimport deepmerge from 'deepmerge';\n\nvar version = \"2.4.0\";\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = o[Symbol.iterator]();\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\n/**\n * checks if passed argument is an array\n * @param {any} arg - the object to check\n * @return {Boolean} - true if `arg` is an array\n */\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction isUndefined(arg) {\n return typeof arg === 'undefined';\n}\nfunction isObject(arg) {\n return _typeof(arg) === 'object';\n}\nfunction isPureObject(arg) {\n return _typeof(arg) === 'object' && arg !== null;\n}\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nfunction hasGlobalWindowFn() {\n try {\n return !isUndefined(window);\n } catch (e) {\n return false;\n }\n}\nvar hasGlobalWindow = hasGlobalWindowFn();\n\nvar _global = hasGlobalWindow ? window : global;\n\nvar console = _global.console || {};\nfunction warn(str) {\n /* istanbul ignore next */\n if (!console || !console.warn) {\n return;\n }\n\n console.warn(str);\n}\nvar showWarningNotSupported = function showWarningNotSupported() {\n return warn('This vue app/component has no vue-meta configuration');\n};\n\n/**\n * These are constant variables used throughout the application.\n */\n// set some sane defaults\nvar defaultInfo = {\n title: undefined,\n titleChunk: '',\n titleTemplate: '%s',\n htmlAttrs: {},\n bodyAttrs: {},\n headAttrs: {},\n base: [],\n link: [],\n meta: [],\n style: [],\n script: [],\n noscript: [],\n __dangerouslyDisableSanitizers: [],\n __dangerouslyDisableSanitizersByTagID: {}\n};\nvar rootConfigKey = '_vueMeta'; // This is the name of the component option that contains all the information that\n// gets converted to the various meta tags & attributes for the page.\n\nvar keyName = 'metaInfo'; // This is the attribute vue-meta arguments on elements to know which it should\n// manage and which it should ignore.\n\nvar attribute = 'data-vue-meta'; // This is the attribute that goes on the `html` tag to inform `vue-meta`\n// that the server has already generated the meta tags for the initial render.\n\nvar ssrAttribute = 'data-vue-meta-server-rendered'; // This is the property that tells vue-meta to overwrite (instead of append)\n// an item in a tag list. For example, if you have two `meta` tag list items\n// that both have `vmid` of \"description\", then vue-meta will overwrite the\n// shallowest one with the deepest one.\n\nvar tagIDKeyName = 'vmid'; // This is the key name for possible meta templates\n\nvar metaTemplateKeyName = 'template'; // This is the key name for the content-holding property\n\nvar contentKeyName = 'content'; // The id used for the ssr app\n\nvar ssrAppId = 'ssr'; // How long meta update\n\nvar debounceWait = 10; // How long meta update\n\nvar waitOnDestroyed = true;\nvar defaultOptions = {\n keyName: keyName,\n attribute: attribute,\n ssrAttribute: ssrAttribute,\n tagIDKeyName: tagIDKeyName,\n contentKeyName: contentKeyName,\n metaTemplateKeyName: metaTemplateKeyName,\n waitOnDestroyed: waitOnDestroyed,\n debounceWait: debounceWait,\n ssrAppId: ssrAppId\n}; // might be a bit ugly, but minimizes the browser bundles a bit\n\nvar defaultInfoKeys = Object.keys(defaultInfo); // The metaInfo property keys which are used to disable escaping\n\nvar disableOptionKeys = [defaultInfoKeys[12], defaultInfoKeys[13]]; // List of metaInfo property keys which are configuration options (and dont generate html)\n\nvar metaInfoOptionKeys = [defaultInfoKeys[1], defaultInfoKeys[2], 'changed'].concat(disableOptionKeys); // List of metaInfo property keys which only generates attributes and no tags\n\nvar metaInfoAttributeKeys = [defaultInfoKeys[3], defaultInfoKeys[4], defaultInfoKeys[5]]; // HTML elements which support the onload event\n\nvar tagsSupportingOnload = ['link', 'style', 'script']; // HTML elements which dont have a head tag (shortened to our needs)\n// see: https://www.w3.org/TR/html52/document-metadata.html\n\nvar tagsWithoutEndTag = ['base', 'meta', 'link']; // HTML elements which can have inner content (shortened to our needs)\n\nvar tagsWithInnerContent = ['noscript', 'script', 'style']; // Attributes which are inserted as childNodes instead of HTMLAttribute\n\nvar tagAttributeAsInnerContent = ['innerHTML', 'cssText', 'json'];\nvar tagProperties = ['once', 'skip', 'template']; // Attributes which should be added with data- prefix\n\nvar commonDataAttributes = ['body', 'pbody']; // from: https://github.com/kangax/html-minifier/blob/gh-pages/src/htmlminifier.js#L202\n\nvar booleanHtmlAttributes = ['allowfullscreen', 'amp', 'amp-boilerplate', 'async', 'autofocus', 'autoplay', 'checked', 'compact', 'controls', 'declare', 'default', 'defaultchecked', 'defaultmuted', 'defaultselected', 'defer', 'disabled', 'enabled', 'formnovalidate', 'hidden', 'indeterminate', 'inert', 'ismap', 'itemscope', 'loop', 'multiple', 'muted', 'nohref', 'noresize', 'noshade', 'novalidate', 'nowrap', 'open', 'pauseonexit', 'readonly', 'required', 'reversed', 'scoped', 'seamless', 'selected', 'sortable', 'truespeed', 'typemustmatch', 'visible'];\n\nvar batchId = null;\nfunction triggerUpdate(_ref, rootVm, hookName) {\n var debounceWait = _ref.debounceWait;\n\n // if an update was triggered during initialization or when an update was triggered by the\n // metaInfo watcher, set initialized to null\n // then we keep falsy value but know we need to run a triggerUpdate after initialization\n if (!rootVm[rootConfigKey].initialized && (rootVm[rootConfigKey].initializing || hookName === 'watcher')) {\n rootVm[rootConfigKey].initialized = null;\n }\n\n if (rootVm[rootConfigKey].initialized && !rootVm[rootConfigKey].pausing) {\n // batch potential DOM updates to prevent extraneous re-rendering\n // eslint-disable-next-line no-void\n batchUpdate(function () {\n return void rootVm.$meta().refresh();\n }, debounceWait);\n }\n}\n/**\n * Performs a batched update.\n *\n * @param {(null|Number)} id - the ID of this update\n * @param {Function} callback - the update to perform\n * @return {Number} id - a new ID\n */\n\nfunction batchUpdate(callback, timeout) {\n timeout = timeout === undefined ? 10 : timeout;\n\n if (!timeout) {\n callback();\n return;\n }\n\n clearTimeout(batchId);\n batchId = setTimeout(function () {\n callback();\n }, timeout);\n return batchId;\n}\n\n/*\n * To reduce build size, this file provides simple polyfills without\n * overly excessive type checking and without modifying\n * the global Array.prototype\n * The polyfills are automatically removed in the commonjs build\n * Also, only files in client/ & shared/ should use these functions\n * files in server/ still use normal js function\n */\nfunction find(array, predicate, thisArg) {\n if ( !Array.prototype.find) {\n // idx needs to be a Number, for..in returns string\n for (var idx = 0; idx < array.length; idx++) {\n if (predicate.call(thisArg, array[idx], idx, array)) {\n return array[idx];\n }\n }\n\n return;\n }\n\n return array.find(predicate, thisArg);\n}\nfunction findIndex(array, predicate, thisArg) {\n if ( !Array.prototype.findIndex) {\n // idx needs to be a Number, for..in returns string\n for (var idx = 0; idx < array.length; idx++) {\n if (predicate.call(thisArg, array[idx], idx, array)) {\n return idx;\n }\n }\n\n return -1;\n }\n\n return array.findIndex(predicate, thisArg);\n}\nfunction toArray(arg) {\n if ( !Array.from) {\n return Array.prototype.slice.call(arg);\n }\n\n return Array.from(arg);\n}\nfunction includes(array, value) {\n if ( !Array.prototype.includes) {\n for (var idx in array) {\n if (array[idx] === value) {\n return true;\n }\n }\n\n return false;\n }\n\n return array.includes(value);\n}\n\nvar querySelector = function querySelector(arg, el) {\n return (el || document).querySelectorAll(arg);\n};\nfunction getTag(tags, tag) {\n if (!tags[tag]) {\n tags[tag] = document.getElementsByTagName(tag)[0];\n }\n\n return tags[tag];\n}\nfunction getElementsKey(_ref) {\n var body = _ref.body,\n pbody = _ref.pbody;\n return body ? 'body' : pbody ? 'pbody' : 'head';\n}\nfunction queryElements(parentNode, _ref2, attributes) {\n var appId = _ref2.appId,\n attribute = _ref2.attribute,\n type = _ref2.type,\n tagIDKeyName = _ref2.tagIDKeyName;\n attributes = attributes || {};\n var queries = [\"\".concat(type, \"[\").concat(attribute, \"=\\\"\").concat(appId, \"\\\"]\"), \"\".concat(type, \"[data-\").concat(tagIDKeyName, \"]\")].map(function (query) {\n for (var key in attributes) {\n var val = attributes[key];\n var attributeValue = val && val !== true ? \"=\\\"\".concat(val, \"\\\"\") : '';\n query += \"[data-\".concat(key).concat(attributeValue, \"]\");\n }\n\n return query;\n });\n return toArray(querySelector(queries.join(', '), parentNode));\n}\nfunction removeElementsByAppId(_ref3, appId) {\n var attribute = _ref3.attribute;\n toArray(querySelector(\"[\".concat(attribute, \"=\\\"\").concat(appId, \"\\\"]\"))).map(function (el) {\n return el.remove();\n });\n}\nfunction removeAttribute(el, attributeName) {\n el.removeAttribute(attributeName);\n}\n\nfunction hasMetaInfo(vm) {\n vm = vm || this;\n return vm && (vm[rootConfigKey] === true || isObject(vm[rootConfigKey]));\n} // a component is in a metaInfo branch when itself has meta info or one of its (grand-)children has\n\nfunction inMetaInfoBranch(vm) {\n vm = vm || this;\n return vm && !isUndefined(vm[rootConfigKey]);\n}\n\nfunction pause(rootVm, refresh) {\n rootVm[rootConfigKey].pausing = true;\n return function () {\n return resume(rootVm, refresh);\n };\n}\nfunction resume(rootVm, refresh) {\n rootVm[rootConfigKey].pausing = false;\n\n if (refresh || refresh === undefined) {\n return rootVm.$meta().refresh();\n }\n}\n\nfunction addNavGuards(rootVm) {\n var router = rootVm.$router; // return when nav guards already added or no router exists\n\n if (rootVm[rootConfigKey].navGuards || !router) {\n /* istanbul ignore next */\n return;\n }\n\n rootVm[rootConfigKey].navGuards = true;\n router.beforeEach(function (to, from, next) {\n pause(rootVm);\n next();\n });\n router.afterEach(function () {\n rootVm.$nextTick(function () {\n var _resume = resume(rootVm),\n metaInfo = _resume.metaInfo;\n\n if (metaInfo && isFunction(metaInfo.afterNavigation)) {\n metaInfo.afterNavigation(metaInfo);\n }\n });\n });\n}\n\nvar appId = 1;\nfunction createMixin(Vue, options) {\n // for which Vue lifecycle hooks should the metaInfo be refreshed\n var updateOnLifecycleHook = ['activated', 'deactivated', 'beforeMount'];\n var wasServerRendered = false; // watch for client side component updates\n\n return {\n beforeCreate: function beforeCreate() {\n var _this2 = this;\n\n var rootKey = '$root';\n var $root = this[rootKey];\n var $options = this.$options;\n var devtoolsEnabled = Vue.config.devtools;\n Object.defineProperty(this, '_hasMetaInfo', {\n configurable: true,\n get: function get() {\n // Show deprecation warning once when devtools enabled\n if (devtoolsEnabled && !$root[rootConfigKey].deprecationWarningShown) {\n warn('VueMeta DeprecationWarning: _hasMetaInfo has been deprecated and will be removed in a future version. Please use hasMetaInfo(vm) instead');\n $root[rootConfigKey].deprecationWarningShown = true;\n }\n\n return hasMetaInfo(this);\n }\n });\n\n if (this === $root) {\n $root.$once('hook:beforeMount', function () {\n wasServerRendered = this.$el && this.$el.nodeType === 1 && this.$el.hasAttribute('data-server-rendered'); // In most cases when you have a SSR app it will be the first app thats gonna be\n // initiated, if we cant detect the data-server-rendered attribute from Vue but we\n // do see our own ssrAttribute then _assume_ the Vue app with appId 1 is the ssr app\n // attempted fix for #404 & #562, but we rly need to refactor how we pass appIds from\n // ssr to the client\n\n if (!wasServerRendered && $root[rootConfigKey] && $root[rootConfigKey].appId === 1) {\n var htmlTag = getTag({}, 'html');\n wasServerRendered = htmlTag && htmlTag.hasAttribute(options.ssrAttribute);\n }\n });\n } // Add a marker to know if it uses metaInfo\n // _vnode is used to know that it's attached to a real component\n // useful if we use some mixin to add some meta tags (like nuxt-i18n)\n\n\n if (isUndefined($options[options.keyName]) || $options[options.keyName] === null) {\n return;\n }\n\n if (!$root[rootConfigKey]) {\n $root[rootConfigKey] = {\n appId: appId\n };\n appId++;\n\n if (devtoolsEnabled && $root.$options[options.keyName]) {\n // use nextTick so the children should be added to $root\n this.$nextTick(function () {\n // find the first child that lists fnOptions\n var child = find($root.$children, function (c) {\n return c.$vnode && c.$vnode.fnOptions;\n });\n\n if (child && child.$vnode.fnOptions[options.keyName]) {\n warn(\"VueMeta has detected a possible global mixin which adds a \".concat(options.keyName, \" property to all Vue components on the page. This could cause severe performance issues. If possible, use $meta().addApp to add meta information instead\"));\n }\n });\n }\n } // to speed up updates we keep track of branches which have a component with vue-meta info defined\n // if _vueMeta = true it has info, if _vueMeta = false a child has info\n\n\n if (!this[rootConfigKey]) {\n this[rootConfigKey] = true;\n var parent = this.$parent;\n\n while (parent && parent !== $root) {\n if (isUndefined(parent[rootConfigKey])) {\n parent[rootConfigKey] = false;\n }\n\n parent = parent.$parent;\n }\n } // coerce function-style metaInfo to a computed prop so we can observe\n // it on creation\n\n\n if (isFunction($options[options.keyName])) {\n $options.computed = $options.computed || {};\n $options.computed.$metaInfo = $options[options.keyName];\n\n if (!this.$isServer) {\n // if computed $metaInfo exists, watch it for updates & trigger a refresh\n // when it changes (i.e. automatically handle async actions that affect metaInfo)\n // credit for this suggestion goes to [Sébastien Chopin](https://github.com/Atinux)\n this.$on('hook:created', function () {\n this.$watch('$metaInfo', function () {\n triggerUpdate(options, this[rootKey], 'watcher');\n });\n });\n }\n } // force an initial refresh on page load and prevent other lifecycleHooks\n // to triggerUpdate until this initial refresh is finished\n // this is to make sure that when a page is opened in an inactive tab which\n // has throttled rAF/timers we still immediately set the page title\n\n\n if (isUndefined($root[rootConfigKey].initialized)) {\n $root[rootConfigKey].initialized = this.$isServer;\n\n if (!$root[rootConfigKey].initialized) {\n if (!$root[rootConfigKey].initializedSsr) {\n $root[rootConfigKey].initializedSsr = true;\n this.$on('hook:beforeMount', function () {\n var $root = this[rootKey]; // if this Vue-app was server rendered, set the appId to 'ssr'\n // only one SSR app per page is supported\n\n if (wasServerRendered) {\n $root[rootConfigKey].appId = options.ssrAppId;\n }\n });\n } // we use the mounted hook here as on page load\n\n\n this.$on('hook:mounted', function () {\n var $root = this[rootKey];\n\n if ($root[rootConfigKey].initialized) {\n return;\n } // used in triggerUpdate to check if a change was triggered\n // during initialization\n\n\n $root[rootConfigKey].initializing = true; // refresh meta in nextTick so all child components have loaded\n\n this.$nextTick(function () {\n var _$root$$meta$refresh = $root.$meta().refresh(),\n tags = _$root$$meta$refresh.tags,\n metaInfo = _$root$$meta$refresh.metaInfo; // After ssr hydration (identifier by tags === false) check\n // if initialized was set to null in triggerUpdate. That'd mean\n // that during initilazation changes where triggered which need\n // to be applied OR a metaInfo watcher was triggered before the\n // current hook was called\n // (during initialization all changes are blocked)\n\n\n if (tags === false && $root[rootConfigKey].initialized === null) {\n this.$nextTick(function () {\n return triggerUpdate(options, $root, 'init');\n });\n }\n\n $root[rootConfigKey].initialized = true;\n delete $root[rootConfigKey].initializing; // add the navigation guards if they havent been added yet\n // they are needed for the afterNavigation callback\n\n if (!options.refreshOnceOnNavigation && metaInfo.afterNavigation) {\n addNavGuards($root);\n }\n });\n }); // add the navigation guards if requested\n\n if (options.refreshOnceOnNavigation) {\n addNavGuards($root);\n }\n }\n }\n\n this.$on('hook:destroyed', function () {\n var _this = this;\n\n // do not trigger refresh:\n // - when user configured to not wait for transitions on destroyed\n // - when the component doesnt have a parent\n // - doesnt have metaInfo defined\n if (!this.$parent || !hasMetaInfo(this)) {\n return;\n }\n\n delete this._hasMetaInfo;\n this.$nextTick(function () {\n if (!options.waitOnDestroyed || !_this.$el || !_this.$el.offsetParent) {\n triggerUpdate(options, _this.$root, 'destroyed');\n return;\n } // Wait that element is hidden before refreshing meta tags (to support animations)\n\n\n var interval = setInterval(function () {\n if (_this.$el && _this.$el.offsetParent !== null) {\n /* istanbul ignore next line */\n return;\n }\n\n clearInterval(interval);\n triggerUpdate(options, _this.$root, 'destroyed');\n }, 50);\n });\n }); // do not trigger refresh on the server side\n\n if (this.$isServer) {\n /* istanbul ignore next */\n return;\n } // no need to add this hooks on server side\n\n\n updateOnLifecycleHook.forEach(function (lifecycleHook) {\n _this2.$on(\"hook:\".concat(lifecycleHook), function () {\n triggerUpdate(options, this[rootKey], lifecycleHook);\n });\n });\n }\n };\n}\n\nfunction setOptions(options) {\n // combine options\n options = isObject(options) ? options : {}; // The options are set like this so they can\n // be minified by terser while keeping the\n // user api intact\n // terser --mangle-properties keep_quoted=strict\n\n /* eslint-disable dot-notation */\n\n return {\n keyName: options['keyName'] || defaultOptions.keyName,\n attribute: options['attribute'] || defaultOptions.attribute,\n ssrAttribute: options['ssrAttribute'] || defaultOptions.ssrAttribute,\n tagIDKeyName: options['tagIDKeyName'] || defaultOptions.tagIDKeyName,\n contentKeyName: options['contentKeyName'] || defaultOptions.contentKeyName,\n metaTemplateKeyName: options['metaTemplateKeyName'] || defaultOptions.metaTemplateKeyName,\n debounceWait: isUndefined(options['debounceWait']) ? defaultOptions.debounceWait : options['debounceWait'],\n waitOnDestroyed: isUndefined(options['waitOnDestroyed']) ? defaultOptions.waitOnDestroyed : options['waitOnDestroyed'],\n ssrAppId: options['ssrAppId'] || defaultOptions.ssrAppId,\n refreshOnceOnNavigation: !!options['refreshOnceOnNavigation']\n };\n /* eslint-enable dot-notation */\n}\nfunction getOptions(options) {\n var optionsCopy = {};\n\n for (var key in options) {\n optionsCopy[key] = options[key];\n }\n\n return optionsCopy;\n}\n\nfunction ensureIsArray(arg, key) {\n if (!key || !isObject(arg)) {\n return isArray(arg) ? arg : [];\n }\n\n if (!isArray(arg[key])) {\n arg[key] = [];\n }\n\n return arg;\n}\n\nvar serverSequences = [[/&/g, '&'], [//g, '>'], [/\"/g, '"'], [/'/g, ''']];\nvar clientSequences = [[/&/g, \"&\"], [//g, \">\"], [/\"/g, \"\\\"\"], [/'/g, \"'\"]]; // sanitizes potentially dangerous characters\n\nfunction escape(info, options, escapeOptions, escapeKeys) {\n var tagIDKeyName = options.tagIDKeyName;\n var _escapeOptions$doEsca = escapeOptions.doEscape,\n doEscape = _escapeOptions$doEsca === void 0 ? function (v) {\n return v;\n } : _escapeOptions$doEsca;\n var escaped = {};\n\n for (var key in info) {\n var value = info[key]; // no need to escape configuration options\n\n if (includes(metaInfoOptionKeys, key)) {\n escaped[key] = value;\n continue;\n } // do not use destructuring for disableOptionKeys, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n\n\n var disableKey = disableOptionKeys[0];\n\n if (escapeOptions[disableKey] && includes(escapeOptions[disableKey], key)) {\n // this info[key] doesnt need to escaped if the option is listed in __dangerouslyDisableSanitizers\n escaped[key] = value;\n continue;\n }\n\n var tagId = info[tagIDKeyName];\n\n if (tagId) {\n disableKey = disableOptionKeys[1]; // keys which are listed in __dangerouslyDisableSanitizersByTagID for the current vmid do not need to be escaped\n\n if (escapeOptions[disableKey] && escapeOptions[disableKey][tagId] && includes(escapeOptions[disableKey][tagId], key)) {\n escaped[key] = value;\n continue;\n }\n }\n\n if (isString(value)) {\n escaped[key] = doEscape(value);\n } else if (isArray(value)) {\n escaped[key] = value.map(function (v) {\n if (isPureObject(v)) {\n return escape(v, options, escapeOptions, true);\n }\n\n return doEscape(v);\n });\n } else if (isPureObject(value)) {\n escaped[key] = escape(value, options, escapeOptions, true);\n } else {\n escaped[key] = value;\n }\n\n if (escapeKeys) {\n var escapedKey = doEscape(key);\n\n if (key !== escapedKey) {\n escaped[escapedKey] = escaped[key];\n delete escaped[key];\n }\n }\n }\n\n return escaped;\n}\nfunction escapeMetaInfo(options, info, escapeSequences) {\n escapeSequences = escapeSequences || []; // do not use destructuring for seq, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n\n var escapeOptions = {\n doEscape: function doEscape(value) {\n return escapeSequences.reduce(function (val, seq) {\n return val.replace(seq[0], seq[1]);\n }, value);\n }\n };\n disableOptionKeys.forEach(function (disableKey, index) {\n if (index === 0) {\n ensureIsArray(info, disableKey);\n } else if (index === 1) {\n for (var key in info[disableKey]) {\n ensureIsArray(info[disableKey], key);\n }\n }\n\n escapeOptions[disableKey] = info[disableKey];\n }); // begin sanitization\n\n return escape(info, options, escapeOptions);\n}\n\nfunction applyTemplate(_ref, headObject, template, chunk) {\n var component = _ref.component,\n metaTemplateKeyName = _ref.metaTemplateKeyName,\n contentKeyName = _ref.contentKeyName;\n\n if (template === true || headObject[metaTemplateKeyName] === true) {\n // abort, template was already applied\n return false;\n }\n\n if (isUndefined(template) && headObject[metaTemplateKeyName]) {\n template = headObject[metaTemplateKeyName];\n headObject[metaTemplateKeyName] = true;\n } // return early if no template defined\n\n\n if (!template) {\n // cleanup faulty template properties\n delete headObject[metaTemplateKeyName];\n return false;\n }\n\n if (isUndefined(chunk)) {\n chunk = headObject[contentKeyName];\n }\n\n headObject[contentKeyName] = isFunction(template) ? template.call(component, chunk) : template.replace(/%s/g, chunk);\n return true;\n}\n\nfunction _arrayMerge(_ref, target, source) {\n var component = _ref.component,\n tagIDKeyName = _ref.tagIDKeyName,\n metaTemplateKeyName = _ref.metaTemplateKeyName,\n contentKeyName = _ref.contentKeyName;\n // we concat the arrays without merging objects contained in,\n // but we check for a `vmid` property on each object in the array\n // using an O(1) lookup associative array exploit\n var destination = [];\n\n if (!target.length && !source.length) {\n return destination;\n }\n\n target.forEach(function (targetItem, targetIndex) {\n // no tagID so no need to check for duplicity\n if (!targetItem[tagIDKeyName]) {\n destination.push(targetItem);\n return;\n }\n\n var sourceIndex = findIndex(source, function (item) {\n return item[tagIDKeyName] === targetItem[tagIDKeyName];\n });\n var sourceItem = source[sourceIndex]; // source doesnt contain any duplicate vmid's, we can keep targetItem\n\n if (sourceIndex === -1) {\n destination.push(targetItem);\n return;\n } // when sourceItem explictly defines contentKeyName or innerHTML as undefined, its\n // an indication that we need to skip the default behaviour or child has preference over parent\n // which means we keep the targetItem and ignore/remove the sourceItem\n\n\n if (contentKeyName in sourceItem && sourceItem[contentKeyName] === undefined || 'innerHTML' in sourceItem && sourceItem.innerHTML === undefined) {\n destination.push(targetItem); // remove current index from source array so its not concatenated to destination below\n\n source.splice(sourceIndex, 1);\n return;\n } // we now know that targetItem is a duplicate and we should ignore it in favor of sourceItem\n // if source specifies null as content then ignore both the target as the source\n\n\n if (sourceItem[contentKeyName] === null || sourceItem.innerHTML === null) {\n // remove current index from source array so its not concatenated to destination below\n source.splice(sourceIndex, 1);\n return;\n } // now we only need to check if the target has a template to combine it with the source\n\n\n var targetTemplate = targetItem[metaTemplateKeyName];\n\n if (!targetTemplate) {\n return;\n }\n\n var sourceTemplate = sourceItem[metaTemplateKeyName];\n\n if (!sourceTemplate) {\n // use parent template and child content\n applyTemplate({\n component: component,\n metaTemplateKeyName: metaTemplateKeyName,\n contentKeyName: contentKeyName\n }, sourceItem, targetTemplate); // set template to true to indicate template was already applied\n\n sourceItem.template = true;\n return;\n }\n\n if (!sourceItem[contentKeyName]) {\n // use parent content and child template\n applyTemplate({\n component: component,\n metaTemplateKeyName: metaTemplateKeyName,\n contentKeyName: contentKeyName\n }, sourceItem, undefined, targetItem[contentKeyName]);\n }\n });\n return destination.concat(source);\n}\nvar warningShown = false;\nfunction merge(target, source, options) {\n options = options || {}; // remove properties explicitly set to false so child components can\n // optionally _not_ overwrite the parents content\n // (for array properties this is checked in arrayMerge)\n\n if (source.title === undefined) {\n delete source.title;\n }\n\n metaInfoAttributeKeys.forEach(function (attrKey) {\n if (!source[attrKey]) {\n return;\n }\n\n for (var key in source[attrKey]) {\n if (key in source[attrKey] && source[attrKey][key] === undefined) {\n if (includes(booleanHtmlAttributes, key) && !warningShown) {\n warn('VueMeta: Please note that since v2 the value undefined is not used to indicate boolean attributes anymore, see migration guide for details');\n warningShown = true;\n }\n\n delete source[attrKey][key];\n }\n }\n });\n return deepmerge(target, source, {\n arrayMerge: function arrayMerge(t, s) {\n return _arrayMerge(options, t, s);\n }\n });\n}\n\nfunction getComponentMetaInfo(options, component) {\n return getComponentOption(options || {}, component, defaultInfo);\n}\n/**\n * Returns the `opts.option` $option value of the given `opts.component`.\n * If methods are encountered, they will be bound to the component context.\n * If `opts.deep` is true, will recursively merge all child component\n * `opts.option` $option values into the returned result.\n *\n * @param {Object} opts - options\n * @param {Object} opts.component - Vue component to fetch option data from\n * @param {Boolean} opts.deep - look for data in child components as well?\n * @param {Function} opts.arrayMerge - how should arrays be merged?\n * @param {String} opts.keyName - the name of the option to look for\n * @param {Object} [result={}] - result so far\n * @return {Object} result - final aggregated result\n */\n\nfunction getComponentOption(options, component, result) {\n result = result || {};\n\n if (component._inactive) {\n return result;\n }\n\n options = options || {};\n var _options = options,\n keyName = _options.keyName;\n var $metaInfo = component.$metaInfo,\n $options = component.$options,\n $children = component.$children; // only collect option data if it exists\n\n if ($options[keyName]) {\n // if $metaInfo exists then [keyName] was defined as a function\n // and set to the computed prop $metaInfo in the mixin\n // using the computed prop should be a small performance increase\n // because Vue caches those internally\n var data = $metaInfo || $options[keyName]; // only merge data with result when its an object\n // eg it could be a function when metaInfo() returns undefined\n // dueo to the or statement above\n\n if (isObject(data)) {\n result = merge(result, data, options);\n }\n } // collect & aggregate child options if deep = true\n\n\n if ($children.length) {\n $children.forEach(function (childComponent) {\n // check if the childComponent is in a branch\n // return otherwise so we dont walk all component branches unnecessarily\n if (!inMetaInfoBranch(childComponent)) {\n return;\n }\n\n result = getComponentOption(options, childComponent, result);\n });\n }\n\n return result;\n}\n\nvar callbacks = [];\nfunction isDOMComplete(d) {\n return (d || document).readyState === 'complete';\n}\nfunction addCallback(query, callback) {\n if (arguments.length === 1) {\n callback = query;\n query = '';\n }\n\n callbacks.push([query, callback]);\n}\nfunction addCallbacks(_ref, type, tags, autoAddListeners) {\n var tagIDKeyName = _ref.tagIDKeyName;\n var hasAsyncCallback = false;\n tags.forEach(function (tag) {\n if (!tag[tagIDKeyName] || !tag.callback) {\n return;\n }\n\n hasAsyncCallback = true;\n addCallback(\"\".concat(type, \"[data-\").concat(tagIDKeyName, \"=\\\"\").concat(tag[tagIDKeyName], \"\\\"]\"), tag.callback);\n });\n\n if (!autoAddListeners || !hasAsyncCallback) {\n return hasAsyncCallback;\n }\n\n return addListeners();\n}\nfunction addListeners() {\n if (isDOMComplete()) {\n applyCallbacks();\n return;\n } // Instead of using a MutationObserver, we just apply\n\n /* istanbul ignore next */\n\n\n document.onreadystatechange = function () {\n applyCallbacks();\n };\n}\nfunction applyCallbacks(matchElement) {\n callbacks.forEach(function (args) {\n // do not use destructuring for args, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n var query = args[0];\n var callback = args[1];\n var selector = \"\".concat(query, \"[onload=\\\"this.__vm_l=1\\\"]\");\n var elements = [];\n\n if (!matchElement) {\n elements = toArray(querySelector(selector));\n }\n\n if (matchElement && matchElement.matches(selector)) {\n elements = [matchElement];\n }\n\n elements.forEach(function (element) {\n /* __vm_cb: whether the load callback has been called\n * __vm_l: set by onload attribute, whether the element was loaded\n * __vm_ev: whether the event listener was added or not\n */\n if (element.__vm_cb) {\n return;\n }\n\n var onload = function onload() {\n /* Mark that the callback for this element has already been called,\n * this prevents the callback to run twice in some (rare) conditions\n */\n element.__vm_cb = true;\n /* onload needs to be removed because we only need the\n * attribute after ssr and if we dont remove it the node\n * will fail isEqualNode on the client\n */\n\n removeAttribute(element, 'onload');\n callback(element);\n };\n /* IE9 doesnt seem to load scripts synchronously,\n * causing a script sometimes/often already to be loaded\n * when we add the event listener below (thus adding an onload event\n * listener has no use because it will never be triggered).\n * Therefore we add the onload attribute during ssr, and\n * check here if it was already loaded or not\n */\n\n\n if (element.__vm_l) {\n onload();\n return;\n }\n\n if (!element.__vm_ev) {\n element.__vm_ev = true;\n element.addEventListener('load', onload);\n }\n });\n });\n}\n\n// instead of adding it to the html\n\nvar attributeMap = {};\n/**\n * Updates the document's html tag attributes\n *\n * @param {Object} attrs - the new document html attributes\n * @param {HTMLElement} tag - the HTMLElement tag to update with new attrs\n */\n\nfunction updateAttribute(appId, options, type, attrs, tag) {\n var _ref = options || {},\n attribute = _ref.attribute;\n\n var vueMetaAttrString = tag.getAttribute(attribute);\n\n if (vueMetaAttrString) {\n attributeMap[type] = JSON.parse(decodeURI(vueMetaAttrString));\n removeAttribute(tag, attribute);\n }\n\n var data = attributeMap[type] || {};\n var toUpdate = []; // remove attributes from the map\n // which have been removed for this appId\n\n for (var attr in data) {\n if (data[attr] !== undefined && appId in data[attr]) {\n toUpdate.push(attr);\n\n if (!attrs[attr]) {\n delete data[attr][appId];\n }\n }\n }\n\n for (var _attr in attrs) {\n var attrData = data[_attr];\n\n if (!attrData || attrData[appId] !== attrs[_attr]) {\n toUpdate.push(_attr);\n\n if (attrs[_attr] !== undefined) {\n data[_attr] = data[_attr] || {};\n data[_attr][appId] = attrs[_attr];\n }\n }\n }\n\n for (var _i = 0, _toUpdate = toUpdate; _i < _toUpdate.length; _i++) {\n var _attr2 = _toUpdate[_i];\n var _attrData = data[_attr2];\n var attrValues = [];\n\n for (var _appId in _attrData) {\n Array.prototype.push.apply(attrValues, [].concat(_attrData[_appId]));\n }\n\n if (attrValues.length) {\n var attrValue = includes(booleanHtmlAttributes, _attr2) && attrValues.some(Boolean) ? '' : attrValues.filter(function (v) {\n return v !== undefined;\n }).join(' ');\n tag.setAttribute(_attr2, attrValue);\n } else {\n removeAttribute(tag, _attr2);\n }\n }\n\n attributeMap[type] = data;\n}\n\n/**\n * Updates the document title\n *\n * @param {String} title - the new title of the document\n */\nfunction updateTitle(title) {\n if (!title && title !== '') {\n return;\n }\n\n document.title = title;\n}\n\n/**\n * Updates meta tags inside and on the client. Borrowed from `react-helmet`:\n * https://github.com/nfl/react-helmet/blob/004d448f8de5f823d10f838b02317521180f34da/src/Helmet.js#L195-L245\n *\n * @param {('meta'|'base'|'link'|'style'|'script'|'noscript')} type - the name of the tag\n * @param {(Array|Object)} tags - an array of tag objects or a single object in case of base\n * @return {Object} - a representation of what tags changed\n */\n\nfunction updateTag(appId, options, type, tags, head, body) {\n var _ref = options || {},\n attribute = _ref.attribute,\n tagIDKeyName = _ref.tagIDKeyName;\n\n var dataAttributes = commonDataAttributes.slice();\n dataAttributes.push(tagIDKeyName);\n var newElements = [];\n var queryOptions = {\n appId: appId,\n attribute: attribute,\n type: type,\n tagIDKeyName: tagIDKeyName\n };\n var currentElements = {\n head: queryElements(head, queryOptions),\n pbody: queryElements(body, queryOptions, {\n pbody: true\n }),\n body: queryElements(body, queryOptions, {\n body: true\n })\n };\n\n if (tags.length > 1) {\n // remove duplicates that could have been found by merging tags\n // which include a mixin with metaInfo and that mixin is used\n // by multiple components on the same page\n var found = [];\n tags = tags.filter(function (x) {\n var k = JSON.stringify(x);\n var res = !includes(found, k);\n found.push(k);\n return res;\n });\n }\n\n tags.forEach(function (tag) {\n if (tag.skip) {\n return;\n }\n\n var newElement = document.createElement(type);\n\n if (!tag.once) {\n newElement.setAttribute(attribute, appId);\n }\n\n Object.keys(tag).forEach(function (attr) {\n /* istanbul ignore next */\n if (includes(tagProperties, attr)) {\n return;\n }\n\n if (attr === 'innerHTML') {\n newElement.innerHTML = tag.innerHTML;\n return;\n }\n\n if (attr === 'json') {\n newElement.innerHTML = JSON.stringify(tag.json);\n return;\n }\n\n if (attr === 'cssText') {\n if (newElement.styleSheet) {\n /* istanbul ignore next */\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n\n return;\n }\n\n if (attr === 'callback') {\n newElement.onload = function () {\n return tag[attr](newElement);\n };\n\n return;\n }\n\n var _attr = includes(dataAttributes, attr) ? \"data-\".concat(attr) : attr;\n\n var isBooleanAttribute = includes(booleanHtmlAttributes, attr);\n\n if (isBooleanAttribute && !tag[attr]) {\n return;\n }\n\n var value = isBooleanAttribute ? '' : tag[attr];\n newElement.setAttribute(_attr, value);\n });\n var oldElements = currentElements[getElementsKey(tag)]; // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n var indexToDelete;\n var hasEqualElement = oldElements.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n });\n\n if (hasEqualElement && (indexToDelete || indexToDelete === 0)) {\n oldElements.splice(indexToDelete, 1);\n } else {\n newElements.push(newElement);\n }\n });\n var oldElements = [];\n\n for (var _type in currentElements) {\n Array.prototype.push.apply(oldElements, currentElements[_type]);\n } // remove old elements\n\n\n oldElements.forEach(function (element) {\n element.parentNode.removeChild(element);\n }); // insert new elements\n\n newElements.forEach(function (element) {\n if (element.hasAttribute('data-body')) {\n body.appendChild(element);\n return;\n }\n\n if (element.hasAttribute('data-pbody')) {\n body.insertBefore(element, body.firstChild);\n return;\n }\n\n head.appendChild(element);\n });\n return {\n oldTags: oldElements,\n newTags: newElements\n };\n}\n\n/**\n * Performs client-side updates when new meta info is received\n *\n * @param {Object} newInfo - the meta info to update to\n */\n\nfunction updateClientMetaInfo(appId, options, newInfo) {\n options = options || {};\n var _options = options,\n ssrAttribute = _options.ssrAttribute,\n ssrAppId = _options.ssrAppId; // only cache tags for current update\n\n var tags = {};\n var htmlTag = getTag(tags, 'html'); // if this is a server render, then dont update\n\n if (appId === ssrAppId && htmlTag.hasAttribute(ssrAttribute)) {\n // remove the server render attribute so we can update on (next) changes\n removeAttribute(htmlTag, ssrAttribute); // add load callbacks if the\n\n var addLoadListeners = false;\n tagsSupportingOnload.forEach(function (type) {\n if (newInfo[type] && addCallbacks(options, type, newInfo[type])) {\n addLoadListeners = true;\n }\n });\n\n if (addLoadListeners) {\n addListeners();\n }\n\n return false;\n } // initialize tracked changes\n\n\n var tagsAdded = {};\n var tagsRemoved = {};\n\n for (var type in newInfo) {\n // ignore these\n if (includes(metaInfoOptionKeys, type)) {\n continue;\n }\n\n if (type === 'title') {\n // update the title\n updateTitle(newInfo.title);\n continue;\n }\n\n if (includes(metaInfoAttributeKeys, type)) {\n var tagName = type.substr(0, 4);\n updateAttribute(appId, options, type, newInfo[type], getTag(tags, tagName));\n continue;\n } // tags should always be an array, ignore if it isnt\n\n\n if (!isArray(newInfo[type])) {\n continue;\n }\n\n var _updateTag = updateTag(appId, options, type, newInfo[type], getTag(tags, 'head'), getTag(tags, 'body')),\n oldTags = _updateTag.oldTags,\n newTags = _updateTag.newTags;\n\n if (newTags.length) {\n tagsAdded[type] = newTags;\n tagsRemoved[type] = oldTags;\n }\n }\n\n return {\n tagsAdded: tagsAdded,\n tagsRemoved: tagsRemoved\n };\n}\n\nvar appsMetaInfo;\nfunction addApp(rootVm, appId, options) {\n return {\n set: function set(metaInfo) {\n return setMetaInfo(rootVm, appId, options, metaInfo);\n },\n remove: function remove() {\n return removeMetaInfo(rootVm, appId, options);\n }\n };\n}\nfunction setMetaInfo(rootVm, appId, options, metaInfo) {\n // if a vm exists _and_ its mounted then immediately update\n if (rootVm && rootVm.$el) {\n return updateClientMetaInfo(appId, options, metaInfo);\n } // store for later, the info\n // will be set on the first refresh\n\n\n appsMetaInfo = appsMetaInfo || {};\n appsMetaInfo[appId] = metaInfo;\n}\nfunction removeMetaInfo(rootVm, appId, options) {\n if (rootVm && rootVm.$el) {\n var tags = {};\n\n var _iterator = _createForOfIteratorHelper(metaInfoAttributeKeys),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var type = _step.value;\n var tagName = type.substr(0, 4);\n updateAttribute(appId, options, type, {}, getTag(tags, tagName));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return removeElementsByAppId(options, appId);\n }\n\n if (appsMetaInfo[appId]) {\n delete appsMetaInfo[appId];\n clearAppsMetaInfo();\n }\n}\nfunction getAppsMetaInfo() {\n return appsMetaInfo;\n}\nfunction clearAppsMetaInfo(force) {\n if (force || !Object.keys(appsMetaInfo).length) {\n appsMetaInfo = undefined;\n }\n}\n\n/**\n * Returns the correct meta info for the given component\n * (child components will overwrite parent meta info)\n *\n * @param {Object} component - the Vue instance to get meta info from\n * @return {Object} - returned meta info\n */\n\nfunction getMetaInfo(options, info, escapeSequences, component) {\n options = options || {};\n escapeSequences = escapeSequences || [];\n var _options = options,\n tagIDKeyName = _options.tagIDKeyName; // Remove all \"template\" tags from meta\n // backup the title chunk in case user wants access to it\n\n if (info.title) {\n info.titleChunk = info.title;\n } // replace title with populated template\n\n\n if (info.titleTemplate && info.titleTemplate !== '%s') {\n applyTemplate({\n component: component,\n contentKeyName: 'title'\n }, info, info.titleTemplate, info.titleChunk || '');\n } // convert base tag to an array so it can be handled the same way\n // as the other tags\n\n\n if (info.base) {\n info.base = Object.keys(info.base).length ? [info.base] : [];\n }\n\n if (info.meta) {\n // remove meta items with duplicate vmid's\n info.meta = info.meta.filter(function (metaItem, index, arr) {\n var hasVmid = !!metaItem[tagIDKeyName];\n\n if (!hasVmid) {\n return true;\n }\n\n var isFirstItemForVmid = index === findIndex(arr, function (item) {\n return item[tagIDKeyName] === metaItem[tagIDKeyName];\n });\n return isFirstItemForVmid;\n }); // apply templates if needed\n\n info.meta.forEach(function (metaObject) {\n return applyTemplate(options, metaObject);\n });\n }\n\n return escapeMetaInfo(options, info, escapeSequences);\n}\n\n/**\n * When called, will update the current meta info with new meta info.\n * Useful when updating meta info as the result of an asynchronous\n * action that resolves after the initial render takes place.\n *\n * Credit to [Sébastien Chopin](https://github.com/Atinux) for the suggestion\n * to implement this method.\n *\n * @return {Object} - new meta info\n */\n\nfunction refresh(rootVm, options) {\n options = options || {}; // make sure vue-meta was initiated\n\n if (!rootVm[rootConfigKey]) {\n showWarningNotSupported();\n return {};\n } // collect & aggregate all metaInfo $options\n\n\n var rawInfo = getComponentMetaInfo(options, rootVm);\n var metaInfo = getMetaInfo(options, rawInfo, clientSequences, rootVm);\n var appId = rootVm[rootConfigKey].appId;\n var tags = updateClientMetaInfo(appId, options, metaInfo); // emit \"event\" with new info\n\n if (tags && isFunction(metaInfo.changed)) {\n metaInfo.changed(metaInfo, tags.tagsAdded, tags.tagsRemoved);\n tags = {\n addedTags: tags.tagsAdded,\n removedTags: tags.tagsRemoved\n };\n }\n\n var appsMetaInfo = getAppsMetaInfo();\n\n if (appsMetaInfo) {\n for (var additionalAppId in appsMetaInfo) {\n updateClientMetaInfo(additionalAppId, options, appsMetaInfo[additionalAppId]);\n delete appsMetaInfo[additionalAppId];\n }\n\n clearAppsMetaInfo(true);\n }\n\n return {\n vm: rootVm,\n metaInfo: metaInfo,\n // eslint-disable-line object-shorthand\n tags: tags\n };\n}\n\n/**\n * Generates tag attributes for use on the server.\n *\n * @param {('bodyAttrs'|'htmlAttrs'|'headAttrs')} type - the type of attributes to generate\n * @param {Object} data - the attributes to generate\n * @return {Object} - the attribute generator\n */\n\nfunction attributeGenerator(options, type, data, _ref) {\n var addSsrAttribute = _ref.addSsrAttribute;\n\n var _ref2 = options || {},\n attribute = _ref2.attribute,\n ssrAttribute = _ref2.ssrAttribute;\n\n var attributeStr = '';\n\n for (var attr in data) {\n var attrData = data[attr];\n var attrValues = [];\n\n for (var appId in attrData) {\n attrValues.push.apply(attrValues, _toConsumableArray([].concat(attrData[appId])));\n }\n\n if (attrValues.length) {\n attributeStr += booleanHtmlAttributes.includes(attr) && attrValues.some(Boolean) ? \"\".concat(attr) : \"\".concat(attr, \"=\\\"\").concat(attrValues.join(' '), \"\\\"\");\n attributeStr += ' ';\n }\n }\n\n if (attributeStr) {\n attributeStr += \"\".concat(attribute, \"=\\\"\").concat(encodeURI(JSON.stringify(data)), \"\\\"\");\n }\n\n if (type === 'htmlAttrs' && addSsrAttribute) {\n return \"\".concat(ssrAttribute).concat(attributeStr ? ' ' : '').concat(attributeStr);\n }\n\n return attributeStr;\n}\n\n/**\n * Generates title output for the server\n *\n * @param {'title'} type - the string \"title\"\n * @param {String} data - the title text\n * @return {Object} - the title generator\n */\nfunction titleGenerator(options, type, data, generatorOptions) {\n var _ref = generatorOptions || {},\n ln = _ref.ln;\n\n if (!data) {\n return '';\n }\n\n return \"<\".concat(type, \">\").concat(data, \"\").concat(ln ? '\\n' : '');\n}\n\n/**\n * Generates meta, base, link, style, script, noscript tags for use on the server\n *\n * @param {('meta'|'base'|'link'|'style'|'script'|'noscript')} the name of the tag\n * @param {(Array|Object)} tags - an array of tag objects or a single object in case of base\n * @return {Object} - the tag generator\n */\n\nfunction tagGenerator(options, type, tags, generatorOptions) {\n var _ref = options || {},\n ssrAppId = _ref.ssrAppId,\n attribute = _ref.attribute,\n tagIDKeyName = _ref.tagIDKeyName;\n\n var _ref2 = generatorOptions || {},\n appId = _ref2.appId,\n _ref2$isSSR = _ref2.isSSR,\n isSSR = _ref2$isSSR === void 0 ? true : _ref2$isSSR,\n _ref2$body = _ref2.body,\n body = _ref2$body === void 0 ? false : _ref2$body,\n _ref2$pbody = _ref2.pbody,\n pbody = _ref2$pbody === void 0 ? false : _ref2$pbody,\n _ref2$ln = _ref2.ln,\n ln = _ref2$ln === void 0 ? false : _ref2$ln;\n\n var dataAttributes = [tagIDKeyName].concat(_toConsumableArray(commonDataAttributes));\n\n if (!tags || !tags.length) {\n return '';\n } // build a string containing all tags of this type\n\n\n return tags.reduce(function (tagsStr, tag) {\n if (tag.skip) {\n return tagsStr;\n }\n\n var tagKeys = Object.keys(tag);\n\n if (tagKeys.length === 0) {\n return tagsStr; // Bail on empty tag object\n }\n\n if (Boolean(tag.body) !== body || Boolean(tag.pbody) !== pbody) {\n return tagsStr;\n }\n\n var attrs = tag.once ? '' : \" \".concat(attribute, \"=\\\"\").concat(appId || (isSSR === false ? '1' : ssrAppId), \"\\\"\"); // build a string containing all attributes of this tag\n\n for (var attr in tag) {\n // these attributes are treated as children on the tag\n if (tagAttributeAsInnerContent.includes(attr) || tagProperties.includes(attr)) {\n continue;\n }\n\n if (attr === 'callback') {\n attrs += ' onload=\"this.__vm_l=1\"';\n continue;\n } // these form the attribute list for this tag\n\n\n var prefix = '';\n\n if (dataAttributes.includes(attr)) {\n prefix = 'data-';\n }\n\n var isBooleanAttr = !prefix && booleanHtmlAttributes.includes(attr);\n\n if (isBooleanAttr && !tag[attr]) {\n continue;\n }\n\n attrs += \" \".concat(prefix).concat(attr) + (isBooleanAttr ? '' : \"=\\\"\".concat(tag[attr], \"\\\"\"));\n }\n\n var json = '';\n\n if (tag.json) {\n json = JSON.stringify(tag.json);\n } // grab child content from one of these attributes, if possible\n\n\n var content = tag.innerHTML || tag.cssText || json; // generate tag exactly without any other redundant attribute\n // these tags have no end tag\n\n var hasEndTag = !tagsWithoutEndTag.includes(type); // these tag types will have content inserted\n\n var hasContent = hasEndTag && tagsWithInnerContent.includes(type); // the final string for this specific tag\n\n return \"\".concat(tagsStr, \"<\").concat(type).concat(attrs).concat(!hasContent && hasEndTag ? '/' : '', \">\") + (hasContent ? \"\".concat(content, \"\") : '') + (ln ? '\\n' : '');\n }, '');\n}\n\n/**\n * Converts a meta info property to one that can be stringified on the server\n *\n * @param {String} type - the type of data to convert\n * @param {(String|Object|Array)} data - the data value\n * @return {Object} - the new injector\n */\n\nfunction generateServerInjector(options, metaInfo, globalInjectOptions) {\n var serverInjector = {\n data: metaInfo,\n extraData: undefined,\n addInfo: function addInfo(appId, metaInfo) {\n this.extraData = this.extraData || {};\n this.extraData[appId] = metaInfo;\n },\n callInjectors: function callInjectors(opts) {\n var m = this.injectors; // only call title for the head\n\n return (opts.body || opts.pbody ? '' : m.title.text(opts)) + m.meta.text(opts) + m.base.text(opts) + m.link.text(opts) + m.style.text(opts) + m.script.text(opts) + m.noscript.text(opts);\n },\n injectors: {\n head: function head(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln\n }));\n },\n bodyPrepend: function bodyPrepend(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln,\n pbody: true\n }));\n },\n bodyAppend: function bodyAppend(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln,\n body: true\n }));\n }\n }\n };\n\n var _loop = function _loop(type) {\n if (metaInfoOptionKeys.includes(type)) {\n return \"continue\";\n }\n\n serverInjector.injectors[type] = {\n text: function text(injectOptions) {\n var addSsrAttribute = injectOptions === true;\n injectOptions = _objectSpread2(_objectSpread2({\n addSsrAttribute: addSsrAttribute\n }, globalInjectOptions), injectOptions);\n\n if (type === 'title') {\n return titleGenerator(options, type, serverInjector.data[type], injectOptions);\n }\n\n if (metaInfoAttributeKeys.includes(type)) {\n var attributeData = {};\n var data = serverInjector.data[type];\n\n if (data) {\n var appId = injectOptions.isSSR === false ? '1' : options.ssrAppId;\n\n for (var attr in data) {\n attributeData[attr] = _defineProperty({}, appId, data[attr]);\n }\n }\n\n if (serverInjector.extraData) {\n for (var _appId in serverInjector.extraData) {\n var _data = serverInjector.extraData[_appId][type];\n\n if (_data) {\n for (var _attr in _data) {\n attributeData[_attr] = _objectSpread2(_objectSpread2({}, attributeData[_attr]), {}, _defineProperty({}, _appId, _data[_attr]));\n }\n }\n }\n }\n\n return attributeGenerator(options, type, attributeData, injectOptions);\n }\n\n var str = tagGenerator(options, type, serverInjector.data[type], injectOptions);\n\n if (serverInjector.extraData) {\n for (var _appId2 in serverInjector.extraData) {\n var _data2 = serverInjector.extraData[_appId2][type];\n var extraStr = tagGenerator(options, type, _data2, _objectSpread2({\n appId: _appId2\n }, injectOptions));\n str = \"\".concat(str).concat(extraStr);\n }\n }\n\n return str;\n }\n };\n };\n\n for (var type in defaultInfo) {\n var _ret = _loop(type);\n\n if (_ret === \"continue\") continue;\n }\n\n return serverInjector;\n}\n\n/**\n * Converts the state of the meta info object such that each item\n * can be compiled to a tag string on the server\n *\n * @vm {Object} - Vue instance - ideally the root component\n * @return {Object} - server meta info with `toString` methods\n */\n\nfunction inject(rootVm, options, injectOptions) {\n // make sure vue-meta was initiated\n if (!rootVm[rootConfigKey]) {\n showWarningNotSupported();\n return {};\n } // collect & aggregate all metaInfo $options\n\n\n var rawInfo = getComponentMetaInfo(options, rootVm);\n var metaInfo = getMetaInfo(options, rawInfo, serverSequences, rootVm); // generate server injector\n\n var serverInjector = generateServerInjector(options, metaInfo, injectOptions); // add meta info from additional apps\n\n var appsMetaInfo = getAppsMetaInfo();\n\n if (appsMetaInfo) {\n for (var additionalAppId in appsMetaInfo) {\n serverInjector.addInfo(additionalAppId, appsMetaInfo[additionalAppId]);\n delete appsMetaInfo[additionalAppId];\n }\n\n clearAppsMetaInfo(true);\n }\n\n return serverInjector.injectors;\n}\n\nfunction $meta(options) {\n options = options || {};\n /**\n * Returns an injector for server-side rendering.\n * @this {Object} - the Vue instance (a root component)\n * @return {Object} - injector\n */\n\n var $root = this.$root;\n return {\n getOptions: function getOptions$1() {\n return getOptions(options);\n },\n setOptions: function setOptions(newOptions) {\n var refreshNavKey = 'refreshOnceOnNavigation';\n\n if (newOptions && newOptions[refreshNavKey]) {\n options.refreshOnceOnNavigation = !!newOptions[refreshNavKey];\n addNavGuards($root);\n }\n\n var debounceWaitKey = 'debounceWait';\n\n if (newOptions && debounceWaitKey in newOptions) {\n var debounceWait = parseInt(newOptions[debounceWaitKey]);\n\n if (!isNaN(debounceWait)) {\n options.debounceWait = debounceWait;\n }\n }\n\n var waitOnDestroyedKey = 'waitOnDestroyed';\n\n if (newOptions && waitOnDestroyedKey in newOptions) {\n options.waitOnDestroyed = !!newOptions[waitOnDestroyedKey];\n }\n },\n refresh: function refresh$1() {\n return refresh($root, options);\n },\n inject: function inject$1(injectOptions) {\n return inject($root, options, injectOptions) ;\n },\n pause: function pause$1() {\n return pause($root);\n },\n resume: function resume$1() {\n return resume($root);\n },\n addApp: function addApp$1(appId) {\n return addApp($root, appId, options);\n }\n };\n}\n\nfunction generate(rawInfo, options) {\n options = setOptions(options);\n var metaInfo = getMetaInfo(options, rawInfo, serverSequences);\n var serverInjector = generateServerInjector(options, metaInfo);\n return serverInjector.injectors;\n}\n\n/**\n * Plugin install function.\n * @param {Function} Vue - the Vue constructor.\n */\n\nfunction install(Vue, options) {\n if (Vue.__vuemeta_installed) {\n return;\n }\n\n Vue.__vuemeta_installed = true;\n options = setOptions(options);\n\n Vue.prototype.$meta = function () {\n return $meta.call(this, options);\n };\n\n Vue.mixin(createMixin(Vue, options));\n}\n\nvar index = {\n version: version,\n install: install,\n generate: function generate$1(metaInfo, options) {\n return generate(metaInfo, options) ;\n },\n hasMetaInfo: hasMetaInfo\n};\n\nexport default index;\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports[\"vuejs-noty\"]=e():t[\"vuejs-noty\"]=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=12)}([function(t,e,n){t.exports=!n(1)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e,n){var o=n(17);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==o(t)?t.split(\"\"):Object(t)}},function(t,e){var n=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:n)(t)}},function(t,e,n){var o=n(6),i=n(5);t.exports=function(t){return o(i(t))}},function(t,e,n){t.exports={default:n(13),__esModule:!0}},function(t,e){},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){return function(t){function e(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=6)}([function(t,e,n){\"use strict\";function o(t,e,n){var o=void 0;if(!n){for(o in e)if(e.hasOwnProperty(o)&&e[o]===t)return!0}else for(o in e)if(e.hasOwnProperty(o)&&e[o]===t)return!0;return!1}function i(t){t=t||window.event,void 0!==t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",e=\"noty_\"+t+\"_\";return e+=\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return(\"x\"===t?e:3&e|8).toString(16)})}function s(t){var e=t.offsetHeight,n=window.getComputedStyle(t);return e+=parseInt(n.marginTop)+parseInt(n.marginBottom)}function u(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e=e.split(\" \");for(var i=0;i=0}function c(t,e){var n=d(t),o=n+e;a(n,e)||(t.className=o.substring(1))}function l(t,e){var n=d(t),o=void 0;a(t,e)&&(o=n.replace(\" \"+e+\" \",\" \"),t.className=o.substring(1,o.length-1))}function f(t){t.parentNode&&t.parentNode.removeChild(t)}function d(t){return(\" \"+(t&&t.className||\"\")+\" \").replace(/\\s+/gi,\" \")}function h(){function t(){b.PageHidden=document[s],o()}function e(){b.PageHidden=!0,o()}function n(){b.PageHidden=!1,o()}function o(){b.PageHidden?i():r()}function i(){setTimeout(function(){Object.keys(b.Store).forEach(function(t){b.Store.hasOwnProperty(t)&&b.Store[t].options.visibilityControl&&b.Store[t].stop()})},100)}function r(){setTimeout(function(){Object.keys(b.Store).forEach(function(t){b.Store.hasOwnProperty(t)&&b.Store[t].options.visibilityControl&&b.Store[t].resume()}),b.queueRenderAll()},100)}var s=void 0,a=void 0;void 0!==document.hidden?(s=\"hidden\",a=\"visibilitychange\"):void 0!==document.msHidden?(s=\"msHidden\",a=\"msvisibilitychange\"):void 0!==document.webkitHidden&&(s=\"webkitHidden\",a=\"webkitvisibilitychange\"),u(document,a,t),u(window,\"blur\",e),u(window,\"focus\",n)}function p(t){if(t.hasSound){var e=document.createElement(\"audio\");t.options.sounds.sources.forEach(function(t){var n=document.createElement(\"source\");n.src=t,n.type=\"audio/\"+v(t),e.appendChild(n)}),t.barDom?t.barDom.appendChild(e):document.querySelector(\"body\").appendChild(e),e.volume=t.options.sounds.volume,t.soundPlayed||(e.play(),t.soundPlayed=!0),e.onended=function(){f(e)}}}function v(t){return t.match(/\\.([^.]+)$/)[1]}Object.defineProperty(e,\"__esModule\",{value:!0}),e.css=e.deepExtend=e.animationEndEvents=void 0;var m=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};e.inArray=o,e.stopPropagation=i,e.generateID=r,e.outerHeight=s,e.addListener=u,e.hasClass=a,e.addClass=c,e.removeClass=l,e.remove=f,e.classList=d,e.visibilityChangeFlow=h,e.createAudioElements=p;var y=n(1),b=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(y);e.animationEndEvents=\"webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend\",e.deepExtend=function t(e){e=e||{};for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:\"global\",e=0,n=E;return P.hasOwnProperty(t)&&(n=P[t].maxVisible,Object.keys(D).forEach(function(n){D[n].options.queue!==t||D[n].closed||e++})),{current:e,maxVisible:n}}function i(t){P.hasOwnProperty(t.options.queue)||(P[t.options.queue]={maxVisible:E,queue:[]}),P[t.options.queue].queue.push(t)}function r(t){if(P.hasOwnProperty(t.options.queue)){var e=[];Object.keys(P[t.options.queue].queue).forEach(function(n){P[t.options.queue].queue[n].id!==t.id&&e.push(P[t.options.queue].queue[n])}),P[t.options.queue].queue=e}}function s(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"global\";if(P.hasOwnProperty(t)){var e=P[t].queue.shift();e&&e.show()}}function u(){Object.keys(P).forEach(function(t){s(t)})}function a(t){var e=x.generateID(\"ghost\"),n=document.createElement(\"div\");n.setAttribute(\"id\",e),x.css(n,{height:x.outerHeight(t.barDom)+\"px\"}),t.barDom.insertAdjacentHTML(\"afterend\",n.outerHTML),x.remove(t.barDom),n=document.getElementById(e),x.addClass(n,\"noty_fix_effects_height\"),x.addListener(n,x.animationEndEvents,function(){x.remove(n)})}function c(t){v(t);var e='
'+t.options.text+\"
\"+f(t)+'
';t.barDom=document.createElement(\"div\"),t.barDom.setAttribute(\"id\",t.id),x.addClass(t.barDom,\"noty_bar noty_type__\"+t.options.type+\" noty_theme__\"+t.options.theme),t.barDom.innerHTML=e,b(t,\"onTemplate\")}function l(t){return!(!t.options.buttons||!Object.keys(t.options.buttons).length)}function f(t){if(l(t)){var e=document.createElement(\"div\");return x.addClass(e,\"noty_buttons\"),Object.keys(t.options.buttons).forEach(function(n){e.appendChild(t.options.buttons[n].dom)}),t.options.buttons.forEach(function(t){e.appendChild(t.dom)}),e.outerHTML}return\"\"}function d(t){t.options.modal&&(0===S&&p(),e.DocModalCount=S+=1)}function h(t){if(t.options.modal&&S>0&&(e.DocModalCount=S-=1,S<=0)){var n=document.querySelector(\".noty_modal\");n&&(x.removeClass(n,\"noty_modal_open\"),x.addClass(n,\"noty_modal_close\"),x.addListener(n,x.animationEndEvents,function(){x.remove(n)}))}}function p(){var t=document.querySelector(\"body\"),e=document.createElement(\"div\");x.addClass(e,\"noty_modal\"),t.insertBefore(e,t.firstChild),x.addClass(e,\"noty_modal_open\"),x.addListener(e,x.animationEndEvents,function(){x.removeClass(e,\"noty_modal_open\")})}function v(t){if(t.options.container)return void(t.layoutDom=document.querySelector(t.options.container));var e=\"noty_layout__\"+t.options.layout;t.layoutDom=document.querySelector(\"div#\"+e),t.layoutDom||(t.layoutDom=document.createElement(\"div\"),t.layoutDom.setAttribute(\"id\",e),x.addClass(t.layoutDom,\"noty_layout\"),document.querySelector(\"body\").appendChild(t.layoutDom))}function m(t){t.options.timeout&&(t.options.progressBar&&t.progressDom&&x.css(t.progressDom,{transition:\"width \"+t.options.timeout+\"ms linear\",width:\"0%\"}),clearTimeout(t.closeTimer),t.closeTimer=setTimeout(function(){t.close()},t.options.timeout))}function y(t){t.options.timeout&&t.closeTimer&&(clearTimeout(t.closeTimer),t.closeTimer=-1,t.options.progressBar&&t.progressDom&&x.css(t.progressDom,{transition:\"width 0ms linear\",width:\"100%\"}))}function b(t,e){t.listeners.hasOwnProperty(e)&&t.listeners[e].forEach(function(e){\"function\"==typeof e&&e.apply(t)})}function w(t){b(t,\"afterShow\"),m(t),x.addListener(t.barDom,\"mouseenter\",function(){y(t)}),x.addListener(t.barDom,\"mouseleave\",function(){m(t)})}function g(t){delete D[t.id],t.closing=!1,b(t,\"afterClose\"),x.remove(t.barDom),0!==t.layoutDom.querySelectorAll(\".noty_bar\").length||t.options.container||x.remove(t.layoutDom),(x.inArray(\"docVisible\",t.options.titleCount.conditions)||x.inArray(\"docHidden\",t.options.titleCount.conditions))&&C.decrement(),s(t.options.queue)}Object.defineProperty(e,\"__esModule\",{value:!0}),e.Defaults=e.Store=e.Queues=e.DefaultMaxVisible=e.docTitle=e.DocModalCount=e.PageHidden=void 0,e.getQueueCounts=o,e.addToQueue=i,e.removeFromQueue=r,e.queueRender=s,e.queueRenderAll=u,e.ghostFix=a,e.build=c,e.hasButtons=l,e.handleModal=d,e.handleModalClose=h,e.queueClose=m,e.dequeueClose=y,e.fire=b,e.openFlow=w,e.closeFlow=g;var _=n(0),x=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(_),S=(e.PageHidden=!1,e.DocModalCount=0),k={originalTitle:null,count:0,changed:!1,timer:-1},C=e.docTitle={increment:function(){k.count++,C._update()},decrement:function(){if(--k.count<=0)return void C._clear();C._update()},_update:function(){var t=document.title;k.changed?document.title=\"(\"+k.count+\") \"+k.originalTitle:(k.originalTitle=t,document.title=\"(\"+k.count+\") \"+t,k.changed=!0)},_clear:function(){k.changed&&(k.count=0,document.title=k.originalTitle,k.changed=!1)}},E=e.DefaultMaxVisible=5,P=e.Queues={global:{maxVisible:E,queue:[]}},D=e.Store={};e.Defaults={type:\"alert\",layout:\"topRight\",theme:\"mint\",text:\"\",timeout:!1,progressBar:!0,closeWith:[\"click\"],animation:{open:\"noty_effects_open\",close:\"noty_effects_close\"},id:!1,force:!1,killer:!1,queue:\"global\",container:!1,buttons:[],callbacks:{beforeShow:null,onShow:null,afterShow:null,onClose:null,afterClose:null,onHover:null,onTemplate:null},sounds:{sources:[],volume:1,conditions:[]},titleCount:{conditions:[]},modal:!1,visibilityControl:!0}},function(t,e,n){\"use strict\";function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(e,\"__esModule\",{value:!0}),e.NotyButton=void 0;var i=n(0),r=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(i);e.NotyButton=function t(e,n,i){var s=this,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return o(this,t),this.dom=document.createElement(\"button\"),this.dom.innerHTML=e,this.id=u.id=u.id||r.generateID(\"button\"),this.cb=i,Object.keys(u).forEach(function(t){s.dom.setAttribute(t,u[t])}),r.addClass(this.dom,n||\"noty_btn\"),this}},function(t,e,n){\"use strict\";function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(e,\"__esModule\",{value:!0});var i=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:\"/service-worker.js\";return o(this,t),this.subData={},this.workerPath=e,this.listeners={onPermissionGranted:[],onPermissionDenied:[],onSubscriptionSuccess:[],onSubscriptionCancel:[],onWorkerError:[],onWorkerSuccess:[],onWorkerNotSupported:[]},this}return i(t,[{key:\"on\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};return\"function\"==typeof e&&this.listeners.hasOwnProperty(t)&&this.listeners[t].push(e),this}},{key:\"fire\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.listeners.hasOwnProperty(t)&&this.listeners[t].forEach(function(t){\"function\"==typeof t&&t.apply(e,n)})}},{key:\"create\",value:function(){console.log(\"NOT IMPLEMENTED YET\")}},{key:\"isSupported\",value:function(){var t=!1;try{t=window.Notification||window.webkitNotifications||navigator.mozNotification||window.external&&void 0!==window.external.msIsSiteMode()}catch(t){}return t}},{key:\"getPermissionStatus\",value:function(){var t=\"default\";if(window.Notification&&window.Notification.permissionLevel)t=window.Notification.permissionLevel;else if(window.webkitNotifications&&window.webkitNotifications.checkPermission)switch(window.webkitNotifications.checkPermission()){case 1:t=\"default\";break;case 0:t=\"granted\";break;default:t=\"denied\"}else window.Notification&&window.Notification.permission?t=window.Notification.permission:navigator.mozNotification?t=\"granted\":window.external&&void 0!==window.external.msIsSiteMode()&&(t=window.external.msIsSiteMode()?\"granted\":\"default\");return t.toString().toLowerCase()}},{key:\"getEndpoint\",value:function(t){var e=t.endpoint,n=t.subscriptionId;return n&&-1===e.indexOf(n)&&(e+=\"/\"+n),e}},{key:\"isSWRegistered\",value:function(){try{return\"activated\"===navigator.serviceWorker.controller.state}catch(t){return!1}}},{key:\"unregisterWorker\",value:function(){var t=this;\"serviceWorker\"in navigator&&navigator.serviceWorker.getRegistrations().then(function(e){var n=!0,o=!1,i=void 0;try{for(var r,s=e[Symbol.iterator]();!(n=(r=s.next()).done);n=!0){r.value.unregister(),t.fire(\"onSubscriptionCancel\")}}catch(t){o=!0,i=t}finally{try{!n&&s.return&&s.return()}finally{if(o)throw i}}})}},{key:\"requestSubscription\",value:function(){var t=this,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=this,o=this.getPermissionStatus(),i=function(o){\"granted\"===o?(t.fire(\"onPermissionGranted\"),\"serviceWorker\"in navigator?navigator.serviceWorker.register(t.workerPath).then(function(){navigator.serviceWorker.ready.then(function(t){n.fire(\"onWorkerSuccess\"),t.pushManager.subscribe({userVisibleOnly:e}).then(function(t){var e=t.getKey(\"p256dh\"),o=t.getKey(\"auth\");n.subData={endpoint:n.getEndpoint(t),p256dh:e?window.btoa(String.fromCharCode.apply(null,new Uint8Array(e))):null,auth:o?window.btoa(String.fromCharCode.apply(null,new Uint8Array(o))):null},n.fire(\"onSubscriptionSuccess\",[n.subData])}).catch(function(t){n.fire(\"onWorkerError\",[t])})})}):n.fire(\"onWorkerNotSupported\")):\"denied\"===o&&(t.fire(\"onPermissionDenied\"),t.unregisterWorker())};\"default\"===o?window.Notification&&window.Notification.requestPermission?window.Notification.requestPermission(i):window.webkitNotifications&&window.webkitNotifications.checkPermission&&window.webkitNotifications.requestPermission(i):i(o)}}]),t}()},function(t,e,n){(function(e,o){/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.0\n */\n!function(e,n){t.exports=n()}(0,function(){\"use strict\";function t(t){return\"function\"==typeof t||\"object\"==typeof t&&null!==t}function i(t){return\"function\"==typeof t}function r(t){z=t}function s(t){U=t}function u(){return void 0!==R?function(){R(c)}:a()}function a(){var t=setTimeout;return function(){return t(c,1)}}function c(){for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:{};return i(this,t),this.options=c.deepExtend({},f.Defaults,e),this.id=this.options.id||c.generateID(\"bar\"),this.closeTimer=-1,this.barDom=null,this.layoutDom=null,this.progressDom=null,this.showing=!1,this.shown=!1,this.closed=!1,this.closing=!1,this.killable=this.options.timeout||this.options.closeWith.length>0,this.hasSound=this.options.sounds.sources.length>0,this.soundPlayed=!1,this.listeners={beforeShow:[],onShow:[],afterShow:[],onClose:[],afterClose:[],onHover:[],onTemplate:[]},this.promises={show:null,close:null},this.on(\"beforeShow\",this.options.callbacks.beforeShow),this.on(\"onShow\",this.options.callbacks.onShow),this.on(\"afterShow\",this.options.callbacks.afterShow),this.on(\"onClose\",this.options.callbacks.onClose),this.on(\"afterClose\",this.options.callbacks.afterClose),this.on(\"onHover\",this.options.callbacks.onHover),this.on(\"onTemplate\",this.options.callbacks.onTemplate),this}return r(t,[{key:\"on\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};return\"function\"==typeof e&&this.listeners.hasOwnProperty(t)&&this.listeners[t].push(e),this}},{key:\"show\",value:function(){var e=this;if(!0!==this.options.killer||f.PageHidden)if(\"string\"!=typeof this.options.killer||f.PageHidden){var n=f.getQueueCounts(this.options.queue);if(n.current>=n.maxVisible||f.PageHidden)return f.addToQueue(this),f.PageHidden&&this.hasSound&&c.inArray(\"docHidden\",this.options.sounds.conditions)&&c.createAudioElements(this),f.PageHidden&&c.inArray(\"docHidden\",this.options.titleCount.conditions)&&f.docTitle.increment(),this}else t.closeAll(this.options.killer);else t.closeAll();if(f.Store[this.id]=this,f.fire(this,\"beforeShow\"),this.showing=!0,this.closing)return this.showing=!1,this;if(f.build(this),f.handleModal(this),this.options.force?this.layoutDom.insertBefore(this.barDom,this.layoutDom.firstChild):this.layoutDom.appendChild(this.barDom),this.hasSound&&!this.soundPlayed&&c.inArray(\"docVisible\",this.options.sounds.conditions)&&c.createAudioElements(this),c.inArray(\"docVisible\",this.options.titleCount.conditions)&&f.docTitle.increment(),this.shown=!0,this.closed=!1,f.hasButtons(this)&&Object.keys(this.options.buttons).forEach(function(t){var n=e.barDom.querySelector(\"#\"+e.options.buttons[t].id);c.addListener(n,\"click\",function(n){c.stopPropagation(n),e.options.buttons[t].cb()})}),this.progressDom=this.barDom.querySelector(\".noty_progressbar\"),c.inArray(\"click\",this.options.closeWith)&&(c.addClass(this.barDom,\"noty_close_with_click\"),c.addListener(this.barDom,\"click\",function(t){c.stopPropagation(t),e.close()},!1)),c.addListener(this.barDom,\"mouseenter\",function(){f.fire(e,\"onHover\")},!1),this.options.timeout&&c.addClass(this.barDom,\"noty_has_timeout\"),c.inArray(\"button\",this.options.closeWith)){c.addClass(this.barDom,\"noty_close_with_button\");var o=document.createElement(\"div\");c.addClass(o,\"noty_close_button\"),o.innerHTML=\"×\",this.barDom.appendChild(o),c.addListener(o,\"click\",function(t){c.stopPropagation(t),e.close()},!1)}return f.fire(this,\"onShow\"),null===this.options.animation.open?this.promises.show=new u.default(function(t){t()}):\"function\"==typeof this.options.animation.open?this.promises.show=new u.default(this.options.animation.open.bind(this)):(c.addClass(this.barDom,this.options.animation.open),this.promises.show=new u.default(function(t){c.addListener(e.barDom,c.animationEndEvents,function(){c.removeClass(e.barDom,e.options.animation.open),t()})})),this.promises.show.then(function(){var t=e;setTimeout(function(){f.openFlow(t)},100)}),this}},{key:\"stop\",value:function(){return f.dequeueClose(this),this}},{key:\"resume\",value:function(){return f.queueClose(this),this}},{key:\"setTimeout\",value:function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}(function(t){if(this.stop(),this.options.timeout=t,this.barDom){this.options.timeout?c.addClass(this.barDom,\"noty_has_timeout\"):c.removeClass(this.barDom,\"noty_has_timeout\");var e=this;setTimeout(function(){e.resume()},100)}return this})},{key:\"setText\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.barDom&&(this.barDom.querySelector(\".noty_body\").innerHTML=t),e&&(this.options.text=t),this}},{key:\"setType\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.barDom){c.classList(this.barDom).split(\" \").forEach(function(t){\"noty_type__\"===t.substring(0,11)&&c.removeClass(e.barDom,t)}),c.addClass(this.barDom,\"noty_type__\"+t)}return n&&(this.options.type=t),this}},{key:\"setTheme\",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.barDom){c.classList(this.barDom).split(\" \").forEach(function(t){\"noty_theme__\"===t.substring(0,12)&&c.removeClass(e.barDom,t)}),c.addClass(this.barDom,\"noty_theme__\"+t)}return n&&(this.options.theme=t),this}},{key:\"close\",value:function(){var t=this;return this.closed?this:this.shown?(f.fire(this,\"onClose\"),this.closing=!0,null===this.options.animation.close?this.promises.close=new u.default(function(t){t()}):\"function\"==typeof this.options.animation.close?this.promises.close=new u.default(this.options.animation.close.bind(this)):(c.addClass(this.barDom,this.options.animation.close),this.promises.close=new u.default(function(e){c.addListener(t.barDom,c.animationEndEvents,function(){t.options.force?c.remove(t.barDom):f.ghostFix(t),e()})})),this.promises.close.then(function(){f.closeFlow(t),f.handleModalClose(t)}),this.closed=!0,this):(f.removeFromQueue(this),this)}}],[{key:\"closeAll\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Object.keys(f.Store).forEach(function(e){t?f.Store[e].options.queue===t&&f.Store[e].killable&&f.Store[e].close():f.Store[e].killable&&f.Store[e].close()}),this}},{key:\"overrideDefaults\",value:function(t){return f.Defaults=c.deepExtend({},f.Defaults,t),this}},{key:\"setMaxVisible\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f.DefaultMaxVisible,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"global\";return f.Queues.hasOwnProperty(e)||(f.Queues[e]={maxVisible:t,queue:[]}),f.Queues[e].maxVisible=t,this}},{key:\"button\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return new d.NotyButton(t,e,n,o)}},{key:\"version\",value:function(){return\"3.1.0\"}},{key:\"Push\",value:function(t){return new h.Push(t)}}]),t}();e.default=p,c.visibilityChangeFlow(),t.exports=e.default},function(t,e){function n(){throw new Error(\"setTimeout has not been defined\")}function o(){throw new Error(\"clearTimeout has not been defined\")}function i(t){if(l===setTimeout)return setTimeout(t,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(t,0);try{return l(t,0)}catch(e){try{return l.call(null,t,0)}catch(e){return l.call(this,t,0)}}}function r(t){if(f===clearTimeout)return clearTimeout(t);if((f===o||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function s(){v&&h&&(v=!1,h.length?p=h.concat(p):m=-1,p.length&&u())}function u(){if(!v){var t=i(s);v=!0;for(var e=p.length;e;){for(h=p,p=[];++m1)for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:\"alert\",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=(0,r.default)({},this.options,n,{type:e,text:t});return new u.default(o).show()},success:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.show(t,\"success\",e)},error:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.show(t,\"error\",e)},warning:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.show(t,\"warning\",e)},info:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.show(t,\"info\",e)}};e.default={install:function(t,e){var n=c.setOptions(e);t.prototype.$noty=n,t.noty=n}}},function(t,e,n){n(39),t.exports=n(4).Object.assign},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e,n){var o=n(3);t.exports=function(t){if(!o(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var o=n(8),i=n(35),r=n(34);t.exports=function(t){return function(e,n,s){var u,a=o(e),c=i(a.length),l=r(s,c);if(t&&n!=n){for(;c>l;)if((u=a[l++])!=u)return!0}else for(;c>l;l++)if((t||l in a)&&a[l]===n)return t||l||0;return!t&&-1}}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var o=n(14);t.exports=function(t,e,n){if(o(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,o){return t.call(e,n,o)};case 3:return function(n,o,i){return t.call(e,n,o,i)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var o=n(3),i=n(2).document,r=o(i)&&o(i.createElement);t.exports=function(t){return r?i.createElement(t):{}}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e,n){var o=n(2),i=n(4),r=n(18),s=n(23),u=function(t,e,n){var a,c,l,f=t&u.F,d=t&u.G,h=t&u.S,p=t&u.P,v=t&u.B,m=t&u.W,y=d?i:i[e]||(i[e]={}),b=y.prototype,w=d?o:h?o[e]:(o[e]||{}).prototype;d&&(n=e);for(a in n)(c=!f&&w&&void 0!==w[a])&&a in y||(l=c?w[a]:n[a],y[a]=d&&\"function\"!=typeof w[a]?n[a]:v&&c?r(l,o):m&&w[a]==l?function(t){var e=function(e,n,o){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,o)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(l):p&&\"function\"==typeof l?r(Function.call,l):l,p&&((y.virtual||(y.virtual={}))[a]=l,t&u.R&&b&&!b[a]&&s(b,a,l)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var o=n(26),i=n(31);t.exports=n(0)?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){t.exports=!n(0)&&!n(1)(function(){return 7!=Object.defineProperty(n(19)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){\"use strict\";var o=n(29),i=n(27),r=n(30),s=n(36),u=n(6),a=Object.assign;t.exports=!a||n(1)(function(){var t={},e={},n=Symbol(),o=\"abcdefghijklmnopqrst\";return t[n]=7,o.split(\"\").forEach(function(t){e[t]=t}),7!=a({},t)[n]||Object.keys(a({},e)).join(\"\")!=o})?function(t,e){for(var n=s(t),a=arguments.length,c=1,l=i.f,f=r.f;a>c;)for(var d,h=u(arguments[c++]),p=l?o(h).concat(l(h)):o(h),v=p.length,m=0;v>m;)f.call(h,d=p[m++])&&(n[d]=h[d]);return n}:a},function(t,e,n){var o=n(15),i=n(24),r=n(37),s=Object.defineProperty;e.f=n(0)?Object.defineProperty:function(t,e,n){if(o(t),e=r(e,!0),o(n),i)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var o=n(22),i=n(8),r=n(16)(!1),s=n(32)(\"IE_PROTO\");t.exports=function(t,e){var n,u=i(t),a=0,c=[];for(n in u)n!=s&&o(u,n)&&c.push(n);for(;e.length>a;)o(u,n=e[a++])&&(~r(c,n)||c.push(n));return c}},function(t,e,n){var o=n(28),i=n(20);t.exports=Object.keys||function(t){return o(t,i)}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var o=n(33)(\"keys\"),i=n(38);t.exports=function(t){return o[t]||(o[t]=i(t))}},function(t,e,n){var o=n(2),i=o[\"__core-js_shared__\"]||(o[\"__core-js_shared__\"]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e,n){var o=n(7),i=Math.max,r=Math.min;t.exports=function(t,e){return t=o(t),t<0?i(t+e,0):r(t,e)}},function(t,e,n){var o=n(7),i=Math.min;t.exports=function(t){return t>0?i(o(t),9007199254740991):0}},function(t,e,n){var o=n(5);t.exports=function(t){return Object(o(t))}},function(t,e,n){var o=n(3);t.exports=function(t,e){if(!o(t))return t;var n,i;if(e&&\"function\"==typeof(n=t.toString)&&!o(i=n.call(t)))return i;if(\"function\"==typeof(n=t.valueOf)&&!o(i=n.call(t)))return i;if(!e&&\"function\"==typeof(n=t.toString)&&!o(i=n.call(t)))return i;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e){var n=0,o=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+o).toString(36))}},function(t,e,n){var o=n(21);o(o.S+o.F,\"Object\",{assign:n(25)})}])});","/*!\n * vue-router v3.6.5\n * (c) 2022 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(/\\/(?:\\s*\\/)+/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$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$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// 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 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/* */\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$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$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$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$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$1.ready = true;\n this$1$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$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$1.errorCbs.length) {\n this$1$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$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$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$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$1.replace(to);\n } else {\n this$1$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$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$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$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$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$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$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$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$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$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$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$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$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$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$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$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$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$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$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$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$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$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$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$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$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$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\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$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$1.apps.indexOf(app);\n if (index > -1) { this$1$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$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$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$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$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$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$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$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$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$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\nvar VueRouter$1 = VueRouter;\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\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n"],"sourceRoot":""}