{"version":3,"sources":["webpack:///./node_modules/vue-apexcharts/dist/vue-apexcharts.js","webpack:///./node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue-localforage/vue-localforage.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./node_modules/vue-axios/dist/vue-axios.min.js","webpack:///./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack:///./node_modules/vue-notification/dist/index.js","webpack:///./node_modules/vue-uuid/dist/vue-uuid.es.js","webpack:///./node_modules/vue-socket.io-extended/dist/vue-socket.io-ext.esm.js"],"names":["global","factory","module","exports","this","ApexCharts","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","key","value","Object","defineProperty","enumerable","configurable","writable","hasOwnProperty","ApexChartsComponent","props","options","type","String","series","Array","required","default","width","height","data","chart","beforeMount","window","mounted","init","created","_this","$watch","updateOptions","updateSeries","watched","forEach","prop","refresh","beforeDestroy","destroy","render","createElement","methods","_this2","newOptions","events","keys","$listeners","evt","config","extend","$el","isObject","item","isArray","target","source","_this3","assign","undefined","TypeError","output","index","arguments","length","_source","nextKey","newSeries","animate","redrawPaths","updateSyncedCharts","toggleSeries","seriesName","showSeries","hideSeries","appendSeries","resetSeries","zoomX","min","max","toggleDataPointSelection","seriesIndex","dataPointIndex","appendData","newData","addText","addImage","addShape","dataURI","setLocale","localeName","addXaxisAnnotation","pushToMemory","addYaxisAnnotation","addPointAnnotation","removeAnnotation","id","clearAnnotations","VueApexCharts","install","Vue","get","getInternetExplorerVersion","ua","navigator","userAgent","msie","indexOf","parseInt","substring","trident","rv","edge","isIE","initCompat","script","name","emitOnMount","Boolean","ignoreWidth","ignoreHeight","$nextTick","_w","offsetWidth","_h","offsetHeight","emitSize","object","document","_resizeObject","setAttribute","onload","addResizeHandlers","appendChild","removeResizeHandlers","compareAndNotify","$emit","contentDocument","defaultView","addEventListener","removeEventListener","removeChild","normalizeComponent","template","style","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","concat","__vue_script__","__vue_render__","_vm","$createElement","_c","_self","staticClass","attrs","tabindex","__vue_staticRenderFns__","_withStripped","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","__vue_component__","component","plugin","version","GlobalVue","use","scriptExports","functionalTemplate","injectStyles","_injectStyles","localForage","VueLocalForage","$getItem","callback","getItem","$setItem","setItem","$removeItem","removeItem","$clearStorage","clear","$lengthOfStorage","$keyInStorage","keyIndex","$keysInStorage","$iterateStorage","iteratorCallback","iterate","$setStorageDriver","driverName","setDriver","$storageConfig","functions","a","b","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parsedQuery","parse","parseQuery","e","map","castQueryParamValue","res","trim","split","param","parts","shift","val","join","push","stringifyQuery","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","clone","route","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","ref","_stringifyQuery","stringify","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bKey","bVal","isIncludedRoute","current","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","_","children","routerView","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","components","registerRouteInstance","vm","prepatch","vnode","componentInstance","propsToPass","resolveProps","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","arr","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","defaultDelimiter","delimiter","exec","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","JSON","j","test","attachKeys","re","sensitive","regexpToRegexp","groups","match","arrayToRegexp","regexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","_Vue","toTypes","eventTypes","noop","Link","to","tag","custom","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","installed","isDef","v","registerInstance","callVal","_parentVnode","mixin","_router","util","defineReactive","history","destroyed","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","handlePopState","handleScroll","from","isPop","app","behavior","scrollBehavior","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","documentElement","docRect","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","selector","getElementById","querySelector","scrollTo","supportsPushState","pushState","url","runQueue","queue","fn","cb","step","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","message","Error","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","apply","hasSymbol","toStringTag","__esModule","called","args","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","Math","updated","activated","deactivated","extractGuards","records","bind","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","console","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","mode","prototypeAccessors","registerHook","list","createHref","$once","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","normalizedTo","defineProperties","START_LOCATION","o","t","axios","$http","numberFormatKeys","warn","isBoolean","isString","OBJECT_STRING","isPlainObject","isNull","isFunction","parseArgs","locale","looseClone","remove","delete","arrayFrom","ret","includes","hasOwn","merge","arguments$1","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","keysA","keysB","escapeHtml","rawText","escapeParams","_i18n","$t","values","i18n","$i18n","_t","_getMessages","$tc","choice","_tc","$te","_te","$d","d","$n","defineMixin","bridge","__INTLIFY_META__","__i18nBridge","__i18n","VueI18n","localeMessages","messages","resource","mergeLocaleMessage","_i18nWatcher","watchI18nData","rootI18n","root","formatter","fallbackLocale","formatFallbackMessages","silentTranslationWarn","silentFallbackWarn","pluralizationRules","preserveDirectiveContent","localeMessages$1","_i18n$1","sharedMessages","sync","_localeWatcher","watchLocale","onComponentInstanceCreated","subscribeDataChanging","_subscribing","self","unsubscribeDataChanging","destroyVM","interpolationComponent","places","slots","onlyHasDefaultPlace","useLegacyPlaces","createParamsFromPlaces","text","everyPlace","vnodeHasPlaceAttribute","reduce","assignChildPlace","assignChildIndex","place","numberComponent","Number","format","acc","_ntp","part","slot","scopedSlots","binding","assert","update","oldVNode","localeEqual","oldValue","_localeMessage","getLocaleMessage","unbind","modifiers","preserve","textContent","_vt","_locale","ref$1","ref$2","parseValue","tc","makeParams","directive","parentVal","childVal","BaseFormatter","_caches","interpolate","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","char","sub","isClosed","compiled","APPEND","PUSH","INC_SUB_PATH_DEPTH","PUSH_SUB_PATH","BEFORE_PATH","IN_PATH","BEFORE_IDENT","IN_IDENT","IN_SUB_PATH","IN_SINGLE_QUOTE","IN_DOUBLE_QUOTE","AFTER_PATH","ERROR","pathStateMachine","literalValueRE","isLiteral","exp","stripQuotes","getPathCharType","ch","code","formatSubPath","trimmed","isNaN","parse$1","newChar","transition","action","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","I18nPath","_cache","hit","getPathValue","paths","last","availabilities","htmlTagMatcher","linkKeyMatcher","linkKeyPrefixMatcher","bracketsMatcher","defaultModifiers","toLocaleUpperCase","toLocaleLowerCase","defaultFormatter","dateTimeFormats","datetimeFormats","numberFormats","_formatter","_modifiers","_missing","missing","_root","_sync","_fallbackRoot","fallbackRoot","_formatFallbackMessages","_silentTranslationWarn","_silentFallbackWarn","_dateTimeFormatters","_numberFormatters","_path","_dataListeners","Set","_componentInstanceCreatedListener","componentInstanceCreatedListener","_preserveDirectiveContent","_warnHtmlInMessage","warnHtmlInMessage","_postTranslation","postTranslation","_escapeParameterHtml","escapeParameterHtml","__VUE_I18N_BRIDGE__","getChoiceIndex","choicesLength","thisPrototype","getPrototypeOf","prototypeGetChoiceIndex","defaultImpl","_choice","_choicesLength","abs","_exist","_checkLocaleMessage","_initVM","availableLocales","level","silent","__VUE18N__INSTANCE__","$destroy","nextTick","$forceUpdate","deep","composer","target$1","$set","immediate","newI18n","_getDateTimeFormats","_getNumberFormats","set","_localeChainCache","orgLevel","_warnDefault","interpolateMode","missingRet","parsedArgs","_render","_isFallbackRoot","_isSilentFallbackWarn","_isSilentFallback","_isSilentTranslationWarn","_interpolate","visitedLinkStack","pathRet","_link","idx","link","linkKeyPrefixMatches","linkPrefix","formatterName","linkPlaceholder","translated","_translate","_createMessageContext","_list","_named","named","linked","linkedKey","_appendItemToChain","chain","blocks","follow","_appendLocaleToChain","_appendBlockToChain","block","_getLocaleChain","start","defaults","_i","predefined","fetchChoice","choices","te","setLocaleMessage","getDateTimeFormat","setDateTimeFormat","_clearDateTimeFormat","mergeDateTimeFormat","_localizeDateTime","formats","Intl","DateTimeFormat","_d","getNumberFormat","setNumberFormat","_clearNumberFormat","mergeNumberFormat","_getNumberFormatter","NumberFormat","_n","numberFormat","nf","formatToParts","intlDefined","dateTimeFormat","__WEBPACK_EXTERNAL_MODULE_20__","modules","installedModules","__webpack_require__","moduleId","getter","property","p","s","rawScriptExports","compiledTemplate","cssModules","esModule","computed","__webpack_exports__","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_0_vue___default","__WEBPACK_IMPORTED_MODULE_0__Notifications_vue__","__WEBPACK_IMPORTED_MODULE_0__Notifications_vue___default","__WEBPACK_IMPORTED_MODULE_1__events__","Notify","componentName","notify","title","close","Component","__WEBPACK_IMPORTED_MODULE_0__index__","__WEBPACK_IMPORTED_MODULE_2__util__","__WEBPACK_IMPORTED_MODULE_3__defaults__","__WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue__","__WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue___default","__WEBPACK_IMPORTED_MODULE_5__CssGroup_vue__","__WEBPACK_IMPORTED_MODULE_5__CssGroup_vue___default","__WEBPACK_IMPORTED_MODULE_6__parser__","STATE","IDLE","DESTROYED","VelocityGroup","CssGroup","animationType","validator","animation","velocityAnimation","animationName","cssAnimation","speed","cooldown","duration","delay","Infinity","ignoreDuplicates","closeOnClick","velocity","$on","addItem","closeItem","actualWidth","isVA","styles","_listToDirection","suffix","active","botToTop","destroyIfNecessary","clean","destroyAll","timer","setTimeout","direction","indexToDestroy","isDuplicate","some","canAdd","destroyById","notifyClass","notifyWrapperStyle","clearTimeout","find","getAnimation","enter","_ref","complete","leave","_ref2","afterLeave","clientHeight","opacity","floatRegexp","types","getType","parseFloat","Id","listToDirection","directions","mediaQuery","alreadyImportedModules","_l","$event","domProps","_s","_e","_v","content","locals","hasDocument","DEBUG","listToStyles","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","isOldIE","addStylesToDom","domStyle","refs","addStyle","createStyleElement","styleElement","parentNode","styleIndex","applyToSingletonTag","applyToTag","newObj","css","media","sourceMap","parentId","_isProduction","newList","mayRemove","replaceText","textStore","replacement","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","sources","btoa","unescape","firstChild","newStyles","uuid","v1","v4","v5","getOwnPropertySymbols","r","getOwnPropertyDescriptor","getOwnPropertyDescriptors","propertyIsEnumerable","u","f","emit","addListener","has","removeListenersByLabel","_listeners","Map","_mutations","g","_actions","O","w","pascalCase","k","actionPrefix","mutationPrefix","eventToMutationTransformer","eventToActionTransformer","A","C","connected","disconnected","client","$socket","store","commit","dispatch","eventMapping","sockets","$subscribe","$unsubscribe"],"mappings":"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","file":"js/chunk-vendors~6ff199a4-legacy.26865b82.js","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('apexcharts/dist/apexcharts.min')) :\n typeof define === 'function' && define.amd ? define(['apexcharts/dist/apexcharts.min'], factory) :\n (global.VueApexCharts = factory(global.ApexCharts));\n}(this, (function (ApexCharts) { 'use strict';\n\n ApexCharts = ApexCharts && ApexCharts.hasOwnProperty('default') ? ApexCharts['default'] : ApexCharts;\n\n function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _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\n var ApexChartsComponent = {\n props: {\n options: {\n type: Object\n },\n type: {\n type: String\n },\n series: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n width: {\n default: \"100%\"\n },\n height: {\n default: \"auto\"\n }\n },\n data: function data() {\n return {\n chart: null\n };\n },\n beforeMount: function beforeMount() {\n window.ApexCharts = ApexCharts;\n },\n mounted: function mounted() {\n this.init();\n },\n created: function created() {\n var _this = this;\n\n this.$watch(\"options\", function (options) {\n if (!_this.chart && options) {\n _this.init();\n } else {\n _this.chart.updateOptions(_this.options);\n }\n });\n this.$watch(\"series\", function (series) {\n if (!_this.chart && series) {\n _this.init();\n } else {\n _this.chart.updateSeries(_this.series);\n }\n });\n var watched = [\"type\", \"width\", \"height\"];\n watched.forEach(function (prop) {\n _this.$watch(prop, function () {\n _this.refresh();\n });\n });\n },\n beforeDestroy: function beforeDestroy() {\n if (!this.chart) {\n return;\n }\n\n this.destroy();\n },\n render: function render(createElement) {\n return createElement(\"div\");\n },\n methods: {\n init: function init() {\n var _this2 = this;\n\n var newOptions = {\n chart: {\n type: this.type || this.options.chart.type || \"line\",\n height: this.height,\n width: this.width,\n events: {}\n },\n series: this.series\n };\n Object.keys(this.$listeners).forEach(function (evt) {\n newOptions.chart.events[evt] = _this2.$listeners[evt];\n });\n var config = this.extend(this.options, newOptions);\n this.chart = new ApexCharts(this.$el, config);\n return this.chart.render();\n },\n isObject: function isObject(item) {\n return item && _typeof(item) === \"object\" && !Array.isArray(item) && item != null;\n },\n extend: function extend(target, source) {\n var _this3 = this;\n\n if (typeof Object.assign !== \"function\") {\n (function () {\n Object.assign = function (target) {\n // We must check against these specific cases.\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n\n var output = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var _source = arguments[index];\n\n if (_source !== undefined && _source !== null) {\n for (var nextKey in _source) {\n if (_source.hasOwnProperty(nextKey)) {\n output[nextKey] = _source[nextKey];\n }\n }\n }\n }\n\n return output;\n };\n })();\n }\n\n var output = Object.assign({}, target);\n\n if (this.isObject(target) && this.isObject(source)) {\n Object.keys(source).forEach(function (key) {\n if (_this3.isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, _defineProperty({}, key, source[key]));\n } else {\n output[key] = _this3.extend(target[key], source[key]);\n }\n } else {\n Object.assign(output, _defineProperty({}, key, source[key]));\n }\n });\n }\n\n return output;\n },\n refresh: function refresh() {\n this.destroy();\n return this.init();\n },\n destroy: function destroy() {\n this.chart.destroy();\n },\n updateSeries: function updateSeries(newSeries, animate) {\n return this.chart.updateSeries(newSeries, animate);\n },\n updateOptions: function updateOptions(newOptions, redrawPaths, animate, updateSyncedCharts) {\n return this.chart.updateOptions(newOptions, redrawPaths, animate, updateSyncedCharts);\n },\n toggleSeries: function toggleSeries(seriesName) {\n return this.chart.toggleSeries(seriesName);\n },\n showSeries: function showSeries(seriesName) {\n this.chart.showSeries(seriesName);\n },\n hideSeries: function hideSeries(seriesName) {\n this.chart.hideSeries(seriesName);\n },\n appendSeries: function appendSeries(newSeries, animate) {\n return this.chart.appendSeries(newSeries, animate);\n },\n resetSeries: function resetSeries() {\n this.chart.resetSeries();\n },\n zoomX: function zoomX(min, max) {\n this.chart.zoomX(min, max);\n },\n toggleDataPointSelection: function toggleDataPointSelection(seriesIndex, dataPointIndex) {\n this.chart.toggleDataPointSelection(seriesIndex, dataPointIndex);\n },\n appendData: function appendData(newData) {\n return this.chart.appendData(newData);\n },\n addText: function addText(options) {\n this.chart.addText(options);\n },\n addImage: function addImage(options) {\n this.chart.addImage(options);\n },\n addShape: function addShape(options) {\n this.chart.addShape(options);\n },\n dataURI: function dataURI() {\n return this.chart.dataURI();\n },\n setLocale: function setLocale(localeName) {\n return this.chart.setLocale(localeName);\n },\n addXaxisAnnotation: function addXaxisAnnotation(options, pushToMemory) {\n this.chart.addXaxisAnnotation(options, pushToMemory);\n },\n addYaxisAnnotation: function addYaxisAnnotation(options, pushToMemory) {\n this.chart.addYaxisAnnotation(options, pushToMemory);\n },\n addPointAnnotation: function addPointAnnotation(options, pushToMemory) {\n this.chart.addPointAnnotation(options, pushToMemory);\n },\n removeAnnotation: function removeAnnotation(id, options) {\n this.chart.removeAnnotation(id, options);\n },\n clearAnnotations: function clearAnnotations() {\n this.chart.clearAnnotations();\n }\n }\n };\n\n var VueApexCharts = ApexChartsComponent;\n window.ApexCharts = ApexCharts;\n\n VueApexCharts.install = function (Vue) {\n //adding a global method or property\n Vue.ApexCharts = ApexCharts;\n window.ApexCharts = ApexCharts; // add the instance method\n\n Object.defineProperty(Vue.prototype, '$apexcharts', {\n get: function get() {\n return ApexCharts;\n }\n });\n };\n\n return VueApexCharts;\n\n})));\n","function getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\n//\nvar isIE;\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n initCompat();\n this.$nextTick(function () {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n\n if (isIE) {\n this.$el.appendChild(object);\n }\n\n object.data = 'about:blank';\n\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit('notify', {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = 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\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\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 script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction install(Vue) {\n // eslint-disable-next-line vue/component-definition-name-casing\n Vue.component('resize-observer', __vue_component__);\n Vue.component('ResizeObserver', __vue_component__);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"1.0.1\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { __vue_component__ as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\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 = typeof scriptExports === 'function'\n ? scriptExports.options\n : 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) { // 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\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*!\n * vue-localforage v0.2.4\n * shidianxai@gmail.com\n * Released under the MIT License.\n */\n'use strict'\n\nvar localForage = require('localforage')\n\nfunction VueLocalForage (Vue) {\n\n Vue.prototype.$getItem = function (key, callback) {\n return localForage.getItem(key, callback)\n }\n\n Vue.prototype.$setItem = function (key, value, callback) {\n return localForage.setItem(key, value, callback)\n }\n\n Vue.prototype.$removeItem = function (key, callback) {\n return localForage.removeItem(key, callback)\n }\n\n Vue.prototype.$clearStorage = function () {\n localForage.clear()\n }\n\n Vue.prototype.$lengthOfStorage = function (callback) {\n return localForage.length(callback)\n }\n\n Vue.prototype.$keyInStorage = function (keyIndex, callback) {\n return localForage.key(keyIndex, callback)\n }\n\n Vue.prototype.$keysInStorage = function (callback) {\n return localForage.keys(callback)\n }\n\n Vue.prototype.$iterateStorage = function (iteratorCallback, callback) {\n return localForage.iterate(iteratorCallback, callback)\n }\n\n Vue.prototype.$setStorageDriver = function (driverName) {\n localForage.setDriver(driverName)\n }\n\n Vue.prototype.$storageConfig = function (options) {\n localForage.config(options)\n }\n\n var functions = [\n '$getItem',\n '$setItem',\n '$removeItem',\n '$clearStorage',\n '$lengthOfStorage',\n '$keyInStorage',\n '$iterateStorage',\n '$setStorageDriver',\n '$storageConfig'\n ]\n\n Vue.localForage = {}\n functions.forEach(function (name) {\n Vue.localForage[name] = Vue.prototype[name]\n })\n}\n\nVueLocalForage.version = '0.2.4'\n\nmodule.exports = VueLocalForage\n","/*!\n * vue-router v3.5.3\n * (c) 2021 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) { this$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.5.3';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","\"use strict\";var _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&\"function\"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?\"symbol\":typeof o};!function(){function o(e,t){if(!o.installed){if(o.installed=!0,!t)return void console.error(\"You have to install axios\");e.axios=t,Object.defineProperties(e.prototype,{axios:{get:function(){return t}},$http:{get:function(){return t}}})}}\"object\"==(\"undefined\"==typeof exports?\"undefined\":_typeof(exports))?module.exports=o:\"function\"==typeof define&&define.amd?define([],function(){return o}):window.Vue&&window.axios&&Vue.use(o,window.axios)}();","/*!\n * vue-i18n v8.26.7 \n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'compactDisplay',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'localeMatcher',\n 'notation',\n 'numberingSystem',\n 'signDisplay',\n 'style',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction isFunction (val) {\n return typeof val === 'function'\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.delete(item)) {\n return arr\n }\n}\n\nfunction arrayFrom (arr) {\n var ret = [];\n arr.forEach(function (a) { return ret.push(a); });\n return ret\n}\n\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Sanitizes html special characters from input strings. For mitigating risk of XSS attacks.\n * @param rawText The raw input from the user that should be escaped.\n */\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n/**\n * Escapes html tags and special symbols from all provided params which were returned from parseArgs().params.\n * This method performs an in-place operation on the params object.\n *\n * @param {any} params Parameters as provided from `parseArgs().params`.\n * May be either an array of strings or a string->any map.\n *\n * @returns The manipulated `params` object.\n */\nfunction escapeParams(params) {\n if(params != null) {\n Object.keys(params).forEach(function (key) {\n if(typeof(params[key]) == 'string') {\n params[key] = escapeHtml(params[key]);\n }\n });\n }\n return params\n}\n\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\n/**\n * Mixin\n * \n * If `bridge` mode, empty mixin is returned,\n * else regulary mixin implementation is returned.\n */\nfunction defineMixin (bridge) {\n if ( bridge === void 0 ) bridge = false;\n\n function mounted () {\n if (this !== this.$root && this.$options.__INTLIFY_META__ && this.$el) {\n this.$el.setAttribute('data-intlify', this.$options.__INTLIFY_META__);\n }\n }\n\n return bridge\n ? { mounted: mounted } // delegate `vue-i18n-bridge` mixin implementation\n : { // regulary \n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n = options.__i18nBridge || options.__i18n;\n _i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages$1 = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n$1 = options.__i18nBridge || options.__i18n;\n _i18n$1.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n mounted: mounted,\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n }\n}\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (process.env.NODE_ENV !== 'production' && everyPlace) {\n warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue, options) {\n if ( options === void 0 ) options = { bridge: false };\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n warn('already installed.');\n return\n }\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && version < 2) {\n warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n return\n }\n\n extend(Vue);\n Vue.mixin(defineMixin(options.bridge));\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n }\n }\n break\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Detect 'unknown' type of token!\");\n }\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined || value === null) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|./]+|\\([\\w\\-_|./]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || options.datetimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = new Set();\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n this._escapeParameterHtml = options.escapeParameterHtml || false;\n\n if ('__VUE_I18N_BRIDGE__' in options) {\n this.__VUE_I18N_BRIDGE__ = options.__VUE_I18N_BRIDGE__;\n }\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true },sync: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data, __VUE18N__INSTANCE__: true });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.add(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var this$1 = this;\n return this._vm.$watch('$data', function () {\n var listeners = arrayFrom(this$1._dataListeners);\n var i = listeners.length;\n while(i--) {\n Vue.nextTick(function () {\n listeners[i] && listeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale (composer) {\n if (!composer) {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n } else {\n // deal with vue-i18n-bridge\n if (!this.__VUE_I18N_BRIDGE__) { return null }\n var self = this;\n var target$1 = this._vm;\n return this.vm.$watch('locale', function (val) {\n target$1.$set(target$1, 'locale', val);\n if (self.__VUE_I18N_BRIDGE__ && composer) {\n composer.locale.value = val;\n }\n target$1.$forceUpdate();\n }, { immediate: true })\n }\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nprototypeAccessors.sync.get = function () { return this._sync };\nprototypeAccessors.sync.set = function (val) { this._sync = val; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!(isString(ret) || isFunction(ret))) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function !\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet) || isFunction(pathRet)) {\n ret = pathRet;\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (isString(ret) && (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0)) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n \n // eslint-disable-next-line no-autofix/prefer-const\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n }\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._createMessageContext = function _createMessageContext (values, formatter, path, interpolateMode) {\n var this$1 = this;\n\n var _list = isArray(values) ? values : [];\n var _named = isObject(values) ? values : {};\n var list = function (index) { return _list[index]; };\n var named = function (key) { return _named[key]; };\n var messages = this._getMessages();\n var locale = this.locale;\n\n return {\n list: list,\n named: named,\n values: values,\n formatter: formatter,\n path: path,\n messages: messages,\n locale: locale,\n linked: function (linkedKey) { return this$1._interpolate(locale, messages[locale] || {}, linkedKey, null, interpolateMode, undefined, [linkedKey]); }\n }\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n if (isFunction(message)) {\n return message(\n this._createMessageContext(values, this._formatter || defaultFormatter, path, interpolateMode)\n )\n }\n\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n if(this._escapeParameterHtml) {\n parsedArgs.params = escapeParams(parsedArgs.params);\n }\n\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n }\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message || !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge(\n typeof this._vm.messages[locale] !== 'undefined' && Object.keys(this._vm.messages[locale]).length\n ? Object.assign({}, this._vm.messages[locale])\n : {},\n message\n ));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n var id = _locale + \"__\" + key;\n var formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n return new Intl.DateTimeFormat(locale).format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n }\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n }\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.26.7';\n\nexport default VueI18n;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-notification\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"vue-notification\"] = factory(root[\"vue\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_20__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n// this module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = Object.create(options.computed || null)\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n options.computed = computed\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return events; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);\n\n\nvar events = new __WEBPACK_IMPORTED_MODULE_0_vue___default.a({ name: 'vue-notification' });\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Notifications_vue__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Notifications_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__Notifications_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__events__ = __webpack_require__(1);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\n\nvar Notify = {\n install: function install(Vue) {\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.installed) {\n return;\n }\n\n this.installed = true;\n this.params = args;\n\n Vue.component(args.componentName || 'notifications', __WEBPACK_IMPORTED_MODULE_0__Notifications_vue___default.a);\n\n var notify = function notify(params) {\n if (typeof params === 'string') {\n params = { title: '', text: params };\n }\n\n if ((typeof params === 'undefined' ? 'undefined' : _typeof(params)) === 'object') {\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$emit('add', params);\n }\n };\n\n notify.close = function (id) {\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$emit('close', id);\n };\n\n var name = args.name || 'notify';\n\n Vue.prototype['$' + name] = notify;\n Vue[name] = notify;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Notify);\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(17)\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(5),\n /* template */\n __webpack_require__(15),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'CssGroup',\n props: ['name']\n});\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__events__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__defaults__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__CssGroup_vue__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__CssGroup_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__CssGroup_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__parser__ = __webpack_require__(8);\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\nvar STATE = {\n IDLE: 0,\n DESTROYED: 2\n};\n\nvar Component = {\n name: 'Notifications',\n components: {\n VelocityGroup: __WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue___default.a,\n CssGroup: __WEBPACK_IMPORTED_MODULE_5__CssGroup_vue___default.a\n },\n props: {\n group: {\n type: String,\n default: ''\n },\n\n width: {\n type: [Number, String],\n default: 300\n },\n\n reverse: {\n type: Boolean,\n default: false\n },\n\n position: {\n type: [String, Array],\n default: function _default() {\n return __WEBPACK_IMPORTED_MODULE_3__defaults__[\"a\" /* default */].position;\n }\n },\n\n classes: {\n type: String,\n default: 'vue-notification'\n },\n\n animationType: {\n type: String,\n default: 'css',\n validator: function validator(value) {\n return value === 'css' || value === 'velocity';\n }\n },\n\n animation: {\n type: Object,\n default: function _default() {\n return __WEBPACK_IMPORTED_MODULE_3__defaults__[\"a\" /* default */].velocityAnimation;\n }\n },\n\n animationName: {\n type: String,\n default: __WEBPACK_IMPORTED_MODULE_3__defaults__[\"a\" /* default */].cssAnimation\n },\n\n speed: {\n type: Number,\n default: 300\n },\n\n cooldown: {\n type: Number,\n default: 0\n },\n\n duration: {\n type: Number,\n default: 3000\n },\n\n delay: {\n type: Number,\n default: 0\n },\n\n max: {\n type: Number,\n default: Infinity\n },\n\n ignoreDuplicates: {\n type: Boolean,\n default: false\n },\n\n closeOnClick: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n list: [],\n velocity: __WEBPACK_IMPORTED_MODULE_0__index__[\"default\"].params.velocity\n };\n },\n mounted: function mounted() {\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$on('add', this.addItem);\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$on('close', this.closeItem);\n },\n\n computed: {\n actualWidth: function actualWidth() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__parser__[\"a\" /* default */])(this.width);\n },\n isVA: function isVA() {\n return this.animationType === 'velocity';\n },\n componentName: function componentName() {\n return this.isVA ? 'VelocityGroup' : 'CssGroup';\n },\n styles: function styles() {\n var _listToDirection = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"a\" /* listToDirection */])(this.position),\n x = _listToDirection.x,\n y = _listToDirection.y;\n\n var width = this.actualWidth.value;\n var suffix = this.actualWidth.type;\n\n var styles = _defineProperty({\n width: width + suffix\n }, y, '0px');\n\n if (x === 'center') {\n styles['left'] = 'calc(50% - ' + width / 2 + suffix + ')';\n } else {\n styles[x] = '0px';\n }\n\n return styles;\n },\n active: function active() {\n return this.list.filter(function (v) {\n return v.state !== STATE.DESTROYED;\n });\n },\n botToTop: function botToTop() {\n return this.styles.hasOwnProperty('bottom');\n }\n },\n methods: {\n destroyIfNecessary: function destroyIfNecessary(item) {\n if (this.closeOnClick) {\n this.destroy(item);\n }\n },\n addItem: function addItem(event) {\n var _this = this;\n\n event.group = event.group || '';\n\n if (this.group !== event.group) {\n return;\n }\n\n if (event.clean || event.clear) {\n this.destroyAll();\n return;\n }\n\n var duration = typeof event.duration === 'number' ? event.duration : this.duration;\n\n var speed = typeof event.speed === 'number' ? event.speed : this.speed;\n\n var ignoreDuplicates = typeof event.ignoreDuplicates === 'boolean' ? event.ignoreDuplicates : this.ignoreDuplicates;\n\n var title = event.title,\n text = event.text,\n type = event.type,\n data = event.data,\n id = event.id;\n\n\n var item = {\n id: id || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"b\" /* Id */])(),\n title: title,\n text: text,\n type: type,\n state: STATE.IDLE,\n speed: speed,\n length: duration + 2 * speed,\n data: data\n };\n\n if (duration >= 0) {\n item.timer = setTimeout(function () {\n _this.destroy(item);\n }, item.length);\n }\n\n var direction = this.reverse ? !this.botToTop : this.botToTop;\n\n var indexToDestroy = -1;\n\n var isDuplicate = this.active.some(function (item) {\n return item.title === event.title && item.text === event.text;\n });\n\n var canAdd = ignoreDuplicates ? !isDuplicate : true;\n\n if (!canAdd) return;\n\n if (direction) {\n this.list.push(item);\n\n if (this.active.length > this.max) {\n indexToDestroy = 0;\n }\n } else {\n this.list.unshift(item);\n\n if (this.active.length > this.max) {\n indexToDestroy = this.active.length - 1;\n }\n }\n\n if (indexToDestroy !== -1) {\n this.destroy(this.active[indexToDestroy]);\n }\n },\n closeItem: function closeItem(id) {\n this.destroyById(id);\n },\n notifyClass: function notifyClass(item) {\n return ['vue-notification-template', this.classes, item.type];\n },\n notifyWrapperStyle: function notifyWrapperStyle(item) {\n return this.isVA ? null : { transition: 'all ' + item.speed + 'ms' };\n },\n destroy: function destroy(item) {\n clearTimeout(item.timer);\n item.state = STATE.DESTROYED;\n\n if (!this.isVA) {\n this.clean();\n }\n },\n destroyById: function destroyById(id) {\n var item = this.list.find(function (v) {\n return v.id === id;\n });\n\n if (item) {\n this.destroy(item);\n }\n },\n destroyAll: function destroyAll() {\n this.active.forEach(this.destroy);\n },\n getAnimation: function getAnimation(index, el) {\n var animation = this.animation[index];\n\n return typeof animation === 'function' ? animation.call(this, el) : animation;\n },\n enter: function enter(_ref) {\n var el = _ref.el,\n complete = _ref.complete;\n\n var animation = this.getAnimation('enter', el);\n\n this.velocity(el, animation, {\n duration: this.speed,\n complete: complete\n });\n },\n leave: function leave(_ref2) {\n var el = _ref2.el,\n complete = _ref2.complete;\n\n var animation = this.getAnimation('leave', el);\n\n this.velocity(el, animation, {\n duration: this.speed,\n complete: complete\n });\n },\n clean: function clean() {\n this.list = this.list.filter(function (v) {\n return v.state !== STATE.DESTROYED;\n });\n }\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component);\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'VelocityGroup',\n methods: {\n enter: function enter(el, complete) {\n this.$emit('enter', { el: el, complete: complete });\n },\n leave: function leave(el, complete) {\n this.$emit('leave', { el: el, complete: complete });\n },\n afterLeave: function afterLeave() {\n this.$emit('afterLeave');\n }\n }\n});\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n position: ['top', 'right'],\n cssAnimation: 'vn-fade',\n velocityAnimation: {\n enter: function enter(el) {\n var height = el.clientHeight;\n\n return {\n height: [height, 0],\n opacity: [1, 0]\n };\n },\n leave: {\n height: 0,\n opacity: [0, 1]\n }\n }\n});\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export parse */\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar floatRegexp = '[-+]?[0-9]*.?[0-9]+';\n\nvar types = [{\n name: 'px',\n regexp: new RegExp('^' + floatRegexp + 'px$')\n}, {\n name: '%',\n regexp: new RegExp('^' + floatRegexp + '%$')\n}, {\n name: 'px',\n regexp: new RegExp('^' + floatRegexp + '$')\n}];\n\nvar getType = function getType(value) {\n if (value === 'auto') {\n return {\n type: value,\n value: 0\n };\n }\n\n for (var i = 0; i < types.length; i++) {\n var type = types[i];\n if (type.regexp.test(value)) {\n return {\n type: type.name,\n value: parseFloat(value)\n };\n }\n }\n\n return {\n type: '',\n value: value\n };\n};\n\nvar parse = function parse(value) {\n switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {\n case 'number':\n return { type: 'px', value: value };\n case 'string':\n return getType(value);\n default:\n return { type: '', value: value };\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (parse);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Id; });\n/* unused harmony export split */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return listToDirection; });\nvar directions = {\n x: ['left', 'center', 'right'],\n y: ['top', 'bottom']\n};\n\nvar Id = function (i) {\n return function () {\n return i++;\n };\n}(0);\n\nvar split = function split(value) {\n if (typeof value !== 'string') {\n return [];\n }\n\n return value.split(/\\s+/gi).filter(function (v) {\n return v;\n });\n};\n\nvar listToDirection = function listToDirection(value) {\n if (typeof value === 'string') {\n value = split(value);\n }\n\n var x = null;\n var y = null;\n\n value.forEach(function (v) {\n if (directions.y.indexOf(v) !== -1) {\n y = v;\n }\n if (directions.x.indexOf(v) !== -1) {\n x = v;\n }\n });\n\n return { x: x, y: y };\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(11)();\n// imports\n\n\n// module\nexports.push([module.i, \".vue-notification-group{display:block;position:fixed;z-index:5000}.vue-notification-wrapper{display:block;overflow:hidden;width:100%;margin:0;padding:0}.notification-title{font-weight:600}.vue-notification-template{background:#fff}.vue-notification,.vue-notification-template{display:block;box-sizing:border-box;text-align:left}.vue-notification{font-size:12px;padding:10px;margin:0 5px 5px;color:#fff;background:#44a4fc;border-left:5px solid #187fe7}.vue-notification.warn{background:#ffb648;border-left-color:#f48a06}.vue-notification.error{background:#e54d42;border-left-color:#b82e24}.vue-notification.success{background:#68cd86;border-left-color:#42a85f}.vn-fade-enter-active,.vn-fade-leave-active,.vn-fade-move{transition:all .5s}.vn-fade-enter,.vn-fade-leave-to{opacity:0}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(4),\n /* template */\n __webpack_require__(16),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(6),\n /* template */\n __webpack_require__(14),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition-group', {\n attrs: {\n \"css\": false\n },\n on: {\n \"enter\": _vm.enter,\n \"leave\": _vm.leave,\n \"after-leave\": _vm.afterLeave\n }\n }, [_vm._t(\"default\")], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"vue-notification-group\",\n style: (_vm.styles)\n }, [_c(_vm.componentName, {\n tag: \"component\",\n attrs: {\n \"name\": _vm.animationName\n },\n on: {\n \"enter\": _vm.enter,\n \"leave\": _vm.leave,\n \"after-leave\": _vm.clean\n }\n }, _vm._l((_vm.active), function(item) {\n return _c('div', {\n key: item.id,\n staticClass: \"vue-notification-wrapper\",\n style: (_vm.notifyWrapperStyle(item)),\n attrs: {\n \"data-id\": item.id\n }\n }, [_vm._t(\"body\", [_c('div', {\n class: _vm.notifyClass(item),\n on: {\n \"click\": function($event) {\n return _vm.destroyIfNecessary(item)\n }\n }\n }, [(item.title) ? _c('div', {\n staticClass: \"notification-title\",\n domProps: {\n \"innerHTML\": _vm._s(item.title)\n }\n }) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"notification-content\",\n domProps: {\n \"innerHTML\": _vm._s(item.text)\n }\n })])], {\n \"item\": item,\n \"close\": function () { return _vm.destroy(item); }\n })], 2)\n }), 0)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition-group', {\n attrs: {\n \"name\": _vm.name\n }\n }, [_vm._t(\"default\")], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a