{"version":3,"file":"js/chunk-vendors-43d99beb-legacy.5823fa94.js","mappings":"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","sources":["webpack://agendamento-web/./node_modules/vue-gtag/dist/vue-gtag.esm.js","webpack://agendamento-web/./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack://agendamento-web/./node_modules/vue-js-modal/dist/index.js","webpack://agendamento-web/./node_modules/vue-meta/dist/vue-meta.esm.js","webpack://agendamento-web/./node_modules/vue-router/dist/vue-router.esm.js","webpack://agendamento-web/./node_modules/vue-tel-input/dist/vue-tel-input.esm.js","webpack://agendamento-web/./node_modules/vue-the-mask/dist/vue-the-mask.js"],"sourcesContent":["import Vue from 'vue';\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar load = function load(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new Promise(function (resolve, reject) {\n if (typeof document === \"undefined\") {\n return;\n }\n\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = url;\n script.defer = options.defer;\n\n if (options.preconnectOrigin) {\n var link = document.createElement(\"link\");\n link.href = options.preconnectOrigin;\n link.rel = \"preconnect\";\n head.appendChild(link);\n }\n\n head.appendChild(script);\n script.onload = resolve;\n script.onerror = reject;\n });\n};\nvar isFn = function isFn(fn) {\n return typeof fn === \"function\";\n};\nvar isObject = function isObject(item) {\n return item && _typeof(item) === \"object\" && !Array.isArray(item);\n};\nvar mergeDeep = function mergeDeep(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (!sources.length) {\n return target;\n }\n\n var source = sources.shift();\n\n if (!isObject(target) || !isObject(source)) {\n return;\n }\n\n for (var key in source) {\n if (isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, _defineProperty({}, key, {}));\n }\n\n mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, _defineProperty({}, key, source[key]));\n }\n }\n\n return mergeDeep.apply(void 0, [target].concat(sources));\n};\nvar isBrowser = function isBrowser() {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return false;\n }\n\n return true;\n};\nvar warn = function warn(text) {\n var shouldLog = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!isBrowser() || process.env.NODE_ENV === \"production\") {\n return;\n }\n\n if (!shouldLog) {\n return;\n }\n\n console.warn(\"[vue-gtag] \".concat(text));\n};\nvar validateScreenviewShape = function validateScreenviewShape() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n warn(\"Missing \\\"appName\\\" property inside the plugin options.\", obj.app_name == null);\n warn(\"Missing \\\"name\\\" property in the route.\", obj.screen_name == null);\n return obj;\n};\nfunction getPathWithBase() {\n var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var pathAsArray = path.split(\"/\");\n var baseAsArray = base.split(\"/\");\n\n if (pathAsArray[0] === \"\" && base[base.length - 1] === \"/\") {\n pathAsArray.shift();\n }\n\n return baseAsArray.join(\"/\") + pathAsArray.join(\"/\");\n}\n\nvar getDefaultParams = function getDefaultParams() {\n return {\n bootstrap: true,\n onReady: null,\n onError: null,\n onBeforeTrack: null,\n onAfterTrack: null,\n pageTrackerTemplate: null,\n customResourceURL: \"https://www.googletagmanager.com/gtag/js\",\n customPreconnectOrigin: \"https://www.googletagmanager.com\",\n deferScriptLoad: false,\n pageTrackerExcludedRoutes: [],\n pageTrackerEnabled: true,\n enabled: true,\n disableScriptLoad: false,\n pageTrackerScreenviewEnabled: false,\n appName: null,\n pageTrackerUseFullPath: false,\n pageTrackerPrependBase: true,\n pageTrackerSkipSamePath: true,\n globalDataLayerName: \"dataLayer\",\n globalObjectName: \"gtag\",\n defaultGroupName: \"default\",\n includes: null,\n config: {\n id: null,\n params: {\n send_page_view: false\n }\n }\n };\n};\nvar params = {};\nvar setOptions = function setOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaultParams = getDefaultParams();\n params = mergeDeep(defaultParams, options);\n};\nvar getOptions = function getOptions() {\n return params;\n};\n\nvar query = (function () {\n var _window;\n\n var _getOptions = getOptions(),\n globalObjectName = _getOptions.globalObjectName;\n\n if (!isBrowser() || typeof window[globalObjectName] === \"undefined\") {\n return;\n }\n\n (_window = window)[globalObjectName].apply(_window, arguments);\n});\n\nvar config = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _getOptions = getOptions(),\n config = _getOptions.config,\n includes = _getOptions.includes;\n\n query.apply(void 0, [\"config\", config.id].concat(args));\n\n if (Array.isArray(includes)) {\n includes.forEach(function (domain) {\n query.apply(void 0, [\"config\", domain.id].concat(args));\n });\n }\n});\n\nvar assignGlobalProperty = function assignGlobalProperty(id, value) {\n if (!isBrowser()) {\n return;\n }\n\n window[\"ga-disable-\".concat(id)] = value;\n};\n\nvar disable = (function () {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n var _getOptions = getOptions(),\n config = _getOptions.config,\n includes = _getOptions.includes;\n\n assignGlobalProperty(config.id, value);\n\n if (Array.isArray(includes)) {\n includes.forEach(function (domain) {\n return assignGlobalProperty(domain.id, value);\n });\n }\n});\n\nvar optOut = (function () {\n disable(true);\n});\n\nvar optIn = (function () {\n disable(false);\n});\n\nvar router;\nvar setRouter = function setRouter(instance) {\n router = instance;\n};\nvar getRouter = function getRouter() {\n return router;\n};\n\nvar event = (function (name) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _getOptions = getOptions(),\n includes = _getOptions.includes,\n defaultGroupName = _getOptions.defaultGroupName;\n\n if (params.send_to == null && Array.isArray(includes) && includes.length) {\n params.send_to = includes.map(function (domain) {\n return domain.id;\n }).concat(defaultGroupName);\n }\n\n query(\"event\", name, params);\n});\n\nvar pageview = (function (param) {\n if (!isBrowser()) {\n return;\n }\n\n var template;\n\n if (typeof param === \"string\") {\n template = {\n page_path: param\n };\n } else if (param.path || param.fullPath) {\n var _getOptions = getOptions(),\n useFullPath = _getOptions.pageTrackerUseFullPath,\n useBase = _getOptions.pageTrackerPrependBase;\n\n var router = getRouter();\n var base = router && router.options.base;\n var path = useFullPath ? param.fullPath : param.path;\n template = _objectSpread2(_objectSpread2({}, param.name && {\n page_title: param.name\n }), {}, {\n page_path: useBase ? getPathWithBase(path, base) : path\n });\n } else {\n template = param;\n }\n\n if (template.page_location == null) {\n template.page_location = window.location.href;\n }\n\n if (template.send_page_view == null) {\n template.send_page_view = true;\n }\n\n event(\"page_view\", template);\n});\n\nvar screenview = (function (param) {\n var _getOptions = getOptions(),\n appName = _getOptions.appName;\n\n if (!param) {\n return;\n }\n\n var template;\n\n if (typeof param === \"string\") {\n template = {\n screen_name: param\n };\n } else {\n template = param;\n }\n\n template.app_name = template.app_name || appName;\n event(\"screen_view\", template);\n});\n\nvar exception = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n event.apply(void 0, [\"exception\"].concat(args));\n});\n\nvar linker = (function (params) {\n config(\"linker\", params);\n});\n\nvar time = (function (params) {\n event(\"timing_complete\", params);\n});\n\nvar set = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n query.apply(void 0, [\"set\"].concat(args));\n});\n\nvar refund = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n event.apply(void 0, [\"refund\"].concat(args));\n});\n\nvar purchase = (function (params) {\n event(\"purchase\", params);\n});\n\nvar customMap = (function (map) {\n config({\n custom_map: map\n });\n});\n\nvar api = /*#__PURE__*/Object.freeze({\n __proto__: null,\n query: query,\n config: config,\n optOut: optOut,\n optIn: optIn,\n pageview: pageview,\n screenview: screenview,\n exception: exception,\n linker: linker,\n time: time,\n set: set,\n refund: refund,\n purchase: purchase,\n customMap: customMap,\n event: event\n});\n\nvar attachApi = function attachApi(Vue) {\n return Vue.$gtag = Vue.prototype.$gtag = api;\n};\n\nvar registerGlobals = (function () {\n if (!isBrowser()) {\n return;\n }\n\n var _getOptions = getOptions(),\n enabled = _getOptions.enabled,\n globalObjectName = _getOptions.globalObjectName,\n globalDataLayerName = _getOptions.globalDataLayerName;\n\n if (window[globalObjectName] == null) {\n window[globalDataLayerName] = window[globalDataLayerName] || [];\n\n window[globalObjectName] = function () {\n window[globalDataLayerName].push(arguments);\n };\n }\n\n window[globalObjectName](\"js\", new Date());\n\n if (!enabled) {\n optOut();\n }\n\n return window[globalObjectName];\n});\n\nvar mergeDefaultParams = function mergeDefaultParams(params) {\n return _objectSpread2({\n send_page_view: false\n }, params);\n};\n\nvar addConfiguration = (function () {\n var _getOptions = getOptions(),\n config = _getOptions.config,\n includes = _getOptions.includes;\n\n query(\"config\", config.id, mergeDefaultParams(config.params));\n\n if (Array.isArray(includes)) {\n includes.forEach(function (domain) {\n query(\"config\", domain.id, mergeDefaultParams(domain.params));\n });\n }\n});\n\nvar track = (function () {\n var to = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _getOptions = getOptions(),\n appName = _getOptions.appName,\n proxy = _getOptions.pageTrackerTemplate,\n useScreenview = _getOptions.pageTrackerScreenviewEnabled,\n skipSamePath = _getOptions.pageTrackerSkipSamePath;\n\n if (skipSamePath && to.path === from.path) {\n return;\n }\n\n var template = to;\n\n if (isFn(proxy)) {\n template = proxy(to, from);\n } else if (useScreenview) {\n template = validateScreenviewShape({\n app_name: appName,\n screen_name: to.name\n });\n }\n\n if (useScreenview) {\n screenview(template);\n return;\n }\n\n pageview(template);\n});\n\nvar isRouteExcluded = function isRouteExcluded(route) {\n var _getOptions = getOptions(),\n routes = _getOptions.pageTrackerExcludedRoutes;\n\n return routes.includes(route.path) || routes.includes(route.name);\n};\n\nvar addRoutesTracker = (function () {\n var _getOptions2 = getOptions(),\n onBeforeTrack = _getOptions2.onBeforeTrack,\n onAfterTrack = _getOptions2.onAfterTrack;\n\n var router = getRouter();\n router.onReady(function () {\n Vue.nextTick().then(function () {\n var currentRoute = router.currentRoute;\n addConfiguration();\n\n if (isRouteExcluded(currentRoute)) {\n return;\n }\n\n track(currentRoute);\n });\n router.afterEach(function (to, from) {\n Vue.nextTick().then(function () {\n if (isRouteExcluded(to)) {\n return;\n }\n\n if (isFn(onBeforeTrack)) {\n onBeforeTrack(to, from);\n }\n\n track(to, from);\n\n if (isFn(onAfterTrack)) {\n onAfterTrack(to, from);\n }\n });\n });\n });\n});\n\nvar bootstrap = (function () {\n var _getOptions = getOptions(),\n onReady = _getOptions.onReady,\n onError = _getOptions.onError,\n globalObjectName = _getOptions.globalObjectName,\n globalDataLayerName = _getOptions.globalDataLayerName,\n config = _getOptions.config,\n customResourceURL = _getOptions.customResourceURL,\n customPreconnectOrigin = _getOptions.customPreconnectOrigin,\n deferScriptLoad = _getOptions.deferScriptLoad,\n pageTrackerEnabled = _getOptions.pageTrackerEnabled,\n disableScriptLoad = _getOptions.disableScriptLoad;\n\n var isPageTrackerEnabled = Boolean(pageTrackerEnabled && getRouter());\n registerGlobals();\n\n if (isPageTrackerEnabled) {\n addRoutesTracker();\n } else {\n addConfiguration();\n }\n\n if (disableScriptLoad) {\n return;\n }\n\n return load(\"\".concat(customResourceURL, \"?id=\").concat(config.id, \"&l=\").concat(globalDataLayerName), {\n preconnectOrigin: customPreconnectOrigin,\n defer: deferScriptLoad\n }).then(function () {\n if (onReady) {\n onReady(window[globalObjectName]);\n }\n }).catch(function (error) {\n if (onError) {\n onError(error);\n }\n\n return error;\n });\n});\n\nvar install = function install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var router = arguments.length > 2 ? arguments[2] : undefined;\n attachApi(Vue);\n setOptions(options);\n setRouter(router);\n\n if (getOptions().bootstrap) {\n bootstrap();\n }\n};\n\nexport default install;\nexport { addRoutesTracker, bootstrap, config, customMap, event, exception, install, linker, optIn, optOut, pageview, purchase, query, refund, screenview, set, setOptions, setRouter, time };\n","/*!\n * vue-i18n v8.28.2 \n * (c) 2022 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\nvar dateTimeFormatKeys = [\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'localeMatcher',\n \"hour12\",\n \"hourCycle\",\n \"timeZone\",\n \"formatMatcher\",\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName' ];\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-zA-Z]+)?:(?:[\\w\\-_|./]+|\\([\\w\\-_:|./]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-zA-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._fallbackRootWithEmptyString = options.fallbackRootWithEmptyString === undefined\n ? true\n : !!options.fallbackRootWithEmptyString;\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 (this._fallbackRootWithEmptyString? !val : isNull(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 options\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\n var formatter;\n if (options) {\n formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n }\n\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key, options) {\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 var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);\n return dtf.format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);\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 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\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(dateTimeFormatKeys, 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._d(value, locale, key, options)\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.28.2';\n\nexport default VueI18n;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports[\"vue-js-modal\"]=t():e[\"vue-js-modal\"]=t()}(window,function(){return i={},o.m=n=[function(e,t,n){var i=n(6);\"string\"==typeof i&&(i=[[e.i,i,\"\"]]),i.locals&&(e.exports=i.locals);(0,n(4).default)(\"27d83796\",i,!1,{})},function(e,t,n){var i=n(8);\"string\"==typeof i&&(i=[[e.i,i,\"\"]]),i.locals&&(e.exports=i.locals);(0,n(4).default)(\"0e783494\",i,!1,{})},function(e,t,n){var i=n(10);\"string\"==typeof i&&(i=[[e.i,i,\"\"]]),i.locals&&(e.exports=i.locals);(0,n(4).default)(\"17757f60\",i,!1,{})},function(e,t){e.exports=function(n){var a=[];return a.toString=function(){return this.map(function(e){var t=function(e,t){var n=e[1]||\"\",i=e[3];if(!i)return n;if(t&&\"function\"==typeof btoa){var o=function(e){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+\" */\"}(i),r=i.sources.map(function(e){return\"/*# sourceURL=\"+i.sourceRoot+e+\" */\"});return[n].concat(r).concat([o]).join(\"\\n\")}return[n].join(\"\\n\")}(e,n);return e[2]?\"@media \"+e[2]+\"{\"+t+\"}\":t}).join(\"\")},a.i=function(e,t){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var n={},i=0;in.parts.length&&(i.parts.length=n.parts.length)}else{var r=[];for(o=0;o component must be present on the page.\")};a.prototype.$modal={show:function(e){for(var t=arguments.length,n=new Array(1 arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = o[Symbol.iterator]();\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\n/**\n * checks if passed argument is an array\n * @param {any} arg - the object to check\n * @return {Boolean} - true if `arg` is an array\n */\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction isUndefined(arg) {\n return typeof arg === 'undefined';\n}\nfunction isObject(arg) {\n return _typeof(arg) === 'object';\n}\nfunction isPureObject(arg) {\n return _typeof(arg) === 'object' && arg !== null;\n}\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nfunction hasGlobalWindowFn() {\n try {\n return !isUndefined(window);\n } catch (e) {\n return false;\n }\n}\nvar hasGlobalWindow = hasGlobalWindowFn();\n\nvar _global = hasGlobalWindow ? window : global;\n\nvar console = _global.console || {};\nfunction warn(str) {\n /* istanbul ignore next */\n if (!console || !console.warn) {\n return;\n }\n\n console.warn(str);\n}\nvar showWarningNotSupported = function showWarningNotSupported() {\n return warn('This vue app/component has no vue-meta configuration');\n};\n\n/**\n * These are constant variables used throughout the application.\n */\n// set some sane defaults\nvar defaultInfo = {\n title: undefined,\n titleChunk: '',\n titleTemplate: '%s',\n htmlAttrs: {},\n bodyAttrs: {},\n headAttrs: {},\n base: [],\n link: [],\n meta: [],\n style: [],\n script: [],\n noscript: [],\n __dangerouslyDisableSanitizers: [],\n __dangerouslyDisableSanitizersByTagID: {}\n};\nvar rootConfigKey = '_vueMeta'; // This is the name of the component option that contains all the information that\n// gets converted to the various meta tags & attributes for the page.\n\nvar keyName = 'metaInfo'; // This is the attribute vue-meta arguments on elements to know which it should\n// manage and which it should ignore.\n\nvar attribute = 'data-vue-meta'; // This is the attribute that goes on the `html` tag to inform `vue-meta`\n// that the server has already generated the meta tags for the initial render.\n\nvar ssrAttribute = 'data-vue-meta-server-rendered'; // This is the property that tells vue-meta to overwrite (instead of append)\n// an item in a tag list. For example, if you have two `meta` tag list items\n// that both have `vmid` of \"description\", then vue-meta will overwrite the\n// shallowest one with the deepest one.\n\nvar tagIDKeyName = 'vmid'; // This is the key name for possible meta templates\n\nvar metaTemplateKeyName = 'template'; // This is the key name for the content-holding property\n\nvar contentKeyName = 'content'; // The id used for the ssr app\n\nvar ssrAppId = 'ssr'; // How long meta update\n\nvar debounceWait = 10; // How long meta update\n\nvar waitOnDestroyed = true;\nvar defaultOptions = {\n keyName: keyName,\n attribute: attribute,\n ssrAttribute: ssrAttribute,\n tagIDKeyName: tagIDKeyName,\n contentKeyName: contentKeyName,\n metaTemplateKeyName: metaTemplateKeyName,\n waitOnDestroyed: waitOnDestroyed,\n debounceWait: debounceWait,\n ssrAppId: ssrAppId\n}; // might be a bit ugly, but minimizes the browser bundles a bit\n\nvar defaultInfoKeys = Object.keys(defaultInfo); // The metaInfo property keys which are used to disable escaping\n\nvar disableOptionKeys = [defaultInfoKeys[12], defaultInfoKeys[13]]; // List of metaInfo property keys which are configuration options (and dont generate html)\n\nvar metaInfoOptionKeys = [defaultInfoKeys[1], defaultInfoKeys[2], 'changed'].concat(disableOptionKeys); // List of metaInfo property keys which only generates attributes and no tags\n\nvar metaInfoAttributeKeys = [defaultInfoKeys[3], defaultInfoKeys[4], defaultInfoKeys[5]]; // HTML elements which support the onload event\n\nvar tagsSupportingOnload = ['link', 'style', 'script']; // HTML elements which dont have a head tag (shortened to our needs)\n// see: https://www.w3.org/TR/html52/document-metadata.html\n\nvar tagsWithoutEndTag = ['base', 'meta', 'link']; // HTML elements which can have inner content (shortened to our needs)\n\nvar tagsWithInnerContent = ['noscript', 'script', 'style']; // Attributes which are inserted as childNodes instead of HTMLAttribute\n\nvar tagAttributeAsInnerContent = ['innerHTML', 'cssText', 'json'];\nvar tagProperties = ['once', 'skip', 'template']; // Attributes which should be added with data- prefix\n\nvar commonDataAttributes = ['body', 'pbody']; // from: https://github.com/kangax/html-minifier/blob/gh-pages/src/htmlminifier.js#L202\n\nvar booleanHtmlAttributes = ['allowfullscreen', 'amp', 'amp-boilerplate', 'async', 'autofocus', 'autoplay', 'checked', 'compact', 'controls', 'declare', 'default', 'defaultchecked', 'defaultmuted', 'defaultselected', 'defer', 'disabled', 'enabled', 'formnovalidate', 'hidden', 'indeterminate', 'inert', 'ismap', 'itemscope', 'loop', 'multiple', 'muted', 'nohref', 'noresize', 'noshade', 'novalidate', 'nowrap', 'open', 'pauseonexit', 'readonly', 'required', 'reversed', 'scoped', 'seamless', 'selected', 'sortable', 'truespeed', 'typemustmatch', 'visible'];\n\nvar batchId = null;\nfunction triggerUpdate(_ref, rootVm, hookName) {\n var debounceWait = _ref.debounceWait;\n\n // if an update was triggered during initialization or when an update was triggered by the\n // metaInfo watcher, set initialized to null\n // then we keep falsy value but know we need to run a triggerUpdate after initialization\n if (!rootVm[rootConfigKey].initialized && (rootVm[rootConfigKey].initializing || hookName === 'watcher')) {\n rootVm[rootConfigKey].initialized = null;\n }\n\n if (rootVm[rootConfigKey].initialized && !rootVm[rootConfigKey].pausing) {\n // batch potential DOM updates to prevent extraneous re-rendering\n // eslint-disable-next-line no-void\n batchUpdate(function () {\n return void rootVm.$meta().refresh();\n }, debounceWait);\n }\n}\n/**\n * Performs a batched update.\n *\n * @param {(null|Number)} id - the ID of this update\n * @param {Function} callback - the update to perform\n * @return {Number} id - a new ID\n */\n\nfunction batchUpdate(callback, timeout) {\n timeout = timeout === undefined ? 10 : timeout;\n\n if (!timeout) {\n callback();\n return;\n }\n\n clearTimeout(batchId);\n batchId = setTimeout(function () {\n callback();\n }, timeout);\n return batchId;\n}\n\n/*\n * To reduce build size, this file provides simple polyfills without\n * overly excessive type checking and without modifying\n * the global Array.prototype\n * The polyfills are automatically removed in the commonjs build\n * Also, only files in client/ & shared/ should use these functions\n * files in server/ still use normal js function\n */\nfunction find(array, predicate, thisArg) {\n if ( !Array.prototype.find) {\n // idx needs to be a Number, for..in returns string\n for (var idx = 0; idx < array.length; idx++) {\n if (predicate.call(thisArg, array[idx], idx, array)) {\n return array[idx];\n }\n }\n\n return;\n }\n\n return array.find(predicate, thisArg);\n}\nfunction findIndex(array, predicate, thisArg) {\n if ( !Array.prototype.findIndex) {\n // idx needs to be a Number, for..in returns string\n for (var idx = 0; idx < array.length; idx++) {\n if (predicate.call(thisArg, array[idx], idx, array)) {\n return idx;\n }\n }\n\n return -1;\n }\n\n return array.findIndex(predicate, thisArg);\n}\nfunction toArray(arg) {\n if ( !Array.from) {\n return Array.prototype.slice.call(arg);\n }\n\n return Array.from(arg);\n}\nfunction includes(array, value) {\n if ( !Array.prototype.includes) {\n for (var idx in array) {\n if (array[idx] === value) {\n return true;\n }\n }\n\n return false;\n }\n\n return array.includes(value);\n}\n\nvar querySelector = function querySelector(arg, el) {\n return (el || document).querySelectorAll(arg);\n};\nfunction getTag(tags, tag) {\n if (!tags[tag]) {\n tags[tag] = document.getElementsByTagName(tag)[0];\n }\n\n return tags[tag];\n}\nfunction getElementsKey(_ref) {\n var body = _ref.body,\n pbody = _ref.pbody;\n return body ? 'body' : pbody ? 'pbody' : 'head';\n}\nfunction queryElements(parentNode, _ref2, attributes) {\n var appId = _ref2.appId,\n attribute = _ref2.attribute,\n type = _ref2.type,\n tagIDKeyName = _ref2.tagIDKeyName;\n attributes = attributes || {};\n var queries = [\"\".concat(type, \"[\").concat(attribute, \"=\\\"\").concat(appId, \"\\\"]\"), \"\".concat(type, \"[data-\").concat(tagIDKeyName, \"]\")].map(function (query) {\n for (var key in attributes) {\n var val = attributes[key];\n var attributeValue = val && val !== true ? \"=\\\"\".concat(val, \"\\\"\") : '';\n query += \"[data-\".concat(key).concat(attributeValue, \"]\");\n }\n\n return query;\n });\n return toArray(querySelector(queries.join(', '), parentNode));\n}\nfunction removeElementsByAppId(_ref3, appId) {\n var attribute = _ref3.attribute;\n toArray(querySelector(\"[\".concat(attribute, \"=\\\"\").concat(appId, \"\\\"]\"))).map(function (el) {\n return el.remove();\n });\n}\nfunction removeAttribute(el, attributeName) {\n el.removeAttribute(attributeName);\n}\n\nfunction hasMetaInfo(vm) {\n vm = vm || this;\n return vm && (vm[rootConfigKey] === true || isObject(vm[rootConfigKey]));\n} // a component is in a metaInfo branch when itself has meta info or one of its (grand-)children has\n\nfunction inMetaInfoBranch(vm) {\n vm = vm || this;\n return vm && !isUndefined(vm[rootConfigKey]);\n}\n\nfunction pause(rootVm, refresh) {\n rootVm[rootConfigKey].pausing = true;\n return function () {\n return resume(rootVm, refresh);\n };\n}\nfunction resume(rootVm, refresh) {\n rootVm[rootConfigKey].pausing = false;\n\n if (refresh || refresh === undefined) {\n return rootVm.$meta().refresh();\n }\n}\n\nfunction addNavGuards(rootVm) {\n var router = rootVm.$router; // return when nav guards already added or no router exists\n\n if (rootVm[rootConfigKey].navGuards || !router) {\n /* istanbul ignore next */\n return;\n }\n\n rootVm[rootConfigKey].navGuards = true;\n router.beforeEach(function (to, from, next) {\n pause(rootVm);\n next();\n });\n router.afterEach(function () {\n rootVm.$nextTick(function () {\n var _resume = resume(rootVm),\n metaInfo = _resume.metaInfo;\n\n if (metaInfo && isFunction(metaInfo.afterNavigation)) {\n metaInfo.afterNavigation(metaInfo);\n }\n });\n });\n}\n\nvar appId = 1;\nfunction createMixin(Vue, options) {\n // for which Vue lifecycle hooks should the metaInfo be refreshed\n var updateOnLifecycleHook = ['activated', 'deactivated', 'beforeMount'];\n var wasServerRendered = false; // watch for client side component updates\n\n return {\n beforeCreate: function beforeCreate() {\n var _this2 = this;\n\n var rootKey = '$root';\n var $root = this[rootKey];\n var $options = this.$options;\n var devtoolsEnabled = Vue.config.devtools;\n Object.defineProperty(this, '_hasMetaInfo', {\n configurable: true,\n get: function get() {\n // Show deprecation warning once when devtools enabled\n if (devtoolsEnabled && !$root[rootConfigKey].deprecationWarningShown) {\n warn('VueMeta DeprecationWarning: _hasMetaInfo has been deprecated and will be removed in a future version. Please use hasMetaInfo(vm) instead');\n $root[rootConfigKey].deprecationWarningShown = true;\n }\n\n return hasMetaInfo(this);\n }\n });\n\n if (this === $root) {\n $root.$once('hook:beforeMount', function () {\n wasServerRendered = this.$el && this.$el.nodeType === 1 && this.$el.hasAttribute('data-server-rendered'); // In most cases when you have a SSR app it will be the first app thats gonna be\n // initiated, if we cant detect the data-server-rendered attribute from Vue but we\n // do see our own ssrAttribute then _assume_ the Vue app with appId 1 is the ssr app\n // attempted fix for #404 & #562, but we rly need to refactor how we pass appIds from\n // ssr to the client\n\n if (!wasServerRendered && $root[rootConfigKey] && $root[rootConfigKey].appId === 1) {\n var htmlTag = getTag({}, 'html');\n wasServerRendered = htmlTag && htmlTag.hasAttribute(options.ssrAttribute);\n }\n });\n } // Add a marker to know if it uses metaInfo\n // _vnode is used to know that it's attached to a real component\n // useful if we use some mixin to add some meta tags (like nuxt-i18n)\n\n\n if (isUndefined($options[options.keyName]) || $options[options.keyName] === null) {\n return;\n }\n\n if (!$root[rootConfigKey]) {\n $root[rootConfigKey] = {\n appId: appId\n };\n appId++;\n\n if (devtoolsEnabled && $root.$options[options.keyName]) {\n // use nextTick so the children should be added to $root\n this.$nextTick(function () {\n // find the first child that lists fnOptions\n var child = find($root.$children, function (c) {\n return c.$vnode && c.$vnode.fnOptions;\n });\n\n if (child && child.$vnode.fnOptions[options.keyName]) {\n warn(\"VueMeta has detected a possible global mixin which adds a \".concat(options.keyName, \" property to all Vue components on the page. This could cause severe performance issues. If possible, use $meta().addApp to add meta information instead\"));\n }\n });\n }\n } // to speed up updates we keep track of branches which have a component with vue-meta info defined\n // if _vueMeta = true it has info, if _vueMeta = false a child has info\n\n\n if (!this[rootConfigKey]) {\n this[rootConfigKey] = true;\n var parent = this.$parent;\n\n while (parent && parent !== $root) {\n if (isUndefined(parent[rootConfigKey])) {\n parent[rootConfigKey] = false;\n }\n\n parent = parent.$parent;\n }\n } // coerce function-style metaInfo to a computed prop so we can observe\n // it on creation\n\n\n if (isFunction($options[options.keyName])) {\n $options.computed = $options.computed || {};\n $options.computed.$metaInfo = $options[options.keyName];\n\n if (!this.$isServer) {\n // if computed $metaInfo exists, watch it for updates & trigger a refresh\n // when it changes (i.e. automatically handle async actions that affect metaInfo)\n // credit for this suggestion goes to [Sébastien Chopin](https://github.com/Atinux)\n this.$on('hook:created', function () {\n this.$watch('$metaInfo', function () {\n triggerUpdate(options, this[rootKey], 'watcher');\n });\n });\n }\n } // force an initial refresh on page load and prevent other lifecycleHooks\n // to triggerUpdate until this initial refresh is finished\n // this is to make sure that when a page is opened in an inactive tab which\n // has throttled rAF/timers we still immediately set the page title\n\n\n if (isUndefined($root[rootConfigKey].initialized)) {\n $root[rootConfigKey].initialized = this.$isServer;\n\n if (!$root[rootConfigKey].initialized) {\n if (!$root[rootConfigKey].initializedSsr) {\n $root[rootConfigKey].initializedSsr = true;\n this.$on('hook:beforeMount', function () {\n var $root = this[rootKey]; // if this Vue-app was server rendered, set the appId to 'ssr'\n // only one SSR app per page is supported\n\n if (wasServerRendered) {\n $root[rootConfigKey].appId = options.ssrAppId;\n }\n });\n } // we use the mounted hook here as on page load\n\n\n this.$on('hook:mounted', function () {\n var $root = this[rootKey];\n\n if ($root[rootConfigKey].initialized) {\n return;\n } // used in triggerUpdate to check if a change was triggered\n // during initialization\n\n\n $root[rootConfigKey].initializing = true; // refresh meta in nextTick so all child components have loaded\n\n this.$nextTick(function () {\n var _$root$$meta$refresh = $root.$meta().refresh(),\n tags = _$root$$meta$refresh.tags,\n metaInfo = _$root$$meta$refresh.metaInfo; // After ssr hydration (identifier by tags === false) check\n // if initialized was set to null in triggerUpdate. That'd mean\n // that during initilazation changes where triggered which need\n // to be applied OR a metaInfo watcher was triggered before the\n // current hook was called\n // (during initialization all changes are blocked)\n\n\n if (tags === false && $root[rootConfigKey].initialized === null) {\n this.$nextTick(function () {\n return triggerUpdate(options, $root, 'init');\n });\n }\n\n $root[rootConfigKey].initialized = true;\n delete $root[rootConfigKey].initializing; // add the navigation guards if they havent been added yet\n // they are needed for the afterNavigation callback\n\n if (!options.refreshOnceOnNavigation && metaInfo.afterNavigation) {\n addNavGuards($root);\n }\n });\n }); // add the navigation guards if requested\n\n if (options.refreshOnceOnNavigation) {\n addNavGuards($root);\n }\n }\n }\n\n this.$on('hook:destroyed', function () {\n var _this = this;\n\n // do not trigger refresh:\n // - when user configured to not wait for transitions on destroyed\n // - when the component doesnt have a parent\n // - doesnt have metaInfo defined\n if (!this.$parent || !hasMetaInfo(this)) {\n return;\n }\n\n delete this._hasMetaInfo;\n this.$nextTick(function () {\n if (!options.waitOnDestroyed || !_this.$el || !_this.$el.offsetParent) {\n triggerUpdate(options, _this.$root, 'destroyed');\n return;\n } // Wait that element is hidden before refreshing meta tags (to support animations)\n\n\n var interval = setInterval(function () {\n if (_this.$el && _this.$el.offsetParent !== null) {\n /* istanbul ignore next line */\n return;\n }\n\n clearInterval(interval);\n triggerUpdate(options, _this.$root, 'destroyed');\n }, 50);\n });\n }); // do not trigger refresh on the server side\n\n if (this.$isServer) {\n /* istanbul ignore next */\n return;\n } // no need to add this hooks on server side\n\n\n updateOnLifecycleHook.forEach(function (lifecycleHook) {\n _this2.$on(\"hook:\".concat(lifecycleHook), function () {\n triggerUpdate(options, this[rootKey], lifecycleHook);\n });\n });\n }\n };\n}\n\nfunction setOptions(options) {\n // combine options\n options = isObject(options) ? options : {}; // The options are set like this so they can\n // be minified by terser while keeping the\n // user api intact\n // terser --mangle-properties keep_quoted=strict\n\n /* eslint-disable dot-notation */\n\n return {\n keyName: options['keyName'] || defaultOptions.keyName,\n attribute: options['attribute'] || defaultOptions.attribute,\n ssrAttribute: options['ssrAttribute'] || defaultOptions.ssrAttribute,\n tagIDKeyName: options['tagIDKeyName'] || defaultOptions.tagIDKeyName,\n contentKeyName: options['contentKeyName'] || defaultOptions.contentKeyName,\n metaTemplateKeyName: options['metaTemplateKeyName'] || defaultOptions.metaTemplateKeyName,\n debounceWait: isUndefined(options['debounceWait']) ? defaultOptions.debounceWait : options['debounceWait'],\n waitOnDestroyed: isUndefined(options['waitOnDestroyed']) ? defaultOptions.waitOnDestroyed : options['waitOnDestroyed'],\n ssrAppId: options['ssrAppId'] || defaultOptions.ssrAppId,\n refreshOnceOnNavigation: !!options['refreshOnceOnNavigation']\n };\n /* eslint-enable dot-notation */\n}\nfunction getOptions(options) {\n var optionsCopy = {};\n\n for (var key in options) {\n optionsCopy[key] = options[key];\n }\n\n return optionsCopy;\n}\n\nfunction ensureIsArray(arg, key) {\n if (!key || !isObject(arg)) {\n return isArray(arg) ? arg : [];\n }\n\n if (!isArray(arg[key])) {\n arg[key] = [];\n }\n\n return arg;\n}\n\nvar serverSequences = [[/&/g, '&'], [//g, '>'], [/\"/g, '"'], [/'/g, ''']];\nvar clientSequences = [[/&/g, \"&\"], [//g, \">\"], [/\"/g, \"\\\"\"], [/'/g, \"'\"]]; // sanitizes potentially dangerous characters\n\nfunction escape(info, options, escapeOptions, escapeKeys) {\n var tagIDKeyName = options.tagIDKeyName;\n var _escapeOptions$doEsca = escapeOptions.doEscape,\n doEscape = _escapeOptions$doEsca === void 0 ? function (v) {\n return v;\n } : _escapeOptions$doEsca;\n var escaped = {};\n\n for (var key in info) {\n var value = info[key]; // no need to escape configuration options\n\n if (includes(metaInfoOptionKeys, key)) {\n escaped[key] = value;\n continue;\n } // do not use destructuring for disableOptionKeys, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n\n\n var disableKey = disableOptionKeys[0];\n\n if (escapeOptions[disableKey] && includes(escapeOptions[disableKey], key)) {\n // this info[key] doesnt need to escaped if the option is listed in __dangerouslyDisableSanitizers\n escaped[key] = value;\n continue;\n }\n\n var tagId = info[tagIDKeyName];\n\n if (tagId) {\n disableKey = disableOptionKeys[1]; // keys which are listed in __dangerouslyDisableSanitizersByTagID for the current vmid do not need to be escaped\n\n if (escapeOptions[disableKey] && escapeOptions[disableKey][tagId] && includes(escapeOptions[disableKey][tagId], key)) {\n escaped[key] = value;\n continue;\n }\n }\n\n if (isString(value)) {\n escaped[key] = doEscape(value);\n } else if (isArray(value)) {\n escaped[key] = value.map(function (v) {\n if (isPureObject(v)) {\n return escape(v, options, escapeOptions, true);\n }\n\n return doEscape(v);\n });\n } else if (isPureObject(value)) {\n escaped[key] = escape(value, options, escapeOptions, true);\n } else {\n escaped[key] = value;\n }\n\n if (escapeKeys) {\n var escapedKey = doEscape(key);\n\n if (key !== escapedKey) {\n escaped[escapedKey] = escaped[key];\n delete escaped[key];\n }\n }\n }\n\n return escaped;\n}\nfunction escapeMetaInfo(options, info, escapeSequences) {\n escapeSequences = escapeSequences || []; // do not use destructuring for seq, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n\n var escapeOptions = {\n doEscape: function doEscape(value) {\n return escapeSequences.reduce(function (val, seq) {\n return val.replace(seq[0], seq[1]);\n }, value);\n }\n };\n disableOptionKeys.forEach(function (disableKey, index) {\n if (index === 0) {\n ensureIsArray(info, disableKey);\n } else if (index === 1) {\n for (var key in info[disableKey]) {\n ensureIsArray(info[disableKey], key);\n }\n }\n\n escapeOptions[disableKey] = info[disableKey];\n }); // begin sanitization\n\n return escape(info, options, escapeOptions);\n}\n\nfunction applyTemplate(_ref, headObject, template, chunk) {\n var component = _ref.component,\n metaTemplateKeyName = _ref.metaTemplateKeyName,\n contentKeyName = _ref.contentKeyName;\n\n if (template === true || headObject[metaTemplateKeyName] === true) {\n // abort, template was already applied\n return false;\n }\n\n if (isUndefined(template) && headObject[metaTemplateKeyName]) {\n template = headObject[metaTemplateKeyName];\n headObject[metaTemplateKeyName] = true;\n } // return early if no template defined\n\n\n if (!template) {\n // cleanup faulty template properties\n delete headObject[metaTemplateKeyName];\n return false;\n }\n\n if (isUndefined(chunk)) {\n chunk = headObject[contentKeyName];\n }\n\n headObject[contentKeyName] = isFunction(template) ? template.call(component, chunk) : template.replace(/%s/g, chunk);\n return true;\n}\n\nfunction _arrayMerge(_ref, target, source) {\n var component = _ref.component,\n tagIDKeyName = _ref.tagIDKeyName,\n metaTemplateKeyName = _ref.metaTemplateKeyName,\n contentKeyName = _ref.contentKeyName;\n // we concat the arrays without merging objects contained in,\n // but we check for a `vmid` property on each object in the array\n // using an O(1) lookup associative array exploit\n var destination = [];\n\n if (!target.length && !source.length) {\n return destination;\n }\n\n target.forEach(function (targetItem, targetIndex) {\n // no tagID so no need to check for duplicity\n if (!targetItem[tagIDKeyName]) {\n destination.push(targetItem);\n return;\n }\n\n var sourceIndex = findIndex(source, function (item) {\n return item[tagIDKeyName] === targetItem[tagIDKeyName];\n });\n var sourceItem = source[sourceIndex]; // source doesnt contain any duplicate vmid's, we can keep targetItem\n\n if (sourceIndex === -1) {\n destination.push(targetItem);\n return;\n } // when sourceItem explictly defines contentKeyName or innerHTML as undefined, its\n // an indication that we need to skip the default behaviour or child has preference over parent\n // which means we keep the targetItem and ignore/remove the sourceItem\n\n\n if (contentKeyName in sourceItem && sourceItem[contentKeyName] === undefined || 'innerHTML' in sourceItem && sourceItem.innerHTML === undefined) {\n destination.push(targetItem); // remove current index from source array so its not concatenated to destination below\n\n source.splice(sourceIndex, 1);\n return;\n } // we now know that targetItem is a duplicate and we should ignore it in favor of sourceItem\n // if source specifies null as content then ignore both the target as the source\n\n\n if (sourceItem[contentKeyName] === null || sourceItem.innerHTML === null) {\n // remove current index from source array so its not concatenated to destination below\n source.splice(sourceIndex, 1);\n return;\n } // now we only need to check if the target has a template to combine it with the source\n\n\n var targetTemplate = targetItem[metaTemplateKeyName];\n\n if (!targetTemplate) {\n return;\n }\n\n var sourceTemplate = sourceItem[metaTemplateKeyName];\n\n if (!sourceTemplate) {\n // use parent template and child content\n applyTemplate({\n component: component,\n metaTemplateKeyName: metaTemplateKeyName,\n contentKeyName: contentKeyName\n }, sourceItem, targetTemplate); // set template to true to indicate template was already applied\n\n sourceItem.template = true;\n return;\n }\n\n if (!sourceItem[contentKeyName]) {\n // use parent content and child template\n applyTemplate({\n component: component,\n metaTemplateKeyName: metaTemplateKeyName,\n contentKeyName: contentKeyName\n }, sourceItem, undefined, targetItem[contentKeyName]);\n }\n });\n return destination.concat(source);\n}\nvar warningShown = false;\nfunction merge(target, source, options) {\n options = options || {}; // remove properties explicitly set to false so child components can\n // optionally _not_ overwrite the parents content\n // (for array properties this is checked in arrayMerge)\n\n if (source.title === undefined) {\n delete source.title;\n }\n\n metaInfoAttributeKeys.forEach(function (attrKey) {\n if (!source[attrKey]) {\n return;\n }\n\n for (var key in source[attrKey]) {\n if (key in source[attrKey] && source[attrKey][key] === undefined) {\n if (includes(booleanHtmlAttributes, key) && !warningShown) {\n warn('VueMeta: Please note that since v2 the value undefined is not used to indicate boolean attributes anymore, see migration guide for details');\n warningShown = true;\n }\n\n delete source[attrKey][key];\n }\n }\n });\n return deepmerge(target, source, {\n arrayMerge: function arrayMerge(t, s) {\n return _arrayMerge(options, t, s);\n }\n });\n}\n\nfunction getComponentMetaInfo(options, component) {\n return getComponentOption(options || {}, component, defaultInfo);\n}\n/**\n * Returns the `opts.option` $option value of the given `opts.component`.\n * If methods are encountered, they will be bound to the component context.\n * If `opts.deep` is true, will recursively merge all child component\n * `opts.option` $option values into the returned result.\n *\n * @param {Object} opts - options\n * @param {Object} opts.component - Vue component to fetch option data from\n * @param {Boolean} opts.deep - look for data in child components as well?\n * @param {Function} opts.arrayMerge - how should arrays be merged?\n * @param {String} opts.keyName - the name of the option to look for\n * @param {Object} [result={}] - result so far\n * @return {Object} result - final aggregated result\n */\n\nfunction getComponentOption(options, component, result) {\n result = result || {};\n\n if (component._inactive) {\n return result;\n }\n\n options = options || {};\n var _options = options,\n keyName = _options.keyName;\n var $metaInfo = component.$metaInfo,\n $options = component.$options,\n $children = component.$children; // only collect option data if it exists\n\n if ($options[keyName]) {\n // if $metaInfo exists then [keyName] was defined as a function\n // and set to the computed prop $metaInfo in the mixin\n // using the computed prop should be a small performance increase\n // because Vue caches those internally\n var data = $metaInfo || $options[keyName]; // only merge data with result when its an object\n // eg it could be a function when metaInfo() returns undefined\n // dueo to the or statement above\n\n if (isObject(data)) {\n result = merge(result, data, options);\n }\n } // collect & aggregate child options if deep = true\n\n\n if ($children.length) {\n $children.forEach(function (childComponent) {\n // check if the childComponent is in a branch\n // return otherwise so we dont walk all component branches unnecessarily\n if (!inMetaInfoBranch(childComponent)) {\n return;\n }\n\n result = getComponentOption(options, childComponent, result);\n });\n }\n\n return result;\n}\n\nvar callbacks = [];\nfunction isDOMComplete(d) {\n return (d || document).readyState === 'complete';\n}\nfunction addCallback(query, callback) {\n if (arguments.length === 1) {\n callback = query;\n query = '';\n }\n\n callbacks.push([query, callback]);\n}\nfunction addCallbacks(_ref, type, tags, autoAddListeners) {\n var tagIDKeyName = _ref.tagIDKeyName;\n var hasAsyncCallback = false;\n tags.forEach(function (tag) {\n if (!tag[tagIDKeyName] || !tag.callback) {\n return;\n }\n\n hasAsyncCallback = true;\n addCallback(\"\".concat(type, \"[data-\").concat(tagIDKeyName, \"=\\\"\").concat(tag[tagIDKeyName], \"\\\"]\"), tag.callback);\n });\n\n if (!autoAddListeners || !hasAsyncCallback) {\n return hasAsyncCallback;\n }\n\n return addListeners();\n}\nfunction addListeners() {\n if (isDOMComplete()) {\n applyCallbacks();\n return;\n } // Instead of using a MutationObserver, we just apply\n\n /* istanbul ignore next */\n\n\n document.onreadystatechange = function () {\n applyCallbacks();\n };\n}\nfunction applyCallbacks(matchElement) {\n callbacks.forEach(function (args) {\n // do not use destructuring for args, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n var query = args[0];\n var callback = args[1];\n var selector = \"\".concat(query, \"[onload=\\\"this.__vm_l=1\\\"]\");\n var elements = [];\n\n if (!matchElement) {\n elements = toArray(querySelector(selector));\n }\n\n if (matchElement && matchElement.matches(selector)) {\n elements = [matchElement];\n }\n\n elements.forEach(function (element) {\n /* __vm_cb: whether the load callback has been called\n * __vm_l: set by onload attribute, whether the element was loaded\n * __vm_ev: whether the event listener was added or not\n */\n if (element.__vm_cb) {\n return;\n }\n\n var onload = function onload() {\n /* Mark that the callback for this element has already been called,\n * this prevents the callback to run twice in some (rare) conditions\n */\n element.__vm_cb = true;\n /* onload needs to be removed because we only need the\n * attribute after ssr and if we dont remove it the node\n * will fail isEqualNode on the client\n */\n\n removeAttribute(element, 'onload');\n callback(element);\n };\n /* IE9 doesnt seem to load scripts synchronously,\n * causing a script sometimes/often already to be loaded\n * when we add the event listener below (thus adding an onload event\n * listener has no use because it will never be triggered).\n * Therefore we add the onload attribute during ssr, and\n * check here if it was already loaded or not\n */\n\n\n if (element.__vm_l) {\n onload();\n return;\n }\n\n if (!element.__vm_ev) {\n element.__vm_ev = true;\n element.addEventListener('load', onload);\n }\n });\n });\n}\n\n// instead of adding it to the html\n\nvar attributeMap = {};\n/**\n * Updates the document's html tag attributes\n *\n * @param {Object} attrs - the new document html attributes\n * @param {HTMLElement} tag - the HTMLElement tag to update with new attrs\n */\n\nfunction updateAttribute(appId, options, type, attrs, tag) {\n var _ref = options || {},\n attribute = _ref.attribute;\n\n var vueMetaAttrString = tag.getAttribute(attribute);\n\n if (vueMetaAttrString) {\n attributeMap[type] = JSON.parse(decodeURI(vueMetaAttrString));\n removeAttribute(tag, attribute);\n }\n\n var data = attributeMap[type] || {};\n var toUpdate = []; // remove attributes from the map\n // which have been removed for this appId\n\n for (var attr in data) {\n if (data[attr] !== undefined && appId in data[attr]) {\n toUpdate.push(attr);\n\n if (!attrs[attr]) {\n delete data[attr][appId];\n }\n }\n }\n\n for (var _attr in attrs) {\n var attrData = data[_attr];\n\n if (!attrData || attrData[appId] !== attrs[_attr]) {\n toUpdate.push(_attr);\n\n if (attrs[_attr] !== undefined) {\n data[_attr] = data[_attr] || {};\n data[_attr][appId] = attrs[_attr];\n }\n }\n }\n\n for (var _i = 0, _toUpdate = toUpdate; _i < _toUpdate.length; _i++) {\n var _attr2 = _toUpdate[_i];\n var _attrData = data[_attr2];\n var attrValues = [];\n\n for (var _appId in _attrData) {\n Array.prototype.push.apply(attrValues, [].concat(_attrData[_appId]));\n }\n\n if (attrValues.length) {\n var attrValue = includes(booleanHtmlAttributes, _attr2) && attrValues.some(Boolean) ? '' : attrValues.filter(function (v) {\n return v !== undefined;\n }).join(' ');\n tag.setAttribute(_attr2, attrValue);\n } else {\n removeAttribute(tag, _attr2);\n }\n }\n\n attributeMap[type] = data;\n}\n\n/**\n * Updates the document title\n *\n * @param {String} title - the new title of the document\n */\nfunction updateTitle(title) {\n if (!title && title !== '') {\n return;\n }\n\n document.title = title;\n}\n\n/**\n * Updates meta tags inside and on the client. Borrowed from `react-helmet`:\n * https://github.com/nfl/react-helmet/blob/004d448f8de5f823d10f838b02317521180f34da/src/Helmet.js#L195-L245\n *\n * @param {('meta'|'base'|'link'|'style'|'script'|'noscript')} type - the name of the tag\n * @param {(Array|Object)} tags - an array of tag objects or a single object in case of base\n * @return {Object} - a representation of what tags changed\n */\n\nfunction updateTag(appId, options, type, tags, head, body) {\n var _ref = options || {},\n attribute = _ref.attribute,\n tagIDKeyName = _ref.tagIDKeyName;\n\n var dataAttributes = commonDataAttributes.slice();\n dataAttributes.push(tagIDKeyName);\n var newElements = [];\n var queryOptions = {\n appId: appId,\n attribute: attribute,\n type: type,\n tagIDKeyName: tagIDKeyName\n };\n var currentElements = {\n head: queryElements(head, queryOptions),\n pbody: queryElements(body, queryOptions, {\n pbody: true\n }),\n body: queryElements(body, queryOptions, {\n body: true\n })\n };\n\n if (tags.length > 1) {\n // remove duplicates that could have been found by merging tags\n // which include a mixin with metaInfo and that mixin is used\n // by multiple components on the same page\n var found = [];\n tags = tags.filter(function (x) {\n var k = JSON.stringify(x);\n var res = !includes(found, k);\n found.push(k);\n return res;\n });\n }\n\n tags.forEach(function (tag) {\n if (tag.skip) {\n return;\n }\n\n var newElement = document.createElement(type);\n\n if (!tag.once) {\n newElement.setAttribute(attribute, appId);\n }\n\n Object.keys(tag).forEach(function (attr) {\n /* istanbul ignore next */\n if (includes(tagProperties, attr)) {\n return;\n }\n\n if (attr === 'innerHTML') {\n newElement.innerHTML = tag.innerHTML;\n return;\n }\n\n if (attr === 'json') {\n newElement.innerHTML = JSON.stringify(tag.json);\n return;\n }\n\n if (attr === 'cssText') {\n if (newElement.styleSheet) {\n /* istanbul ignore next */\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n\n return;\n }\n\n if (attr === 'callback') {\n newElement.onload = function () {\n return tag[attr](newElement);\n };\n\n return;\n }\n\n var _attr = includes(dataAttributes, attr) ? \"data-\".concat(attr) : attr;\n\n var isBooleanAttribute = includes(booleanHtmlAttributes, attr);\n\n if (isBooleanAttribute && !tag[attr]) {\n return;\n }\n\n var value = isBooleanAttribute ? '' : tag[attr];\n newElement.setAttribute(_attr, value);\n });\n var oldElements = currentElements[getElementsKey(tag)]; // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n var indexToDelete;\n var hasEqualElement = oldElements.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n });\n\n if (hasEqualElement && (indexToDelete || indexToDelete === 0)) {\n oldElements.splice(indexToDelete, 1);\n } else {\n newElements.push(newElement);\n }\n });\n var oldElements = [];\n\n for (var _type in currentElements) {\n Array.prototype.push.apply(oldElements, currentElements[_type]);\n } // remove old elements\n\n\n oldElements.forEach(function (element) {\n element.parentNode.removeChild(element);\n }); // insert new elements\n\n newElements.forEach(function (element) {\n if (element.hasAttribute('data-body')) {\n body.appendChild(element);\n return;\n }\n\n if (element.hasAttribute('data-pbody')) {\n body.insertBefore(element, body.firstChild);\n return;\n }\n\n head.appendChild(element);\n });\n return {\n oldTags: oldElements,\n newTags: newElements\n };\n}\n\n/**\n * Performs client-side updates when new meta info is received\n *\n * @param {Object} newInfo - the meta info to update to\n */\n\nfunction updateClientMetaInfo(appId, options, newInfo) {\n options = options || {};\n var _options = options,\n ssrAttribute = _options.ssrAttribute,\n ssrAppId = _options.ssrAppId; // only cache tags for current update\n\n var tags = {};\n var htmlTag = getTag(tags, 'html'); // if this is a server render, then dont update\n\n if (appId === ssrAppId && htmlTag.hasAttribute(ssrAttribute)) {\n // remove the server render attribute so we can update on (next) changes\n removeAttribute(htmlTag, ssrAttribute); // add load callbacks if the\n\n var addLoadListeners = false;\n tagsSupportingOnload.forEach(function (type) {\n if (newInfo[type] && addCallbacks(options, type, newInfo[type])) {\n addLoadListeners = true;\n }\n });\n\n if (addLoadListeners) {\n addListeners();\n }\n\n return false;\n } // initialize tracked changes\n\n\n var tagsAdded = {};\n var tagsRemoved = {};\n\n for (var type in newInfo) {\n // ignore these\n if (includes(metaInfoOptionKeys, type)) {\n continue;\n }\n\n if (type === 'title') {\n // update the title\n updateTitle(newInfo.title);\n continue;\n }\n\n if (includes(metaInfoAttributeKeys, type)) {\n var tagName = type.substr(0, 4);\n updateAttribute(appId, options, type, newInfo[type], getTag(tags, tagName));\n continue;\n } // tags should always be an array, ignore if it isnt\n\n\n if (!isArray(newInfo[type])) {\n continue;\n }\n\n var _updateTag = updateTag(appId, options, type, newInfo[type], getTag(tags, 'head'), getTag(tags, 'body')),\n oldTags = _updateTag.oldTags,\n newTags = _updateTag.newTags;\n\n if (newTags.length) {\n tagsAdded[type] = newTags;\n tagsRemoved[type] = oldTags;\n }\n }\n\n return {\n tagsAdded: tagsAdded,\n tagsRemoved: tagsRemoved\n };\n}\n\nvar appsMetaInfo;\nfunction addApp(rootVm, appId, options) {\n return {\n set: function set(metaInfo) {\n return setMetaInfo(rootVm, appId, options, metaInfo);\n },\n remove: function remove() {\n return removeMetaInfo(rootVm, appId, options);\n }\n };\n}\nfunction setMetaInfo(rootVm, appId, options, metaInfo) {\n // if a vm exists _and_ its mounted then immediately update\n if (rootVm && rootVm.$el) {\n return updateClientMetaInfo(appId, options, metaInfo);\n } // store for later, the info\n // will be set on the first refresh\n\n\n appsMetaInfo = appsMetaInfo || {};\n appsMetaInfo[appId] = metaInfo;\n}\nfunction removeMetaInfo(rootVm, appId, options) {\n if (rootVm && rootVm.$el) {\n var tags = {};\n\n var _iterator = _createForOfIteratorHelper(metaInfoAttributeKeys),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var type = _step.value;\n var tagName = type.substr(0, 4);\n updateAttribute(appId, options, type, {}, getTag(tags, tagName));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return removeElementsByAppId(options, appId);\n }\n\n if (appsMetaInfo[appId]) {\n delete appsMetaInfo[appId];\n clearAppsMetaInfo();\n }\n}\nfunction getAppsMetaInfo() {\n return appsMetaInfo;\n}\nfunction clearAppsMetaInfo(force) {\n if (force || !Object.keys(appsMetaInfo).length) {\n appsMetaInfo = undefined;\n }\n}\n\n/**\n * Returns the correct meta info for the given component\n * (child components will overwrite parent meta info)\n *\n * @param {Object} component - the Vue instance to get meta info from\n * @return {Object} - returned meta info\n */\n\nfunction getMetaInfo(options, info, escapeSequences, component) {\n options = options || {};\n escapeSequences = escapeSequences || [];\n var _options = options,\n tagIDKeyName = _options.tagIDKeyName; // Remove all \"template\" tags from meta\n // backup the title chunk in case user wants access to it\n\n if (info.title) {\n info.titleChunk = info.title;\n } // replace title with populated template\n\n\n if (info.titleTemplate && info.titleTemplate !== '%s') {\n applyTemplate({\n component: component,\n contentKeyName: 'title'\n }, info, info.titleTemplate, info.titleChunk || '');\n } // convert base tag to an array so it can be handled the same way\n // as the other tags\n\n\n if (info.base) {\n info.base = Object.keys(info.base).length ? [info.base] : [];\n }\n\n if (info.meta) {\n // remove meta items with duplicate vmid's\n info.meta = info.meta.filter(function (metaItem, index, arr) {\n var hasVmid = !!metaItem[tagIDKeyName];\n\n if (!hasVmid) {\n return true;\n }\n\n var isFirstItemForVmid = index === findIndex(arr, function (item) {\n return item[tagIDKeyName] === metaItem[tagIDKeyName];\n });\n return isFirstItemForVmid;\n }); // apply templates if needed\n\n info.meta.forEach(function (metaObject) {\n return applyTemplate(options, metaObject);\n });\n }\n\n return escapeMetaInfo(options, info, escapeSequences);\n}\n\n/**\n * When called, will update the current meta info with new meta info.\n * Useful when updating meta info as the result of an asynchronous\n * action that resolves after the initial render takes place.\n *\n * Credit to [Sébastien Chopin](https://github.com/Atinux) for the suggestion\n * to implement this method.\n *\n * @return {Object} - new meta info\n */\n\nfunction refresh(rootVm, options) {\n options = options || {}; // make sure vue-meta was initiated\n\n if (!rootVm[rootConfigKey]) {\n showWarningNotSupported();\n return {};\n } // collect & aggregate all metaInfo $options\n\n\n var rawInfo = getComponentMetaInfo(options, rootVm);\n var metaInfo = getMetaInfo(options, rawInfo, clientSequences, rootVm);\n var appId = rootVm[rootConfigKey].appId;\n var tags = updateClientMetaInfo(appId, options, metaInfo); // emit \"event\" with new info\n\n if (tags && isFunction(metaInfo.changed)) {\n metaInfo.changed(metaInfo, tags.tagsAdded, tags.tagsRemoved);\n tags = {\n addedTags: tags.tagsAdded,\n removedTags: tags.tagsRemoved\n };\n }\n\n var appsMetaInfo = getAppsMetaInfo();\n\n if (appsMetaInfo) {\n for (var additionalAppId in appsMetaInfo) {\n updateClientMetaInfo(additionalAppId, options, appsMetaInfo[additionalAppId]);\n delete appsMetaInfo[additionalAppId];\n }\n\n clearAppsMetaInfo(true);\n }\n\n return {\n vm: rootVm,\n metaInfo: metaInfo,\n // eslint-disable-line object-shorthand\n tags: tags\n };\n}\n\n/**\n * Generates tag attributes for use on the server.\n *\n * @param {('bodyAttrs'|'htmlAttrs'|'headAttrs')} type - the type of attributes to generate\n * @param {Object} data - the attributes to generate\n * @return {Object} - the attribute generator\n */\n\nfunction attributeGenerator(options, type, data, _ref) {\n var addSsrAttribute = _ref.addSsrAttribute;\n\n var _ref2 = options || {},\n attribute = _ref2.attribute,\n ssrAttribute = _ref2.ssrAttribute;\n\n var attributeStr = '';\n\n for (var attr in data) {\n var attrData = data[attr];\n var attrValues = [];\n\n for (var appId in attrData) {\n attrValues.push.apply(attrValues, _toConsumableArray([].concat(attrData[appId])));\n }\n\n if (attrValues.length) {\n attributeStr += booleanHtmlAttributes.includes(attr) && attrValues.some(Boolean) ? \"\".concat(attr) : \"\".concat(attr, \"=\\\"\").concat(attrValues.join(' '), \"\\\"\");\n attributeStr += ' ';\n }\n }\n\n if (attributeStr) {\n attributeStr += \"\".concat(attribute, \"=\\\"\").concat(encodeURI(JSON.stringify(data)), \"\\\"\");\n }\n\n if (type === 'htmlAttrs' && addSsrAttribute) {\n return \"\".concat(ssrAttribute).concat(attributeStr ? ' ' : '').concat(attributeStr);\n }\n\n return attributeStr;\n}\n\n/**\n * Generates title output for the server\n *\n * @param {'title'} type - the string \"title\"\n * @param {String} data - the title text\n * @return {Object} - the title generator\n */\nfunction titleGenerator(options, type, data, generatorOptions) {\n var _ref = generatorOptions || {},\n ln = _ref.ln;\n\n if (!data) {\n return '';\n }\n\n return \"<\".concat(type, \">\").concat(data, \"\").concat(ln ? '\\n' : '');\n}\n\n/**\n * Generates meta, base, link, style, script, noscript tags for use on the server\n *\n * @param {('meta'|'base'|'link'|'style'|'script'|'noscript')} the name of the tag\n * @param {(Array|Object)} tags - an array of tag objects or a single object in case of base\n * @return {Object} - the tag generator\n */\n\nfunction tagGenerator(options, type, tags, generatorOptions) {\n var _ref = options || {},\n ssrAppId = _ref.ssrAppId,\n attribute = _ref.attribute,\n tagIDKeyName = _ref.tagIDKeyName;\n\n var _ref2 = generatorOptions || {},\n appId = _ref2.appId,\n _ref2$isSSR = _ref2.isSSR,\n isSSR = _ref2$isSSR === void 0 ? true : _ref2$isSSR,\n _ref2$body = _ref2.body,\n body = _ref2$body === void 0 ? false : _ref2$body,\n _ref2$pbody = _ref2.pbody,\n pbody = _ref2$pbody === void 0 ? false : _ref2$pbody,\n _ref2$ln = _ref2.ln,\n ln = _ref2$ln === void 0 ? false : _ref2$ln;\n\n var dataAttributes = [tagIDKeyName].concat(_toConsumableArray(commonDataAttributes));\n\n if (!tags || !tags.length) {\n return '';\n } // build a string containing all tags of this type\n\n\n return tags.reduce(function (tagsStr, tag) {\n if (tag.skip) {\n return tagsStr;\n }\n\n var tagKeys = Object.keys(tag);\n\n if (tagKeys.length === 0) {\n return tagsStr; // Bail on empty tag object\n }\n\n if (Boolean(tag.body) !== body || Boolean(tag.pbody) !== pbody) {\n return tagsStr;\n }\n\n var attrs = tag.once ? '' : \" \".concat(attribute, \"=\\\"\").concat(appId || (isSSR === false ? '1' : ssrAppId), \"\\\"\"); // build a string containing all attributes of this tag\n\n for (var attr in tag) {\n // these attributes are treated as children on the tag\n if (tagAttributeAsInnerContent.includes(attr) || tagProperties.includes(attr)) {\n continue;\n }\n\n if (attr === 'callback') {\n attrs += ' onload=\"this.__vm_l=1\"';\n continue;\n } // these form the attribute list for this tag\n\n\n var prefix = '';\n\n if (dataAttributes.includes(attr)) {\n prefix = 'data-';\n }\n\n var isBooleanAttr = !prefix && booleanHtmlAttributes.includes(attr);\n\n if (isBooleanAttr && !tag[attr]) {\n continue;\n }\n\n attrs += \" \".concat(prefix).concat(attr) + (isBooleanAttr ? '' : \"=\\\"\".concat(tag[attr], \"\\\"\"));\n }\n\n var json = '';\n\n if (tag.json) {\n json = JSON.stringify(tag.json);\n } // grab child content from one of these attributes, if possible\n\n\n var content = tag.innerHTML || tag.cssText || json; // generate tag exactly without any other redundant attribute\n // these tags have no end tag\n\n var hasEndTag = !tagsWithoutEndTag.includes(type); // these tag types will have content inserted\n\n var hasContent = hasEndTag && tagsWithInnerContent.includes(type); // the final string for this specific tag\n\n return \"\".concat(tagsStr, \"<\").concat(type).concat(attrs).concat(!hasContent && hasEndTag ? '/' : '', \">\") + (hasContent ? \"\".concat(content, \"\") : '') + (ln ? '\\n' : '');\n }, '');\n}\n\n/**\n * Converts a meta info property to one that can be stringified on the server\n *\n * @param {String} type - the type of data to convert\n * @param {(String|Object|Array)} data - the data value\n * @return {Object} - the new injector\n */\n\nfunction generateServerInjector(options, metaInfo, globalInjectOptions) {\n var serverInjector = {\n data: metaInfo,\n extraData: undefined,\n addInfo: function addInfo(appId, metaInfo) {\n this.extraData = this.extraData || {};\n this.extraData[appId] = metaInfo;\n },\n callInjectors: function callInjectors(opts) {\n var m = this.injectors; // only call title for the head\n\n return (opts.body || opts.pbody ? '' : m.title.text(opts)) + m.meta.text(opts) + m.base.text(opts) + m.link.text(opts) + m.style.text(opts) + m.script.text(opts) + m.noscript.text(opts);\n },\n injectors: {\n head: function head(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln\n }));\n },\n bodyPrepend: function bodyPrepend(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln,\n pbody: true\n }));\n },\n bodyAppend: function bodyAppend(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln,\n body: true\n }));\n }\n }\n };\n\n var _loop = function _loop(type) {\n if (metaInfoOptionKeys.includes(type)) {\n return \"continue\";\n }\n\n serverInjector.injectors[type] = {\n text: function text(injectOptions) {\n var addSsrAttribute = injectOptions === true;\n injectOptions = _objectSpread2(_objectSpread2({\n addSsrAttribute: addSsrAttribute\n }, globalInjectOptions), injectOptions);\n\n if (type === 'title') {\n return titleGenerator(options, type, serverInjector.data[type], injectOptions);\n }\n\n if (metaInfoAttributeKeys.includes(type)) {\n var attributeData = {};\n var data = serverInjector.data[type];\n\n if (data) {\n var appId = injectOptions.isSSR === false ? '1' : options.ssrAppId;\n\n for (var attr in data) {\n attributeData[attr] = _defineProperty({}, appId, data[attr]);\n }\n }\n\n if (serverInjector.extraData) {\n for (var _appId in serverInjector.extraData) {\n var _data = serverInjector.extraData[_appId][type];\n\n if (_data) {\n for (var _attr in _data) {\n attributeData[_attr] = _objectSpread2(_objectSpread2({}, attributeData[_attr]), {}, _defineProperty({}, _appId, _data[_attr]));\n }\n }\n }\n }\n\n return attributeGenerator(options, type, attributeData, injectOptions);\n }\n\n var str = tagGenerator(options, type, serverInjector.data[type], injectOptions);\n\n if (serverInjector.extraData) {\n for (var _appId2 in serverInjector.extraData) {\n var _data2 = serverInjector.extraData[_appId2][type];\n var extraStr = tagGenerator(options, type, _data2, _objectSpread2({\n appId: _appId2\n }, injectOptions));\n str = \"\".concat(str).concat(extraStr);\n }\n }\n\n return str;\n }\n };\n };\n\n for (var type in defaultInfo) {\n var _ret = _loop(type);\n\n if (_ret === \"continue\") continue;\n }\n\n return serverInjector;\n}\n\n/**\n * Converts the state of the meta info object such that each item\n * can be compiled to a tag string on the server\n *\n * @vm {Object} - Vue instance - ideally the root component\n * @return {Object} - server meta info with `toString` methods\n */\n\nfunction inject(rootVm, options, injectOptions) {\n // make sure vue-meta was initiated\n if (!rootVm[rootConfigKey]) {\n showWarningNotSupported();\n return {};\n } // collect & aggregate all metaInfo $options\n\n\n var rawInfo = getComponentMetaInfo(options, rootVm);\n var metaInfo = getMetaInfo(options, rawInfo, serverSequences, rootVm); // generate server injector\n\n var serverInjector = generateServerInjector(options, metaInfo, injectOptions); // add meta info from additional apps\n\n var appsMetaInfo = getAppsMetaInfo();\n\n if (appsMetaInfo) {\n for (var additionalAppId in appsMetaInfo) {\n serverInjector.addInfo(additionalAppId, appsMetaInfo[additionalAppId]);\n delete appsMetaInfo[additionalAppId];\n }\n\n clearAppsMetaInfo(true);\n }\n\n return serverInjector.injectors;\n}\n\nfunction $meta(options) {\n options = options || {};\n /**\n * Returns an injector for server-side rendering.\n * @this {Object} - the Vue instance (a root component)\n * @return {Object} - injector\n */\n\n var $root = this.$root;\n return {\n getOptions: function getOptions$1() {\n return getOptions(options);\n },\n setOptions: function setOptions(newOptions) {\n var refreshNavKey = 'refreshOnceOnNavigation';\n\n if (newOptions && newOptions[refreshNavKey]) {\n options.refreshOnceOnNavigation = !!newOptions[refreshNavKey];\n addNavGuards($root);\n }\n\n var debounceWaitKey = 'debounceWait';\n\n if (newOptions && debounceWaitKey in newOptions) {\n var debounceWait = parseInt(newOptions[debounceWaitKey]);\n\n if (!isNaN(debounceWait)) {\n options.debounceWait = debounceWait;\n }\n }\n\n var waitOnDestroyedKey = 'waitOnDestroyed';\n\n if (newOptions && waitOnDestroyedKey in newOptions) {\n options.waitOnDestroyed = !!newOptions[waitOnDestroyedKey];\n }\n },\n refresh: function refresh$1() {\n return refresh($root, options);\n },\n inject: function inject$1(injectOptions) {\n return inject($root, options, injectOptions) ;\n },\n pause: function pause$1() {\n return pause($root);\n },\n resume: function resume$1() {\n return resume($root);\n },\n addApp: function addApp$1(appId) {\n return addApp($root, appId, options);\n }\n };\n}\n\nfunction generate(rawInfo, options) {\n options = setOptions(options);\n var metaInfo = getMetaInfo(options, rawInfo, serverSequences);\n var serverInjector = generateServerInjector(options, metaInfo);\n return serverInjector.injectors;\n}\n\n/**\n * Plugin install function.\n * @param {Function} Vue - the Vue constructor.\n */\n\nfunction install(Vue, options) {\n if (Vue.__vuemeta_installed) {\n return;\n }\n\n Vue.__vuemeta_installed = true;\n options = setOptions(options);\n\n Vue.prototype.$meta = function () {\n return $meta.call(this, options);\n };\n\n Vue.mixin(createMixin(Vue, options));\n}\n\nvar index = {\n version: version,\n install: install,\n generate: function generate$1(metaInfo, options) {\n return generate(metaInfo, options) ;\n },\n hasMetaInfo: hasMetaInfo\n};\n\nexport default index;\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\nimport 'core-js/modules/es.object.to-string';\nimport 'core-js/modules/es.regexp.to-string';\nimport 'core-js/modules/es.array.map';\nimport 'core-js/modules/es.array.index-of';\nimport 'core-js/modules/es.function.name';\nimport 'core-js/modules/es.array.concat';\nimport 'core-js/modules/es.array.filter';\nimport 'core-js/modules/es.array.find';\nimport 'core-js/modules/es.array.find-index';\nimport 'core-js/modules/es.array.includes';\nimport 'core-js/modules/es.array.slice';\nimport 'core-js/modules/es.array.some';\nimport 'core-js/modules/es.number.constructor';\nimport 'core-js/modules/es.regexp.constructor';\nimport 'core-js/modules/es.regexp.exec';\nimport 'core-js/modules/es.string.includes';\nimport 'core-js/modules/es.string.starts-with';\nimport 'core-js/modules/es.string.trim';\nimport 'core-js/modules/web.url.to-json';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport PhoneNumber from 'awesome-phonenumber';\n\n// Array of country objects for the flag dropdown.\n// Here is the criteria for the plugin to support a given country/territory\n// - It has an iso2 code: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n// - It has it's own country calling code (it is not a sub-region of another country): https://en.wikipedia.org/wiki/List_of_country_calling_codes\n// - It has a flag in the region-flags project: https://github.com/behdad/region-flags/tree/gh-pages/png\n// - It is supported by libphonenumber (it must be listed on this page): https://github.com/googlei18n/libphonenumber/blob/master/resources/ShortNumberMetadata.xml\n// Each country array has the following information:\n// [\n// Country name,\n// iso2 code,\n// International dial code,\n// Order (if >1 country with same dial code),\n// Area codes\n// ]\nvar allCountries = [['Afghanistan (‫افغانستان‬‎)', 'af', '93'], ['Albania (Shqipëri)', 'al', '355'], ['Algeria (‫الجزائر‬‎)', 'dz', '213'], ['American Samoa', 'as', '1684'], ['Andorra', 'ad', '376'], ['Angola', 'ao', '244'], ['Anguilla', 'ai', '1264'], ['Antigua and Barbuda', 'ag', '1268'], ['Argentina', 'ar', '54'], ['Armenia (Հայաստան)', 'am', '374'], ['Aruba', 'aw', '297'], ['Australia', 'au', '61', 0], ['Austria (Österreich)', 'at', '43'], ['Azerbaijan (Azərbaycan)', 'az', '994'], ['Bahamas', 'bs', '1242'], ['Bahrain (‫البحرين‬‎)', 'bh', '973'], ['Bangladesh (বাংলাদেশ)', 'bd', '880'], ['Barbados', 'bb', '1246'], ['Belarus (Беларусь)', 'by', '375'], ['Belgium (België)', 'be', '32'], ['Belize', 'bz', '501'], ['Benin (Bénin)', 'bj', '229'], ['Bermuda', 'bm', '1441'], ['Bhutan (འབྲུག)', 'bt', '975'], ['Bolivia', 'bo', '591'], ['Bosnia and Herzegovina (Босна и Херцеговина)', 'ba', '387'], ['Botswana', 'bw', '267'], ['Brazil (Brasil)', 'br', '55'], ['British Indian Ocean Territory', 'io', '246'], ['British Virgin Islands', 'vg', '1284'], ['Brunei', 'bn', '673'], ['Bulgaria (България)', 'bg', '359'], ['Burkina Faso', 'bf', '226'], ['Burundi (Uburundi)', 'bi', '257'], ['Cambodia (កម្ពុជា)', 'kh', '855'], ['Cameroon (Cameroun)', 'cm', '237'], ['Canada', 'ca', '1', 1, ['204', '226', '236', '249', '250', '289', '306', '343', '365', '387', '403', '416', '418', '431', '437', '438', '450', '506', '514', '519', '548', '579', '581', '587', '604', '613', '639', '647', '672', '705', '709', '742', '778', '780', '782', '807', '819', '825', '867', '873', '902', '905']], ['Cape Verde (Kabu Verdi)', 'cv', '238'], ['Caribbean Netherlands', 'bq', '599', 1], ['Cayman Islands', 'ky', '1345'], ['Central African Republic (République centrafricaine)', 'cf', '236'], ['Chad (Tchad)', 'td', '235'], ['Chile', 'cl', '56'], ['China (中国)', 'cn', '86'], ['Christmas Island', 'cx', '61', 2], ['Cocos (Keeling) Islands', 'cc', '61', 1], ['Colombia', 'co', '57'], ['Comoros (‫جزر القمر‬‎)', 'km', '269'], ['Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)', 'cd', '243'], ['Congo (Republic) (Congo-Brazzaville)', 'cg', '242'], ['Cook Islands', 'ck', '682'], ['Costa Rica', 'cr', '506'], ['Côte d’Ivoire', 'ci', '225'], ['Croatia (Hrvatska)', 'hr', '385'], ['Cuba', 'cu', '53'], ['Curaçao', 'cw', '599', 0], ['Cyprus (Κύπρος)', 'cy', '357'], ['Czech Republic (Česká republika)', 'cz', '420'], ['Denmark (Danmark)', 'dk', '45'], ['Djibouti', 'dj', '253'], ['Dominica', 'dm', '1767'], ['Dominican Republic (República Dominicana)', 'do', '1', 2, ['809', '829', '849']], ['Ecuador', 'ec', '593'], ['Egypt (‫مصر‬‎)', 'eg', '20'], ['El Salvador', 'sv', '503'], ['Equatorial Guinea (Guinea Ecuatorial)', 'gq', '240'], ['Eritrea', 'er', '291'], ['Estonia (Eesti)', 'ee', '372'], ['Ethiopia', 'et', '251'], ['Falkland Islands (Islas Malvinas)', 'fk', '500'], ['Faroe Islands (Føroyar)', 'fo', '298'], ['Fiji', 'fj', '679'], ['Finland (Suomi)', 'fi', '358', 0], ['France', 'fr', '33'], ['French Guiana (Guyane française)', 'gf', '594'], ['French Polynesia (Polynésie française)', 'pf', '689'], ['Gabon', 'ga', '241'], ['Gambia', 'gm', '220'], ['Georgia (საქართველო)', 'ge', '995'], ['Germany (Deutschland)', 'de', '49'], ['Ghana (Gaana)', 'gh', '233'], ['Gibraltar', 'gi', '350'], ['Greece (Ελλάδα)', 'gr', '30'], ['Greenland (Kalaallit Nunaat)', 'gl', '299'], ['Grenada', 'gd', '1473'], ['Guadeloupe', 'gp', '590', 0], ['Guam', 'gu', '1671'], ['Guatemala', 'gt', '502'], ['Guernsey', 'gg', '44', 1], ['Guinea (Guinée)', 'gn', '224'], ['Guinea-Bissau (Guiné Bissau)', 'gw', '245'], ['Guyana', 'gy', '592'], ['Haiti', 'ht', '509'], ['Honduras', 'hn', '504'], ['Hong Kong (香港)', 'hk', '852'], ['Hungary (Magyarország)', 'hu', '36'], ['Iceland (Ísland)', 'is', '354'], ['India (भारत)', 'in', '91'], ['Indonesia', 'id', '62'], ['Iran (‫ایران‬‎)', 'ir', '98'], ['Iraq (‫العراق‬‎)', 'iq', '964'], ['Ireland', 'ie', '353'], ['Isle of Man', 'im', '44', 2], ['Israel (‫ישראל‬‎)', 'il', '972'], ['Italy (Italia)', 'it', '39', 0], ['Jamaica', 'jm', '1876'], ['Japan (日本)', 'jp', '81'], ['Jersey', 'je', '44', 3], ['Jordan (‫الأردن‬‎)', 'jo', '962'], ['Kazakhstan (Казахстан)', 'kz', '7', 1], ['Kenya', 'ke', '254'], ['Kiribati', 'ki', '686'], ['Kosovo', 'xk', '383'], ['Kuwait (‫الكويت‬‎)', 'kw', '965'], ['Kyrgyzstan (Кыргызстан)', 'kg', '996'], ['Laos (ລາວ)', 'la', '856'], ['Latvia (Latvija)', 'lv', '371'], ['Lebanon (‫لبنان‬‎)', 'lb', '961'], ['Lesotho', 'ls', '266'], ['Liberia', 'lr', '231'], ['Libya (‫ليبيا‬‎)', 'ly', '218'], ['Liechtenstein', 'li', '423'], ['Lithuania (Lietuva)', 'lt', '370'], ['Luxembourg', 'lu', '352'], ['Macau (澳門)', 'mo', '853'], ['Macedonia (FYROM) (Македонија)', 'mk', '389'], ['Madagascar (Madagasikara)', 'mg', '261'], ['Malawi', 'mw', '265'], ['Malaysia', 'my', '60'], ['Maldives', 'mv', '960'], ['Mali', 'ml', '223'], ['Malta', 'mt', '356'], ['Marshall Islands', 'mh', '692'], ['Martinique', 'mq', '596'], ['Mauritania (‫موريتانيا‬‎)', 'mr', '222'], ['Mauritius (Moris)', 'mu', '230'], ['Mayotte', 'yt', '262', 1], ['Mexico (México)', 'mx', '52'], ['Micronesia', 'fm', '691'], ['Moldova (Republica Moldova)', 'md', '373'], ['Monaco', 'mc', '377'], ['Mongolia (Монгол)', 'mn', '976'], ['Montenegro (Crna Gora)', 'me', '382'], ['Montserrat', 'ms', '1664'], ['Morocco (‫المغرب‬‎)', 'ma', '212', 0], ['Mozambique (Moçambique)', 'mz', '258'], ['Myanmar (Burma) (မြန်မာ)', 'mm', '95'], ['Namibia (Namibië)', 'na', '264'], ['Nauru', 'nr', '674'], ['Nepal (नेपाल)', 'np', '977'], ['Netherlands (Nederland)', 'nl', '31'], ['New Caledonia (Nouvelle-Calédonie)', 'nc', '687'], ['New Zealand', 'nz', '64'], ['Nicaragua', 'ni', '505'], ['Niger (Nijar)', 'ne', '227'], ['Nigeria', 'ng', '234'], ['Niue', 'nu', '683'], ['Norfolk Island', 'nf', '672'], ['North Korea (조선 민주주의 인민 공화국)', 'kp', '850'], ['Northern Mariana Islands', 'mp', '1670'], ['Norway (Norge)', 'no', '47', 0], ['Oman (‫عُمان‬‎)', 'om', '968'], ['Pakistan (‫پاکستان‬‎)', 'pk', '92'], ['Palau', 'pw', '680'], ['Palestine (‫فلسطين‬‎)', 'ps', '970'], ['Panama (Panamá)', 'pa', '507'], ['Papua New Guinea', 'pg', '675'], ['Paraguay', 'py', '595'], ['Peru (Perú)', 'pe', '51'], ['Philippines', 'ph', '63'], ['Poland (Polska)', 'pl', '48'], ['Portugal', 'pt', '351'], ['Puerto Rico', 'pr', '1', 3, ['787', '939']], ['Qatar (‫قطر‬‎)', 'qa', '974'], ['Réunion (La Réunion)', 're', '262', 0], ['Romania (România)', 'ro', '40'], ['Russia (Россия)', 'ru', '7', 0], ['Rwanda', 'rw', '250'], ['Saint Barthélemy', 'bl', '590', 1], ['Saint Helena', 'sh', '290'], ['Saint Kitts and Nevis', 'kn', '1869'], ['Saint Lucia', 'lc', '1758'], ['Saint Martin (Saint-Martin (partie française))', 'mf', '590', 2], ['Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)', 'pm', '508'], ['Saint Vincent and the Grenadines', 'vc', '1784'], ['Samoa', 'ws', '685'], ['San Marino', 'sm', '378'], ['São Tomé and Príncipe (São Tomé e Príncipe)', 'st', '239'], ['Saudi Arabia (‫المملكة العربية السعودية‬‎)', 'sa', '966'], ['Senegal (Sénégal)', 'sn', '221'], ['Serbia (Србија)', 'rs', '381'], ['Seychelles', 'sc', '248'], ['Sierra Leone', 'sl', '232'], ['Singapore', 'sg', '65'], ['Sint Maarten', 'sx', '1721'], ['Slovakia (Slovensko)', 'sk', '421'], ['Slovenia (Slovenija)', 'si', '386'], ['Solomon Islands', 'sb', '677'], ['Somalia (Soomaaliya)', 'so', '252'], ['South Africa', 'za', '27'], ['South Korea (대한민국)', 'kr', '82'], ['South Sudan (‫جنوب السودان‬‎)', 'ss', '211'], ['Spain (España)', 'es', '34'], ['Sri Lanka (ශ්‍රී ලංකාව)', 'lk', '94'], ['Sudan (‫السودان‬‎)', 'sd', '249'], ['Suriname', 'sr', '597'], ['Svalbard and Jan Mayen', 'sj', '47', 1], ['Swaziland', 'sz', '268'], ['Sweden (Sverige)', 'se', '46'], ['Switzerland (Schweiz)', 'ch', '41'], ['Syria (‫سوريا‬‎)', 'sy', '963'], ['Taiwan (台灣)', 'tw', '886'], ['Tajikistan', 'tj', '992'], ['Tanzania', 'tz', '255'], ['Thailand (ไทย)', 'th', '66'], ['Timor-Leste', 'tl', '670'], ['Togo', 'tg', '228'], ['Tokelau', 'tk', '690'], ['Tonga', 'to', '676'], ['Trinidad and Tobago', 'tt', '1868'], ['Tunisia (‫تونس‬‎)', 'tn', '216'], ['Turkey (Türkiye)', 'tr', '90'], ['Turkmenistan', 'tm', '993'], ['Turks and Caicos Islands', 'tc', '1649'], ['Tuvalu', 'tv', '688'], ['U.S. Virgin Islands', 'vi', '1340'], ['Uganda', 'ug', '256'], ['Ukraine (Україна)', 'ua', '380'], ['United Arab Emirates (‫الإمارات العربية المتحدة‬‎)', 'ae', '971'], ['United Kingdom', 'gb', '44', 0], ['United States', 'us', '1', 0], ['Uruguay', 'uy', '598'], ['Uzbekistan (Oʻzbekiston)', 'uz', '998'], ['Vanuatu', 'vu', '678'], ['Vatican City (Città del Vaticano)', 'va', '39', 1], ['Venezuela', 've', '58'], ['Vietnam (Việt Nam)', 'vn', '84'], ['Wallis and Futuna (Wallis-et-Futuna)', 'wf', '681'], ['Western Sahara (‫الصحراء الغربية‬‎)', 'eh', '212', 1], ['Yemen (‫اليمن‬‎)', 'ye', '967'], ['Zambia', 'zm', '260'], ['Zimbabwe', 'zw', '263'], ['Åland Islands', 'ax', '358', 1]];\nvar allCountries$1 = allCountries.map(function (country) {\n return {\n name: country[0],\n iso2: country[1].toUpperCase(),\n dialCode: country[2],\n priority: country[3] || 0,\n areaCodes: country[4] || null\n };\n});\n\nfunction getCountry() {\n return fetch('https://ip2c.org/s').then(function (response) {\n return response.text();\n }).then(function (response) {\n var result = (response || '').toString();\n\n if (!result || result[0] !== '1') {\n throw new Error('unable to fetch the country');\n }\n\n return result.substr(2, 2);\n });\n} // Credits: http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/\n\nfunction setCaretPosition(ctrl, pos) {\n // Modern browsers\n if (ctrl.setSelectionRange) {\n ctrl.focus();\n ctrl.setSelectionRange(pos, pos); // IE8 and below\n } else if (ctrl.createTextRange) {\n var range = ctrl.createTextRange();\n range.collapse(true);\n range.moveEnd('character', pos);\n range.moveStart('character', pos);\n range.select();\n }\n}\nvar defaultOptions = {\n allCountries: allCountries$1,\n autocomplete: 'on',\n autofocus: false,\n customValidate: false,\n defaultCountry: '',\n disabled: false,\n disabledFetchingCountry: false,\n dropdownOptions: {},\n dynamicPlaceholder: false,\n enabledCountryCode: false,\n enabledFlags: true,\n ignoredCountries: [],\n inputClasses: '',\n inputId: '',\n inputOptions: {},\n invalidMsg: '',\n maxLen: 25,\n mode: '',\n name: 'telephone',\n onlyCountries: [],\n placeholder: 'Enter a phone number',\n preferredCountries: [],\n readonly: false,\n required: false,\n validCharactersOnly: false,\n wrapperClasses: ''\n};\nvar utils = {\n options: _objectSpread({}, defaultOptions)\n};\n\n// Polyfill for Event.path in IE 11: https://stackoverflow.com/a/46093727\nfunction getParents(node, memo) {\n var parsedMemo = memo || [];\n var parentNode = node.parentNode;\n\n if (!parentNode) {\n return parsedMemo;\n }\n\n return getParents(parentNode, parsedMemo.concat(parentNode));\n} // Click-outside by BosNaufal: https://github.com/BosNaufal/vue-click-outside\n\n\nvar clickOutside = {\n bind: function bind(el, binding, vNode) {\n // Provided expression must evaluate to a function.\n if (typeof binding.value !== 'function') {\n var compName = vNode.context.name;\n var warn = \"[Vue-click-outside:] provided expression \".concat(binding.expression, \" is not a function, but has to be\");\n\n if (compName) {\n warn += \"Found in component \".concat(compName);\n }\n\n console.warn(warn);\n } // Define Handler and cache it on the element\n\n\n var bubble = binding.modifiers.bubble;\n\n var handler = function handler(e) {\n // Fall back to composedPath if e.path is undefined\n var path = e.path || (e.composedPath ? e.composedPath() : false) || getParents(e.target);\n\n if (bubble || path.length && !el.contains(path[0]) && el !== path[0]) {\n binding.value(e);\n }\n };\n\n el.__vueClickOutside__ = handler; // add Event Listeners\n\n document.addEventListener('click', handler);\n },\n unbind: function unbind(el) {\n // Remove Event Listeners\n document.removeEventListener('click', el.__vueClickOutside__);\n el.__vueClickOutside__ = null;\n }\n};\n\nfunction getDefault(key) {\n var value = utils.options[key];\n\n if (typeof value === 'undefined') {\n return utils.options[key];\n }\n\n return value;\n}\n\nvar script = {\n name: 'VueTelInput',\n directives: {\n clickOutside: clickOutside\n },\n props: {\n value: {\n type: String,\n default: ''\n },\n allCountries: {\n type: Array,\n default: function _default() {\n return getDefault('allCountries');\n }\n },\n autocomplete: {\n type: String,\n default: function _default() {\n return getDefault('autocomplete');\n }\n },\n autofocus: {\n type: Boolean,\n default: function _default() {\n return getDefault('autofocus');\n }\n },\n customValidate: {\n type: [Boolean, RegExp],\n default: function _default() {\n return getDefault('customValidate');\n }\n },\n defaultCountry: {\n // Default country code, ie: 'AU'\n // Will override the current country of user\n type: String,\n default: function _default() {\n return getDefault('defaultCountry');\n }\n },\n disabled: {\n type: Boolean,\n default: function _default() {\n return getDefault('disabled');\n }\n },\n disabledFetchingCountry: {\n type: Boolean,\n default: function _default() {\n return getDefault('disabledFetchingCountry');\n }\n },\n dropdownOptions: {\n type: Object,\n default: function _default() {\n return getDefault('dropdownOptions');\n }\n },\n dynamicPlaceholder: {\n type: Boolean,\n default: function _default() {\n return getDefault('dynamicPlaceholder');\n }\n },\n enabledCountryCode: {\n type: Boolean,\n default: function _default() {\n return getDefault('enabledCountryCode');\n }\n },\n enabledFlags: {\n type: Boolean,\n default: function _default() {\n return getDefault('enabledFlags');\n }\n },\n ignoredCountries: {\n type: Array,\n default: function _default() {\n return getDefault('ignoredCountries');\n }\n },\n inputClasses: {\n type: [String, Array, Object],\n default: function _default() {\n return getDefault('inputClasses');\n }\n },\n inputId: {\n type: String,\n default: function _default() {\n return getDefault('inputId');\n }\n },\n inputOptions: {\n type: Object,\n default: function _default() {\n return getDefault('inputOptions');\n }\n },\n invalidMsg: {\n type: String,\n default: function _default() {\n return getDefault('invalidMsg');\n }\n },\n maxLen: {\n type: Number,\n default: function _default() {\n return getDefault('maxLen');\n }\n },\n name: {\n type: String,\n default: function _default() {\n return getDefault('name');\n }\n },\n mode: {\n type: String,\n default: function _default() {\n return getDefault('mode');\n }\n },\n onlyCountries: {\n type: Array,\n default: function _default() {\n return getDefault('onlyCountries');\n }\n },\n placeholder: {\n type: String,\n default: function _default() {\n return getDefault('placeholder');\n }\n },\n preferredCountries: {\n type: Array,\n default: function _default() {\n return getDefault('preferredCountries');\n }\n },\n readonly: {\n type: Boolean,\n default: function _default() {\n return getDefault('readonly');\n }\n },\n required: {\n type: Boolean,\n default: function _default() {\n return getDefault('required');\n }\n },\n validCharactersOnly: {\n type: Boolean,\n default: function _default() {\n return getDefault('validCharactersOnly');\n }\n },\n wrapperClasses: {\n type: [String, Array, Object],\n default: function _default() {\n return getDefault('wrapperClasses');\n }\n }\n },\n data: function data() {\n return {\n phone: '',\n activeCountry: {\n iso2: ''\n },\n open: false,\n finishMounted: false,\n selectedIndex: null,\n typeToFindInput: '',\n typeToFindTimer: null,\n cursorPosition: 0,\n dropdownOpenDirection: 'below'\n };\n },\n computed: {\n parsedPlaceholder: function parsedPlaceholder() {\n if (!this.finishMounted) {\n return '';\n }\n\n if (this.dynamicPlaceholder) {\n var mode = this.mode || 'international';\n return PhoneNumber.getExample(this.activeCountry.iso2, 'mobile').getNumber(mode);\n }\n\n return this.placeholder;\n },\n parsedMode: function parsedMode() {\n if (this.customValidate) {\n return 'input';\n }\n\n if (this.mode) {\n if (!['international', 'national'].includes(this.mode)) {\n console.error('Invalid value of prop \"mode\"');\n } else {\n return this.mode;\n }\n }\n\n if (!this.phone || this.phone[0] !== '+') {\n return 'national';\n }\n\n return 'international';\n },\n filteredCountries: function filteredCountries() {\n var _this = this;\n\n // List countries after filtered\n if (this.onlyCountries.length) {\n return this.allCountries.filter(function (_ref) {\n var iso2 = _ref.iso2;\n return _this.onlyCountries.some(function (c) {\n return c.toUpperCase() === iso2;\n });\n });\n }\n\n if (this.ignoredCountries.length) {\n return this.allCountries.filter(function (_ref2) {\n var iso2 = _ref2.iso2;\n return !_this.ignoredCountries.includes(iso2.toUpperCase()) && !_this.ignoredCountries.includes(iso2.toLowerCase());\n });\n }\n\n return this.allCountries;\n },\n sortedCountries: function sortedCountries() {\n // Sort the list countries: from preferred countries to all countries\n var preferredCountries = this.getCountries(this.preferredCountries).map(function (country) {\n return _objectSpread({}, country, {\n preferred: true\n });\n });\n return [].concat(_toConsumableArray(preferredCountries), _toConsumableArray(this.filteredCountries));\n },\n phoneObject: function phoneObject() {\n var result = PhoneNumber(this.phone, this.activeCountry.iso2).toJSON();\n Object.assign(result, {\n isValid: result.valid,\n country: this.activeCountry\n });\n return result;\n },\n phoneText: function phoneText() {\n var key = 'input';\n\n if (this.phoneObject.valid) {\n key = this.parsedMode;\n }\n\n return this.phoneObject.number[key] || '';\n }\n },\n watch: {\n // eslint-disable-next-line func-names\n 'phoneObject.valid': function phoneObjectValid(value) {\n if (value) {\n this.phone = this.phoneText;\n }\n\n this.$emit('validate', this.phoneObject);\n this.$emit('onValidate', this.phoneObject); // Deprecated\n },\n value: function value() {\n this.phone = this.value;\n },\n open: function open(isDropdownOpened) {\n // Emit open and close events\n if (isDropdownOpened) {\n this.setDropdownPosition();\n this.$emit('open');\n } else {\n this.$emit('close');\n }\n },\n phone: function phone(newValue, oldValue) {\n var _this2 = this;\n\n var isValidCharactersOnly = this.validCharactersOnly && !this.testCharacters();\n var isCustomValidate = this.customValidate && !this.testCustomValidate();\n\n if (isValidCharactersOnly || isCustomValidate) {\n this.$nextTick(function () {\n _this2.phone = oldValue;\n });\n } else if (newValue) {\n if (newValue[0] === '+') {\n var code = PhoneNumber(newValue).getRegionCode();\n\n if (code) {\n this.activeCountry = this.findCountry(code) || this.activeCountry;\n }\n }\n } // Reset the cursor to current position if it's not the last character.\n\n\n if (this.cursorPosition < oldValue.length) {\n this.$nextTick(function () {\n setCaretPosition(_this2.$refs.input, _this2.cursorPosition);\n });\n }\n },\n activeCountry: function activeCountry(value) {\n if (value && value.iso2) {\n this.$emit('country-changed', value);\n }\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.initializeCountry().then(function () {\n if (!_this3.phone && _this3.inputOptions && _this3.inputOptions.showDialCode && _this3.activeCountry.dialCode) {\n _this3.phone = \"+\".concat(_this3.activeCountry.dialCode);\n }\n\n _this3.$emit('validate', _this3.phoneObject);\n\n _this3.$emit('onValidate', _this3.phoneObject); // Deprecated\n\n }).catch(console.error).then(function () {\n _this3.finishMounted = true;\n });\n },\n created: function created() {\n if (this.value) {\n this.phone = this.value.trim();\n }\n },\n methods: {\n initializeCountry: function initializeCountry() {\n var _this4 = this;\n\n return new Promise(function (resolve) {\n /**\n * 1. If the phone included prefix (+12), try to get the country and set it\n */\n if (_this4.phone && _this4.phone[0] === '+') {\n var activeCountry = PhoneNumber(_this4.phone).getRegionCode();\n\n if (activeCountry) {\n _this4.choose(activeCountry);\n\n resolve();\n return;\n }\n }\n /**\n * 2. Use default country if passed from parent\n */\n\n\n if (_this4.defaultCountry) {\n var defaultCountry = _this4.findCountry(_this4.defaultCountry);\n\n if (defaultCountry) {\n _this4.choose(defaultCountry);\n\n resolve();\n return;\n }\n }\n\n var fallbackCountry = _this4.findCountry(_this4.preferredCountries[0]) || _this4.filteredCountries[0];\n /**\n * 3. Check if fetching country based on user's IP is allowed, set it as the default country\n */\n\n\n if (!_this4.disabledFetchingCountry) {\n getCountry().then(function (res) {\n _this4.activeCountry = _this4.findCountry(res) || _this4.activeCountry;\n }).catch(function (error) {\n console.warn(error);\n /**\n * 4. Use the first country from preferred list (if available) or all countries list\n */\n\n _this4.choose(fallbackCountry);\n }).then(function () {\n resolve();\n });\n } else {\n /**\n * 4. Use the first country from preferred list (if available) or all countries list\n */\n _this4.choose(fallbackCountry);\n\n resolve();\n }\n });\n },\n\n /**\n * Get the list of countries from the list of iso2 code\n */\n getCountries: function getCountries() {\n var _this5 = this;\n\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return list.map(function (countryCode) {\n return _this5.findCountry(countryCode);\n }).filter(Boolean);\n },\n findCountry: function findCountry() {\n var iso = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return this.filteredCountries.find(function (country) {\n return country.iso2 === iso.toUpperCase();\n });\n },\n getItemClass: function getItemClass(index, iso2) {\n var highlighted = this.selectedIndex === index;\n var lastPreferred = index === this.preferredCountries.length - 1;\n var preferred = this.preferredCountries.some(function (c) {\n return c.toUpperCase() === iso2;\n });\n return {\n highlighted: highlighted,\n 'last-preferred': lastPreferred,\n preferred: preferred\n };\n },\n choose: function choose(country) {\n var toEmitInputEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var parsedCountry = country;\n\n if (typeof parsedCountry === 'string') {\n parsedCountry = this.findCountry(parsedCountry);\n }\n\n if (!parsedCountry) {\n return;\n }\n\n this.activeCountry = parsedCountry || this.activeCountry || {};\n\n if (this.phone && this.phone[0] === '+' && this.activeCountry.iso2 && this.phoneObject.number.national) {\n // Attach the current phone number with the newly selected country\n this.phone = PhoneNumber(this.phoneObject.number.national, this.activeCountry.iso2).getNumber('international');\n } else if (this.inputOptions && this.inputOptions.showDialCode && parsedCountry) {\n // Reset phone if the showDialCode is set\n this.phone = \"+\".concat(parsedCountry.dialCode);\n }\n\n if (toEmitInputEvent) {\n this.$emit('input', this.phoneText, this.phoneObject);\n this.$emit('onInput', this.phoneObject); // Deprecated\n }\n },\n testCharacters: function testCharacters() {\n var re = /^[()\\-+0-9\\s]*$/;\n return re.test(this.phone);\n },\n testCustomValidate: function testCustomValidate() {\n return this.customValidate instanceof RegExp ? this.customValidate.test(this.phone) : false;\n },\n onInput: function onInput(e) {\n if (this.validCharactersOnly && !this.testCharacters()) {\n return;\n }\n\n if (this.customValidate && !this.testCustomValidate()) {\n return;\n }\n\n this.$refs.input.setCustomValidity(this.phoneObject.valid ? '' : this.invalidMsg); // Returns response.number to assign it to v-model (if being used)\n // Returns full response for cases @input is used\n // and parent wants to return the whole response.\n\n this.$emit('input', this.phoneText, this.phoneObject);\n this.$emit('onInput', this.phoneObject); // Deprecated\n // Keep the current cursor position just in case the input reformatted\n // and it gets moved to the last character.\n\n if (e && e.target) {\n this.cursorPosition = e.target.selectionStart;\n }\n },\n onBlur: function onBlur() {\n this.$emit('blur');\n this.$emit('onBlur'); // Deprecated\n },\n onFocus: function onFocus() {\n this.$emit('focus');\n },\n onEnter: function onEnter() {\n this.$emit('enter');\n this.$emit('onEnter'); // Deprecated\n },\n onSpace: function onSpace() {\n this.$emit('space');\n this.$emit('onSpace'); // Deprecated\n },\n focus: function focus() {\n this.$refs.input.focus();\n },\n toggleDropdown: function toggleDropdown() {\n if (this.disabled) {\n return;\n }\n\n this.open = !this.open;\n },\n clickedOutside: function clickedOutside() {\n this.open = false;\n },\n keyboardNav: function keyboardNav(e) {\n var _this6 = this;\n\n if (e.keyCode === 40) {\n // down arrow\n e.preventDefault();\n this.open = true;\n\n if (this.selectedIndex === null) {\n this.selectedIndex = 0;\n } else {\n this.selectedIndex = Math.min(this.sortedCountries.length - 1, this.selectedIndex + 1);\n }\n\n var selEle = this.$refs.list.children[this.selectedIndex];\n\n if (selEle.offsetTop + selEle.clientHeight > this.$refs.list.scrollTop + this.$refs.list.clientHeight) {\n this.$refs.list.scrollTop = selEle.offsetTop - this.$refs.list.clientHeight + selEle.clientHeight;\n }\n } else if (e.keyCode === 38) {\n // up arrow\n e.preventDefault();\n this.open = true;\n\n if (this.selectedIndex === null) {\n this.selectedIndex = this.sortedCountries.length - 1;\n } else {\n this.selectedIndex = Math.max(0, this.selectedIndex - 1);\n }\n\n var _selEle = this.$refs.list.children[this.selectedIndex];\n\n if (_selEle.offsetTop < this.$refs.list.scrollTop) {\n this.$refs.list.scrollTop = _selEle.offsetTop;\n }\n } else if (e.keyCode === 13) {\n // enter key\n if (this.selectedIndex !== null) {\n this.choose(this.sortedCountries[this.selectedIndex], true);\n }\n\n this.open = !this.open;\n } else {\n // typing a country's name\n this.typeToFindInput += e.key;\n clearTimeout(this.typeToFindTimer);\n this.typeToFindTimer = setTimeout(function () {\n _this6.typeToFindInput = '';\n }, 700); // don't include preferred countries so we jump to the right place in the alphabet\n\n var typedCountryI = this.sortedCountries.slice(this.preferredCountries.length).findIndex(function (c) {\n return c.name.toLowerCase().startsWith(_this6.typeToFindInput);\n });\n\n if (typedCountryI >= 0) {\n this.selectedIndex = this.preferredCountries.length + typedCountryI;\n var _selEle2 = this.$refs.list.children[this.selectedIndex];\n var needToScrollTop = _selEle2.offsetTop < this.$refs.list.scrollTop;\n var needToScrollBottom = _selEle2.offsetTop + _selEle2.clientHeight > this.$refs.list.scrollTop + this.$refs.list.clientHeight;\n\n if (needToScrollTop || needToScrollBottom) {\n this.$refs.list.scrollTop = _selEle2.offsetTop - this.$refs.list.clientHeight / 2;\n }\n }\n }\n },\n reset: function reset() {\n this.selectedIndex = this.sortedCountries.map(function (c) {\n return c.iso2;\n }).indexOf(this.activeCountry.iso2);\n this.open = false;\n },\n setDropdownPosition: function setDropdownPosition() {\n var spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom;\n var hasEnoughSpaceBelow = spaceBelow > 200;\n\n if (hasEnoughSpaceBelow) {\n this.dropdownOpenDirection = 'below';\n } else {\n this.dropdownOpenDirection = 'above';\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 () {\n style.call(this, createInjectorShadow(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\nvar normalizeComponent_1 = normalizeComponent;\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\nvar HEAD;\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n\n if (HEAD === undefined) {\n HEAD = document.head || document.getElementsByTagName('head')[0];\n }\n\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nvar browser = createInjector;\n\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 class: ['vue-tel-input', _vm.wrapperClasses, {\n disabled: _vm.disabled\n }]\n }, [_c('div', {\n directives: [{\n name: \"click-outside\",\n rawName: \"v-click-outside\",\n value: _vm.clickedOutside,\n expression: \"clickedOutside\"\n }],\n class: ['vti__dropdown', {\n open: _vm.open\n }],\n attrs: {\n \"tabindex\": _vm.dropdownOptions && _vm.dropdownOptions.tabindex ? _vm.dropdownOptions.tabindex : 0\n },\n on: {\n \"keydown\": [_vm.keyboardNav, function ($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n return _vm.reset($event);\n }],\n \"click\": _vm.toggleDropdown\n }\n }, [_c('span', {\n staticClass: \"vti__selection\"\n }, [_vm.enabledFlags ? _c('div', {\n class: ['vti__flag', _vm.activeCountry.iso2.toLowerCase()]\n }) : _vm._e(), _vm._v(\" \"), _vm.enabledCountryCode ? _c('span', {\n staticClass: \"vti__country-code\"\n }, [_vm._v(\"\\n +\" + _vm._s(_vm.activeCountry.dialCode) + \"\\n \")]) : _vm._e(), _vm._v(\" \"), _vm._t(\"arrow-icon\", [_c('span', {\n staticClass: \"vti__dropdown-arrow\"\n }, [_vm._v(_vm._s(_vm.open ? \"▲\" : \"▼\"))])], {\n \"open\": _vm.open\n })], 2), _vm._v(\" \"), _c('ul', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.open,\n expression: \"open\"\n }],\n ref: \"list\",\n staticClass: \"vti__dropdown-list\",\n class: _vm.dropdownOpenDirection\n }, _vm._l(_vm.sortedCountries, function (pb, index) {\n return _c('li', {\n key: pb.iso2 + (pb.preferred ? '-preferred' : ''),\n class: ['vti__dropdown-item', _vm.getItemClass(index, pb.iso2)],\n on: {\n \"click\": function click($event) {\n return _vm.choose(pb, true);\n },\n \"mousemove\": function mousemove($event) {\n _vm.selectedIndex = index;\n }\n }\n }, [_vm.enabledFlags ? _c('div', {\n class: ['vti__flag', pb.iso2.toLowerCase()]\n }) : _vm._e(), _vm._v(\" \"), _c('strong', [_vm._v(_vm._s(pb.name))]), _vm._v(\" \"), _vm.dropdownOptions && !_vm.dropdownOptions.disabledDialCode ? _c('span', [_vm._v(\"\\n +\" + _vm._s(pb.dialCode) + \"\\n \")]) : _vm._e()]);\n }), 0)]), _vm._v(\" \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.phone,\n expression: \"phone\"\n }],\n ref: \"input\",\n class: ['vti__input', _vm.inputClasses],\n attrs: {\n \"type\": \"tel\",\n \"autocomplete\": _vm.autocomplete,\n \"autofocus\": _vm.autofocus,\n \"disabled\": _vm.disabled,\n \"id\": _vm.inputId,\n \"maxlength\": _vm.maxLen,\n \"name\": _vm.name,\n \"placeholder\": _vm.parsedPlaceholder,\n \"readonly\": _vm.readonly,\n \"required\": _vm.required,\n \"tabindex\": _vm.inputOptions && _vm.inputOptions.tabindex ? _vm.inputOptions.tabindex : 0\n },\n domProps: {\n \"value\": _vm.phone\n },\n on: {\n \"blur\": _vm.onBlur,\n \"focus\": _vm.onFocus,\n \"input\": [function ($event) {\n if ($event.target.composing) {\n return;\n }\n\n _vm.phone = $event.target.value;\n }, _vm.onInput],\n \"keyup\": [function ($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) {\n return null;\n }\n\n return _vm.onEnter($event);\n }, function ($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"space\", 32, $event.key, [\" \", \"Spacebar\"])) {\n return null;\n }\n\n return _vm.onSpace($event);\n }]\n }\n })]);\n};\n\nvar __vue_staticRenderFns__ = [];\n/* style */\n\nvar __vue_inject_styles__ = function __vue_inject_styles__(inject) {\n if (!inject) return;\n inject(\"data-v-f3778b7e_0\", {\n source: \".vti__flag{width:20px}.vti__flag.be{width:18px}.vti__flag.ch{width:15px}.vti__flag.mc{width:19px}.vti__flag.ne{width:18px}.vti__flag.np{width:13px}.vti__flag.va{width:15px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.vti__flag{background-size:5630px 15px}}.vti__flag.ac{height:10px;background-position:0 0}.vti__flag.ad{height:14px;background-position:-22px 0}.vti__flag.ae{height:10px;background-position:-44px 0}.vti__flag.af{height:14px;background-position:-66px 0}.vti__flag.ag{height:14px;background-position:-88px 0}.vti__flag.ai{height:10px;background-position:-110px 0}.vti__flag.al{height:15px;background-position:-132px 0}.vti__flag.am{height:10px;background-position:-154px 0}.vti__flag.ao{height:14px;background-position:-176px 0}.vti__flag.aq{height:14px;background-position:-198px 0}.vti__flag.ar{height:13px;background-position:-220px 0}.vti__flag.as{height:10px;background-position:-242px 0}.vti__flag.at{height:14px;background-position:-264px 0}.vti__flag.au{height:10px;background-position:-286px 0}.vti__flag.aw{height:14px;background-position:-308px 0}.vti__flag.ax{height:13px;background-position:-330px 0}.vti__flag.az{height:10px;background-position:-352px 0}.vti__flag.ba{height:10px;background-position:-374px 0}.vti__flag.bb{height:14px;background-position:-396px 0}.vti__flag.bd{height:12px;background-position:-418px 0}.vti__flag.be{height:15px;background-position:-440px 0}.vti__flag.bf{height:14px;background-position:-460px 0}.vti__flag.bg{height:12px;background-position:-482px 0}.vti__flag.bh{height:12px;background-position:-504px 0}.vti__flag.bi{height:12px;background-position:-526px 0}.vti__flag.bj{height:14px;background-position:-548px 0}.vti__flag.bl{height:14px;background-position:-570px 0}.vti__flag.bm{height:10px;background-position:-592px 0}.vti__flag.bn{height:10px;background-position:-614px 0}.vti__flag.bo{height:14px;background-position:-636px 0}.vti__flag.bq{height:14px;background-position:-658px 0}.vti__flag.br{height:14px;background-position:-680px 0}.vti__flag.bs{height:10px;background-position:-702px 0}.vti__flag.bt{height:14px;background-position:-724px 0}.vti__flag.bv{height:15px;background-position:-746px 0}.vti__flag.bw{height:14px;background-position:-768px 0}.vti__flag.by{height:10px;background-position:-790px 0}.vti__flag.bz{height:14px;background-position:-812px 0}.vti__flag.ca{height:10px;background-position:-834px 0}.vti__flag.cc{height:10px;background-position:-856px 0}.vti__flag.cd{height:15px;background-position:-878px 0}.vti__flag.cf{height:14px;background-position:-900px 0}.vti__flag.cg{height:14px;background-position:-922px 0}.vti__flag.ch{height:15px;background-position:-944px 0}.vti__flag.ci{height:14px;background-position:-961px 0}.vti__flag.ck{height:10px;background-position:-983px 0}.vti__flag.cl{height:14px;background-position:-1005px 0}.vti__flag.cm{height:14px;background-position:-1027px 0}.vti__flag.cn{height:14px;background-position:-1049px 0}.vti__flag.co{height:14px;background-position:-1071px 0}.vti__flag.cp{height:14px;background-position:-1093px 0}.vti__flag.cr{height:12px;background-position:-1115px 0}.vti__flag.cu{height:10px;background-position:-1137px 0}.vti__flag.cv{height:12px;background-position:-1159px 0}.vti__flag.cw{height:14px;background-position:-1181px 0}.vti__flag.cx{height:10px;background-position:-1203px 0}.vti__flag.cy{height:14px;background-position:-1225px 0}.vti__flag.cz{height:14px;background-position:-1247px 0}.vti__flag.de{height:12px;background-position:-1269px 0}.vti__flag.dg{height:10px;background-position:-1291px 0}.vti__flag.dj{height:14px;background-position:-1313px 0}.vti__flag.dk{height:15px;background-position:-1335px 0}.vti__flag.dm{height:10px;background-position:-1357px 0}.vti__flag.do{height:13px;background-position:-1379px 0}.vti__flag.dz{height:14px;background-position:-1401px 0}.vti__flag.ea{height:14px;background-position:-1423px 0}.vti__flag.ec{height:14px;background-position:-1445px 0}.vti__flag.ee{height:13px;background-position:-1467px 0}.vti__flag.eg{height:14px;background-position:-1489px 0}.vti__flag.eh{height:10px;background-position:-1511px 0}.vti__flag.er{height:10px;background-position:-1533px 0}.vti__flag.es{height:14px;background-position:-1555px 0}.vti__flag.et{height:10px;background-position:-1577px 0}.vti__flag.eu{height:14px;background-position:-1599px 0}.vti__flag.fi{height:12px;background-position:-1621px 0}.vti__flag.fj{height:10px;background-position:-1643px 0}.vti__flag.fk{height:10px;background-position:-1665px 0}.vti__flag.fm{height:11px;background-position:-1687px 0}.vti__flag.fo{height:15px;background-position:-1709px 0}.vti__flag.fr{height:14px;background-position:-1731px 0}.vti__flag.ga{height:15px;background-position:-1753px 0}.vti__flag.gb{height:10px;background-position:-1775px 0}.vti__flag.gd{height:12px;background-position:-1797px 0}.vti__flag.ge{height:14px;background-position:-1819px 0}.vti__flag.gf{height:14px;background-position:-1841px 0}.vti__flag.gg{height:14px;background-position:-1863px 0}.vti__flag.gh{height:14px;background-position:-1885px 0}.vti__flag.gi{height:10px;background-position:-1907px 0}.vti__flag.gl{height:14px;background-position:-1929px 0}.vti__flag.gm{height:14px;background-position:-1951px 0}.vti__flag.gn{height:14px;background-position:-1973px 0}.vti__flag.gp{height:14px;background-position:-1995px 0}.vti__flag.gq{height:14px;background-position:-2017px 0}.vti__flag.gr{height:14px;background-position:-2039px 0}.vti__flag.gs{height:10px;background-position:-2061px 0}.vti__flag.gt{height:13px;background-position:-2083px 0}.vti__flag.gu{height:11px;background-position:-2105px 0}.vti__flag.gw{height:10px;background-position:-2127px 0}.vti__flag.gy{height:12px;background-position:-2149px 0}.vti__flag.hk{height:14px;background-position:-2171px 0}.vti__flag.hm{height:10px;background-position:-2193px 0}.vti__flag.hn{height:10px;background-position:-2215px 0}.vti__flag.hr{height:10px;background-position:-2237px 0}.vti__flag.ht{height:12px;background-position:-2259px 0}.vti__flag.hu{height:10px;background-position:-2281px 0}.vti__flag.ic{height:14px;background-position:-2303px 0}.vti__flag.id{height:14px;background-position:-2325px 0}.vti__flag.ie{height:10px;background-position:-2347px 0}.vti__flag.il{height:15px;background-position:-2369px 0}.vti__flag.im{height:10px;background-position:-2391px 0}.vti__flag.in{height:14px;background-position:-2413px 0}.vti__flag.io{height:10px;background-position:-2435px 0}.vti__flag.iq{height:14px;background-position:-2457px 0}.vti__flag.ir{height:12px;background-position:-2479px 0}.vti__flag.is{height:15px;background-position:-2501px 0}.vti__flag.it{height:14px;background-position:-2523px 0}.vti__flag.je{height:12px;background-position:-2545px 0}.vti__flag.jm{height:10px;background-position:-2567px 0}.vti__flag.jo{height:10px;background-position:-2589px 0}.vti__flag.jp{height:14px;background-position:-2611px 0}.vti__flag.ke{height:14px;background-position:-2633px 0}.vti__flag.kg{height:12px;background-position:-2655px 0}.vti__flag.kh{height:13px;background-position:-2677px 0}.vti__flag.ki{height:10px;background-position:-2699px 0}.vti__flag.km{height:12px;background-position:-2721px 0}.vti__flag.kn{height:14px;background-position:-2743px 0}.vti__flag.kp{height:10px;background-position:-2765px 0}.vti__flag.kr{height:14px;background-position:-2787px 0}.vti__flag.kw{height:10px;background-position:-2809px 0}.vti__flag.ky{height:10px;background-position:-2831px 0}.vti__flag.kz{height:10px;background-position:-2853px 0}.vti__flag.la{height:14px;background-position:-2875px 0}.vti__flag.lb{height:14px;background-position:-2897px 0}.vti__flag.lc{height:10px;background-position:-2919px 0}.vti__flag.li{height:12px;background-position:-2941px 0}.vti__flag.lk{height:10px;background-position:-2963px 0}.vti__flag.lr{height:11px;background-position:-2985px 0}.vti__flag.ls{height:14px;background-position:-3007px 0}.vti__flag.lt{height:12px;background-position:-3029px 0}.vti__flag.lu{height:12px;background-position:-3051px 0}.vti__flag.lv{height:10px;background-position:-3073px 0}.vti__flag.ly{height:10px;background-position:-3095px 0}.vti__flag.ma{height:14px;background-position:-3117px 0}.vti__flag.mc{height:15px;background-position:-3139px 0}.vti__flag.md{height:10px;background-position:-3160px 0}.vti__flag.me{height:10px;background-position:-3182px 0}.vti__flag.mf{height:14px;background-position:-3204px 0}.vti__flag.mg{height:14px;background-position:-3226px 0}.vti__flag.mh{height:11px;background-position:-3248px 0}.vti__flag.mk{height:10px;background-position:-3270px 0}.vti__flag.ml{height:14px;background-position:-3292px 0}.vti__flag.mm{height:14px;background-position:-3314px 0}.vti__flag.mn{height:10px;background-position:-3336px 0}.vti__flag.mo{height:14px;background-position:-3358px 0}.vti__flag.mp{height:10px;background-position:-3380px 0}.vti__flag.mq{height:14px;background-position:-3402px 0}.vti__flag.mr{height:14px;background-position:-3424px 0}.vti__flag.ms{height:10px;background-position:-3446px 0}.vti__flag.mt{height:14px;background-position:-3468px 0}.vti__flag.mu{height:14px;background-position:-3490px 0}.vti__flag.mv{height:14px;background-position:-3512px 0}.vti__flag.mw{height:14px;background-position:-3534px 0}.vti__flag.mx{height:12px;background-position:-3556px 0}.vti__flag.my{height:10px;background-position:-3578px 0}.vti__flag.mz{height:14px;background-position:-3600px 0}.vti__flag.na{height:14px;background-position:-3622px 0}.vti__flag.nc{height:10px;background-position:-3644px 0}.vti__flag.ne{height:15px;background-position:-3666px 0}.vti__flag.nf{height:10px;background-position:-3686px 0}.vti__flag.ng{height:10px;background-position:-3708px 0}.vti__flag.ni{height:12px;background-position:-3730px 0}.vti__flag.nl{height:14px;background-position:-3752px 0}.vti__flag.no{height:15px;background-position:-3774px 0}.vti__flag.np{height:15px;background-position:-3796px 0}.vti__flag.nr{height:10px;background-position:-3811px 0}.vti__flag.nu{height:10px;background-position:-3833px 0}.vti__flag.nz{height:10px;background-position:-3855px 0}.vti__flag.om{height:10px;background-position:-3877px 0}.vti__flag.pa{height:14px;background-position:-3899px 0}.vti__flag.pe{height:14px;background-position:-3921px 0}.vti__flag.pf{height:14px;background-position:-3943px 0}.vti__flag.pg{height:15px;background-position:-3965px 0}.vti__flag.ph{height:10px;background-position:-3987px 0}.vti__flag.pk{height:14px;background-position:-4009px 0}.vti__flag.pl{height:13px;background-position:-4031px 0}.vti__flag.pm{height:14px;background-position:-4053px 0}.vti__flag.pn{height:10px;background-position:-4075px 0}.vti__flag.pr{height:14px;background-position:-4097px 0}.vti__flag.ps{height:10px;background-position:-4119px 0}.vti__flag.pt{height:14px;background-position:-4141px 0}.vti__flag.pw{height:13px;background-position:-4163px 0}.vti__flag.py{height:11px;background-position:-4185px 0}.vti__flag.qa{height:8px;background-position:-4207px 0}.vti__flag.re{height:14px;background-position:-4229px 0}.vti__flag.ro{height:14px;background-position:-4251px 0}.vti__flag.rs{height:14px;background-position:-4273px 0}.vti__flag.ru{height:14px;background-position:-4295px 0}.vti__flag.rw{height:14px;background-position:-4317px 0}.vti__flag.sa{height:14px;background-position:-4339px 0}.vti__flag.sb{height:10px;background-position:-4361px 0}.vti__flag.sc{height:10px;background-position:-4383px 0}.vti__flag.sd{height:10px;background-position:-4405px 0}.vti__flag.se{height:13px;background-position:-4427px 0}.vti__flag.sg{height:14px;background-position:-4449px 0}.vti__flag.sh{height:10px;background-position:-4471px 0}.vti__flag.si{height:10px;background-position:-4493px 0}.vti__flag.sj{height:15px;background-position:-4515px 0}.vti__flag.sk{height:14px;background-position:-4537px 0}.vti__flag.sl{height:14px;background-position:-4559px 0}.vti__flag.sm{height:15px;background-position:-4581px 0}.vti__flag.sn{height:14px;background-position:-4603px 0}.vti__flag.so{height:14px;background-position:-4625px 0}.vti__flag.sr{height:14px;background-position:-4647px 0}.vti__flag.ss{height:10px;background-position:-4669px 0}.vti__flag.st{height:10px;background-position:-4691px 0}.vti__flag.sv{height:12px;background-position:-4713px 0}.vti__flag.sx{height:14px;background-position:-4735px 0}.vti__flag.sy{height:14px;background-position:-4757px 0}.vti__flag.sz{height:14px;background-position:-4779px 0}.vti__flag.ta{height:10px;background-position:-4801px 0}.vti__flag.tc{height:10px;background-position:-4823px 0}.vti__flag.td{height:14px;background-position:-4845px 0}.vti__flag.tf{height:14px;background-position:-4867px 0}.vti__flag.tg{height:13px;background-position:-4889px 0}.vti__flag.th{height:14px;background-position:-4911px 0}.vti__flag.tj{height:10px;background-position:-4933px 0}.vti__flag.tk{height:10px;background-position:-4955px 0}.vti__flag.tl{height:10px;background-position:-4977px 0}.vti__flag.tm{height:14px;background-position:-4999px 0}.vti__flag.tn{height:14px;background-position:-5021px 0}.vti__flag.to{height:10px;background-position:-5043px 0}.vti__flag.tr{height:14px;background-position:-5065px 0}.vti__flag.tt{height:12px;background-position:-5087px 0}.vti__flag.tv{height:10px;background-position:-5109px 0}.vti__flag.tw{height:14px;background-position:-5131px 0}.vti__flag.tz{height:14px;background-position:-5153px 0}.vti__flag.ua{height:14px;background-position:-5175px 0}.vti__flag.ug{height:14px;background-position:-5197px 0}.vti__flag.um{height:11px;background-position:-5219px 0}.vti__flag.us{height:11px;background-position:-5241px 0}.vti__flag.uy{height:14px;background-position:-5263px 0}.vti__flag.uz{height:10px;background-position:-5285px 0}.vti__flag.va{height:15px;background-position:-5307px 0}.vti__flag.vc{height:14px;background-position:-5324px 0}.vti__flag.ve{height:14px;background-position:-5346px 0}.vti__flag.vg{height:10px;background-position:-5368px 0}.vti__flag.vi{height:14px;background-position:-5390px 0}.vti__flag.vn{height:14px;background-position:-5412px 0}.vti__flag.vu{height:12px;background-position:-5434px 0}.vti__flag.wf{height:14px;background-position:-5456px 0}.vti__flag.ws{height:10px;background-position:-5478px 0}.vti__flag.xk{height:15px;background-position:-5500px 0}.vti__flag.ye{height:14px;background-position:-5522px 0}.vti__flag.yt{height:14px;background-position:-5544px 0}.vti__flag.za{height:14px;background-position:-5566px 0}.vti__flag.zm{height:14px;background-position:-5588px 0}.vti__flag.zw{height:10px;background-position:-5610px 0}.vti__flag{width:20px;height:15px;box-shadow:0 0 1px 0 #888;background-image:url(data:image/png;base64,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);background-repeat:no-repeat;background-color:#dbdbdb;background-position:20px 0}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.vti__flag{background-image:url(data:image/png;base64,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)}}.vti__flag.np{background-color:transparent}\",\n map: undefined,\n media: undefined\n }), inject(\"data-v-f3778b7e_1\", {\n source: \".vue-tel-input{border-radius:3px;display:flex;border:1px solid #bbb;text-align:left}.vue-tel-input.disabled .dropdown,.vue-tel-input.disabled .selection,.vue-tel-input.disabled input{cursor:no-drop}.vue-tel-input:focus-within{box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);border-color:#66afe9}.vti__dropdown{display:flex;flex-direction:column;align-content:center;justify-content:center;position:relative;padding:7px;cursor:pointer}.vti__dropdown.show{max-height:300px;overflow:scroll}.vti__dropdown.open{background-color:#f3f3f3}.vti__dropdown:hover{background-color:#f3f3f3}.vti__selection{font-size:.8em;display:flex;align-items:center}.vti__selection .vti__country-code{color:#666}.vti__flag{margin-right:5px;margin-left:5px}.vti__dropdown-list{z-index:1;padding:0;margin:0;text-align:left;list-style:none;max-height:200px;overflow-y:scroll;position:absolute;left:-1px;background-color:#fff;border:1px solid #ccc;width:390px}.vti__dropdown-list.below{top:33px}.vti__dropdown-list.above{top:auto;bottom:100%}.vti__dropdown-arrow{transform:scaleY(.5);display:inline-block;color:#666}.vti__dropdown-item{cursor:pointer;padding:4px 15px}.vti__dropdown-item.highlighted{background-color:#f3f3f3}.vti__dropdown-item.last-preferred{border-bottom:1px solid #cacaca}.vti__dropdown-item .vti__flag{display:inline-block;margin-right:5px}.vti__input{border:none;border-radius:0 2px 2px 0;width:100%;outline:0;padding-left:7px}\",\n map: undefined,\n media: undefined\n });\n};\n/* scoped */\n\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = normalizeComponent_1({\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, browser, undefined, undefined);\n\nfunction install(Vue) {\n var customOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n utils.options = _objectSpread({}, defaultOptions, {}, customOptions);\n Vue.component('vue-tel-input', __vue_component__);\n}\nvar plugin = {\n install: install\n}; // Auto-install\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 VueTelInput, install };\n","(function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueTheMask=t():e.VueTheMask=t()})(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\".\",t(t.s=10)}([function(e,t){e.exports={\"#\":{pattern:/\\d/},X:{pattern:/[0-9a-zA-Z]/},S:{pattern:/[a-zA-Z]/},A:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleUpperCase()}},a:{pattern:/[a-zA-Z]/,transform:function(e){return e.toLocaleLowerCase()}},\"!\":{escape:!0}}},function(e,t,n){\"use strict\";function r(e){var t=document.createEvent(\"Event\");return t.initEvent(e,!0,!0),t}var a=n(2),o=n(0),i=n.n(o);t.a=function(e,t){var o=t.value;if((Array.isArray(o)||\"string\"==typeof o)&&(o={mask:o,tokens:i.a}),\"INPUT\"!==e.tagName.toLocaleUpperCase()){var u=e.getElementsByTagName(\"input\");if(1!==u.length)throw new Error(\"v-mask directive requires 1 input, found \"+u.length);e=u[0]}e.oninput=function(t){if(t.isTrusted){var i=e.selectionEnd,u=e.value[i-1];for(e.value=n.i(a.a)(e.value,o.mask,!0,o.tokens);i2&&void 0!==arguments[2])||arguments[2],i=arguments[3];return Array.isArray(t)?n.i(a.a)(r.a,t,i)(e,t,o,i):n.i(r.a)(e,t,o,i)}},function(e,t,n){\"use strict\";function r(e){e.component(s.a.name,s.a),e.directive(\"mask\",i.a)}Object.defineProperty(t,\"__esModule\",{value:!0});var a=n(0),o=n.n(a),i=n(1),u=n(7),s=n.n(u);n.d(t,\"TheMask\",function(){return s.a}),n.d(t,\"mask\",function(){return i.a}),n.d(t,\"tokens\",function(){return o.a}),n.d(t,\"version\",function(){return c});var c=\"0.11.1\";t.default=r,\"undefined\"!=typeof window&&window.Vue&&window.Vue.use(r)},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(1),a=n(0),o=n.n(a),i=n(2);t.default={name:\"TheMask\",props:{value:[String,Number],mask:{type:[String,Array],required:!0},masked:{type:Boolean,default:!1},tokens:{type:Object,default:function(){return o.a}}},directives:{mask:r.a},data:function(){return{lastValue:null,display:this.value}},watch:{value:function(e){e!==this.lastValue&&(this.display=e)},masked:function(){this.refresh(this.display)}},computed:{config:function(){return{mask:this.mask,tokens:this.tokens,masked:this.masked}}},methods:{onInput:function(e){e.isTrusted||this.refresh(e.target.value)},refresh:function(e){this.display=e;var e=n.i(i.a)(e,this.mask,this.masked,this.tokens);e!==this.lastValue&&(this.lastValue=e,this.$emit(\"input\",e))}}}},function(e,t,n){\"use strict\";function r(e,t,n){return t=t.sort(function(e,t){return e.length-t.length}),function(r,a){for(var o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=0;iu.length))return e(r,u,o,n)}return\"\"}}t.a=r},function(e,t,n){\"use strict\";function r(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments[3];e=e||\"\",t=t||\"\";for(var a=0,o=0,i=\"\";a