deemixer/public/js/bundle.js.map

1 line
2.0 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"bundle.js","sources":["../../node_modules/vue/dist/vue.esm.js","../../node_modules/style-inject/dist/style-inject.es.js","../../node_modules/vuex/dist/vuex.esm.js","../../src/components/downloads/QueueItem.vue?rollup-plugin-vue=script.js","../../src/components/downloads/QueueItem.vue","../../src/store/modules/about.js","../../src/store/modules/login.js","../../src/store/modules/errors.js","../../src/store/index.js","../../src/utils/socket.js","../../node_modules/toastify-js/src/toastify.js","../../src/utils/toasts.js","../../src/components/downloads/TheDownloadBar.vue?rollup-plugin-vue=script.js","../../src/components/downloads/TheDownloadBar.vue","../../src/components/globals/BaseLoadingPlaceholder.vue?rollup-plugin-vue=script.js","../../src/components/globals/BaseLoadingPlaceholder.vue","../../src/utils/downloads.js","../../src/utils/utils.js","../../src/data/qualities.js","../../src/components/globals/TheContextMenu.vue?rollup-plugin-vue=script.js","../../src/components/globals/TheContextMenu.vue","../../src/utils/EventBus.js","../../src/utils/adjust-volume.js","../../src/components/globals/TheTrackPreview.vue?rollup-plugin-vue=script.js","../../src/components/globals/TheTrackPreview.vue","../../src/components/globals/TheQualityModal.vue?rollup-plugin-vue=script.js","../../src/components/globals/TheQualityModal.vue","../../src/components/globals/ConfirmModal.vue?rollup-plugin-vue=script.js","../../src/components/globals/ConfirmModal.vue","../../src/components/TheSidebar.vue?rollup-plugin-vue=script.js","../../src/components/TheSidebar.vue","../../src/components/TheSearchBar.vue?rollup-plugin-vue=script.js","../../src/components/TheSearchBar.vue","../../src/components/TheContent.vue?rollup-plugin-vue=script.js","../../src/components/TheContent.vue","../../src/App.vue?rollup-plugin-vue=script.js","../../src/App.vue","../../node_modules/vue-i18n/dist/vue-i18n.esm.js","../../src/lang/it.js","../../src/lang/en.js","../../src/lang/es.js","../../src/lang/de.js","../../src/lang/fr.js","../../src/lang/id.js","../../src/lang/pt-pt.js","../../src/lang/pt-br.js","../../src/lang/ru.js","../../src/lang/tr.js","../../src/lang/vn.js","../../src/lang/hr.js","../../src/lang/ar.js","../../src/lang/ko.js","../../src/lang/ph.js","../../src/lang/zh-tw.js","../../src/lang/index.js","../../src/plugins/i18n.js","../../node_modules/vue-router/dist/vue-router.esm.js","../../src/components/pages/About.vue?rollup-plugin-vue=script.js","../../src/components/pages/About.vue","../../node_modules/lodash-es/_freeGlobal.js","../../node_modules/lodash-es/_root.js","../../node_modules/lodash-es/_Symbol.js","../../node_modules/lodash-es/_getRawTag.js","../../node_modules/lodash-es/_objectToString.js","../../node_modules/lodash-es/_baseGetTag.js","../../node_modules/lodash-es/isObjectLike.js","../../node_modules/lodash-es/isSymbol.js","../../node_modules/lodash-es/_arrayMap.js","../../node_modules/lodash-es/isArray.js","../../node_modules/lodash-es/_baseToString.js","../../node_modules/lodash-es/isObject.js","../../node_modules/lodash-es/identity.js","../../node_modules/lodash-es/isFunction.js","../../node_modules/lodash-es/_coreJsData.js","../../node_modules/lodash-es/_isMasked.js","../../node_modules/lodash-es/_toSource.js","../../node_modules/lodash-es/_baseIsNative.js","../../node_modules/lodash-es/_getValue.js","../../node_modules/lodash-es/_getNative.js","../../node_modules/lodash-es/_WeakMap.js","../../node_modules/lodash-es/_isIndex.js","../../node_modules/lodash-es/eq.js","../../node_modules/lodash-es/isLength.js","../../node_modules/lodash-es/isArrayLike.js","../../node_modules/lodash-es/_isPrototype.js","../../node_modules/lodash-es/_baseTimes.js","../../node_modules/lodash-es/_baseIsArguments.js","../../node_modules/lodash-es/isArguments.js","../../node_modules/lodash-es/stubFalse.js","../../node_modules/lodash-es/isBuffer.js","../../node_modules/lodash-es/_baseIsTypedArray.js","../../node_modules/lodash-es/_baseUnary.js","../../node_modules/lodash-es/_nodeUtil.js","../../node_modules/lodash-es/isTypedArray.js","../../node_modules/lodash-es/_arrayLikeKeys.js","../../node_modules/lodash-es/_overArg.js","../../node_modules/lodash-es/_nativeKeys.js","../../node_modules/lodash-es/_baseKeys.js","../../node_modules/lodash-es/keys.js","../../node_modules/lodash-es/_isKey.js","../../node_modules/lodash-es/_nativeCreate.js","../../node_modules/lodash-es/_hashClear.js","../../node_modules/lodash-es/_hashDelete.js","../../node_modules/lodash-es/_hashGet.js","../../node_modules/lodash-es/_hashHas.js","../../node_modules/lodash-es/_hashSet.js","../../node_modules/lodash-es/_Hash.js","../../node_modules/lodash-es/_listCacheClear.js","../../node_modules/lodash-es/_assocIndexOf.js","../../node_modules/lodash-es/_listCacheDelete.js","../../node_modules/lodash-es/_listCacheGet.js","../../node_modules/lodash-es/_listCacheHas.js","../../node_modules/lodash-es/_listCacheSet.js","../../node_modules/lodash-es/_ListCache.js","../../node_modules/lodash-es/_Map.js","../../node_modules/lodash-es/_mapCacheClear.js","../../node_modules/lodash-es/_isKeyable.js","../../node_modules/lodash-es/_getMapData.js","../../node_modules/lodash-es/_mapCacheDelete.js","../../node_modules/lodash-es/_mapCacheGet.js","../../node_modules/lodash-es/_mapCacheHas.js","../../node_modules/lodash-es/_mapCacheSet.js","../../node_modules/lodash-es/_MapCache.js","../../node_modules/lodash-es/memoize.js","../../node_modules/lodash-es/_memoizeCapped.js","../../node_modules/lodash-es/_stringToPath.js","../../node_modules/lodash-es/toString.js","../../node_modules/lodash-es/_castPath.js","../../node_modules/lodash-es/_toKey.js","../../node_modules/lodash-es/_baseGet.js","../../node_modules/lodash-es/get.js","../../node_modules/lodash-es/_arrayPush.js","../../node_modules/lodash-es/_stackClear.js","../../node_modules/lodash-es/_stackDelete.js","../../node_modules/lodash-es/_stackGet.js","../../node_modules/lodash-es/_stackHas.js","../../node_modules/lodash-es/_stackSet.js","../../node_modules/lodash-es/_Stack.js","../../node_modules/lodash-es/_arrayFilter.js","../../node_modules/lodash-es/stubArray.js","../../node_modules/lodash-es/_getSymbols.js","../../node_modules/lodash-es/_baseGetAllKeys.js","../../node_modules/lodash-es/_getAllKeys.js","../../node_modules/lodash-es/_DataView.js","../../node_modules/lodash-es/_Promise.js","../../node_modules/lodash-es/_Set.js","../../node_modules/lodash-es/_getTag.js","../../node_modules/lodash-es/_Uint8Array.js","../../node_modules/lodash-es/_setCacheAdd.js","../../node_modules/lodash-es/_setCacheHas.js","../../node_modules/lodash-es/_SetCache.js","../../node_modules/lodash-es/_arraySome.js","../../node_modules/lodash-es/_cacheHas.js","../../node_modules/lodash-es/_equalArrays.js","../../node_modules/lodash-es/_mapToArray.js","../../node_modules/lodash-es/_setToArray.js","../../node_modules/lodash-es/_equalByTag.js","../../node_modules/lodash-es/_equalObjects.js","../../node_modules/lodash-es/_baseIsEqualDeep.js","../../node_modules/lodash-es/_baseIsEqual.js","../../node_modules/lodash-es/_baseIsMatch.js","../../node_modules/lodash-es/_isStrictComparable.js","../../node_modules/lodash-es/_getMatchData.js","../../node_modules/lodash-es/_matchesStrictComparable.js","../../node_modules/lodash-es/_baseMatches.js","../../node_modules/lodash-es/_baseHasIn.js","../../node_modules/lodash-es/_hasPath.js","../../node_modules/lodash-es/hasIn.js","../../node_modules/lodash-es/_baseMatchesProperty.js","../../node_modules/lodash-es/_baseProperty.js","../../node_modules/lodash-es/_basePropertyDeep.js","../../node_modules/lodash-es/property.js","../../node_modules/lodash-es/_baseIteratee.js","../../node_modules/lodash-es/_createBaseFor.js","../../node_modules/lodash-es/_baseFor.js","../../node_modules/lodash-es/_baseForOwn.js","../../node_modules/lodash-es/_createBaseEach.js","../../node_modules/lodash-es/_baseEach.js","../../node_modules/lodash-es/_baseMap.js","../../node_modules/lodash-es/isEmpty.js","../../node_modules/lodash-es/_baseSortBy.js","../../node_modules/lodash-es/_compareAscending.js","../../node_modules/lodash-es/_compareMultiple.js","../../node_modules/lodash-es/_baseOrderBy.js","../../node_modules/lodash-es/orderBy.js","../../src/components/pages/Artist.vue?rollup-plugin-vue=script.js","../../src/components/pages/Artist.vue","../../src/data/charts.js","../../src/components/pages/Charts.vue?rollup-plugin-vue=script.js","../../src/components/pages/Charts.vue","../../src/components/pages/Errors.vue?rollup-plugin-vue=script.js","../../src/components/pages/Errors.vue","../../src/data/favorites.js","../../src/components/pages/Favorites.vue?rollup-plugin-vue=script.js","../../src/components/pages/Favorites.vue","../../src/data/home.js","../../src/components/pages/Home.vue?rollup-plugin-vue=script.js","../../src/components/pages/Home.vue","../../src/utils/countries.js","../../src/components/pages/LinkAnalyzer.vue?rollup-plugin-vue=script.js","../../src/components/pages/LinkAnalyzer.vue","../../src/utils/texts.js","../../src/components/search/ResultsAll.vue?rollup-plugin-vue=script.js","../../src/components/search/ResultsAll.vue","../../src/components/search/ResultsAlbums.vue?rollup-plugin-vue=script.js","../../src/components/search/ResultsAlbums.vue","../../src/components/search/ResultsArtists.vue?rollup-plugin-vue=script.js","../../src/components/search/ResultsArtists.vue","../../src/components/search/ResultsPlaylists.vue?rollup-plugin-vue=script.js","../../src/components/search/ResultsPlaylists.vue","../../src/components/search/ResultsTracks.vue?rollup-plugin-vue=script.js","../../src/components/search/ResultsTracks.vue","../../src/components/pages/Search.vue?rollup-plugin-vue=script.js","../../src/components/pages/Search.vue","../../src/data/settings.js","../../src/utils/flags.js","../../src/components/pages/Settings.vue?rollup-plugin-vue=script.js","../../src/components/pages/Settings.vue","../../src/components/pages/Tracklist.vue?rollup-plugin-vue=script.js","../../src/components/pages/Tracklist.vue","../../src/router.js","../../src/app.js"],"sourcesContent":["/*!\n * Vue.js v2.6.12\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a string containing static keys from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\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 = Array.isArray(a);\n var isArrayB = Array.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 (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\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 * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject)\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__') { continue }\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n if (!children || !children.length) {\n return {}\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/* */\n\nfunction normalizeScopedSlots (\n slots,\n normalSlots,\n prevSlots\n) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n var key = slots && slots.$key;\n if (!slots) {\n res = {};\n } else if (slots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return slots._normalized\n } else if (\n isStable &&\n prevSlots &&\n prevSlots !== emptyObject &&\n key === prevSlots.$key &&\n !hasNormalSlots &&\n !prevSlots.$hasNormal\n ) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevSlots\n } else {\n res = {};\n for (var key$1 in slots) {\n if (slots[key$1] && key$1[0] !== '$') {\n res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key$2 in normalSlots) {\n if (!(key$2 in res)) {\n res[key$2] = proxyNormalSlot(normalSlots, key$2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (slots && Object.isExtensible(slots)) {\n (slots)._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n var normalized = function () {\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res = res && typeof res === 'object' && !Array.isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n return res && (\n res.length === 0 ||\n (res.length === 1 && res[0].isComment) // #9658\n ) ? undefined\n : res\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n return function () { return slots[key]; }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length));\n result = iterator.next();\n }\n } else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n (ret)._isVList = true;\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n nodes = this.$slots[name] || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res,\n // the following are added in 2.6\n hasDynamicKeys,\n contentHashKey\n) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (Array.isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n } else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n if (slot.proxy) {\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n (res).$key = contentHashKey;\n }\n return res\n}\n\n/* */\n\nfunction bindDynamicKeys (baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn(\n (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n this\n );\n }\n }\n return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n return typeof value === 'string' ? symbol + value : value\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var this$1 = this;\n\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!this$1.$slots) {\n normalizeScopedSlots(\n data.scopedSlots,\n this$1.$slots = resolveSlots(children, parent)\n );\n }\n return this$1.$slots\n };\n\n Object.defineProperty(this, 'scopedSlots', ({\n enumerable: true,\n get: function get () {\n return normalizeScopedSlots(data.scopedSlots, this.slots())\n }\n }));\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (process.env.NODE_ENV !== 'production') {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n/* */\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (vnode, hydrating) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent // activeInstance in lifecycle state\n) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n }\n }\n}\n\nfunction mergeHook$1 (f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input'\n ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (\n Array.isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback\n ) {\n on[event] = [callback].concat(existing);\n }\n } else {\n on[event] = callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n warn(\n (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n context\n );\n }\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n if (_parentVnode) {\n vm.$scopedSlots = normalizeScopedSlots(\n _parentVnode.data.scopedSlots,\n vm.$slots,\n vm.$scopedSlots\n );\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } finally {\n currentRenderingInstance = null;\n }\n // if the returned array contains only a single node, allow it\n if (Array.isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (owner && !isDef(factory.owners)) {\n var owners = factory.owners = [owner];\n var sync = true;\n var timerLoading = null;\n var timerTimeout = null\n\n ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n var forceRender = function (renderCompleted) {\n for (var i = 0, l = owners.length; i < l; i++) {\n (owners[i]).$forceUpdate();\n }\n\n if (renderCompleted) {\n owners.length = 0;\n if (timerLoading !== null) {\n clearTimeout(timerLoading);\n timerLoading = null;\n }\n if (timerTimeout !== null) {\n clearTimeout(timerTimeout);\n timerTimeout = null;\n }\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender(true);\n } else {\n owners.length = 0;\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender(true);\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (isPromise(res)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isPromise(res.component)) {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n timerLoading = setTimeout(function () {\n timerLoading = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender(false);\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n timerTimeout = setTimeout(function () {\n timerTimeout = null;\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn) {\n target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n var _target = target;\n return function onceHandler () {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n }\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n vm.$off(event[i$1], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\" + event + \"\\\"\";\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm\n };\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n }\n}\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, {\n before: function before () {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'beforeUpdate');\n }\n }\n }, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!(\n (newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n );\n\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n var info = hook + \" hook\";\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n var performance = window.performance;\n if (\n performance &&\n typeof performance.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp\n ) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance.now(); };\n }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n flushSchedulerQueue();\n return\n }\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction createGetterInvoker(fn) {\n return function computedGetter () {\n return fn.call(this, this)\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof methods[key] !== 'function') {\n warn(\n \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function () {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n try {\n cb.call(vm, watcher.value);\n } catch (error) {\n handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n }\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = latest[key];\n }\n }\n return modified\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\n\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n};\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n};\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive$$1\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj\n };\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.6.12';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n return isFalsyAttrValue(value) || value === 'false'\n ? 'false'\n // allow arbitrary string value for contenteditable\n : key === 'contenteditable' && isValidContentEditableValue(value)\n ? value\n : 'true'\n};\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isPreTag = function (tag) { return tag === 'pre'; };\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n createElement: createElement$1,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n};\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove$$1 () {\n if (--remove$$1.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove$$1.listeners = listeners;\n return remove$$1\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n insert(parentElm, vnode.elm, refElm);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (nodeOps.parentNode(ref$$1) === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (\n oldVnode,\n vnode,\n insertedVnodeQueue,\n ownerArray,\n index,\n removeOnly\n ) {\n if (oldVnode === vnode) {\n return\n }\n\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // clone reused vnode\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(ch);\n }\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, convertEnumeratedValue(key, value));\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && value !== '' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n};\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n};\n\n/* */\n\nvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n\nfunction parseFilters (exp) {\n var inSingle = false;\n var inDouble = false;\n var inTemplateString = false;\n var inRegex = false;\n var curly = 0;\n var square = 0;\n var paren = 0;\n var lastFilterIndex = 0;\n var c, prev, i, expression, filters;\n\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 0x27 && prev !== 0x5C) { inSingle = false; }\n } else if (inDouble) {\n if (c === 0x22 && prev !== 0x5C) { inDouble = false; }\n } else if (inTemplateString) {\n if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }\n } else if (inRegex) {\n if (c === 0x2f && prev !== 0x5C) { inRegex = false; }\n } else if (\n c === 0x7C && // pipe\n exp.charCodeAt(i + 1) !== 0x7C &&\n exp.charCodeAt(i - 1) !== 0x7C &&\n !curly && !square && !paren\n ) {\n if (expression === undefined) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 0x22: inDouble = true; break // \"\n case 0x27: inSingle = true; break // '\n case 0x60: inTemplateString = true; break // `\n case 0x28: paren++; break // (\n case 0x29: paren--; break // )\n case 0x5B: square++; break // [\n case 0x5D: square--; break // ]\n case 0x7B: curly++; break // {\n case 0x7D: curly--; break // }\n }\n if (c === 0x2f) { // /\n var j = i - 1;\n var p = (void 0);\n // find first non-whitespace prev char\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== ' ') { break }\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n\n if (expression === undefined) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n\n function pushFilter () {\n (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n\n if (filters) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i]);\n }\n }\n\n return expression\n}\n\nfunction wrapFilter (exp, filter) {\n var i = filter.indexOf('(');\n if (i < 0) {\n // _f: resolveFilter\n return (\"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\")\n } else {\n var name = filter.slice(0, i);\n var args = filter.slice(i + 1);\n return (\"_f(\\\"\" + name + \"\\\")(\" + exp + (args !== ')' ? ',' + args : args))\n }\n}\n\n/* */\n\n\n\n/* eslint-disable no-unused-vars */\nfunction baseWarn (msg, range) {\n console.error((\"[Vue compiler]: \" + msg));\n}\n/* eslint-enable no-unused-vars */\n\nfunction pluckModuleFunction (\n modules,\n key\n) {\n return modules\n ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })\n : []\n}\n\nfunction addProp (el, name, value, range, dynamic) {\n (el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\n el.plain = false;\n}\n\nfunction addAttr (el, name, value, range, dynamic) {\n var attrs = dynamic\n ? (el.dynamicAttrs || (el.dynamicAttrs = []))\n : (el.attrs || (el.attrs = []));\n attrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\n el.plain = false;\n}\n\n// add a raw attr (use this in preTransforms)\nfunction addRawAttr (el, name, value, range) {\n el.attrsMap[name] = value;\n el.attrsList.push(rangeSetItem({ name: name, value: value }, range));\n}\n\nfunction addDirective (\n el,\n name,\n rawName,\n value,\n arg,\n isDynamicArg,\n modifiers,\n range\n) {\n (el.directives || (el.directives = [])).push(rangeSetItem({\n name: name,\n rawName: rawName,\n value: value,\n arg: arg,\n isDynamicArg: isDynamicArg,\n modifiers: modifiers\n }, range));\n el.plain = false;\n}\n\nfunction prependModifierMarker (symbol, name, dynamic) {\n return dynamic\n ? (\"_p(\" + name + \",\\\"\" + symbol + \"\\\")\")\n : symbol + name // mark the event as captured\n}\n\nfunction addHandler (\n el,\n name,\n value,\n modifiers,\n important,\n warn,\n range,\n dynamic\n) {\n modifiers = modifiers || emptyObject;\n // warn prevent and passive modifier\n /* istanbul ignore if */\n if (\n process.env.NODE_ENV !== 'production' && warn &&\n modifiers.prevent && modifiers.passive\n ) {\n warn(\n 'passive and prevent can\\'t be used together. ' +\n 'Passive handler can\\'t prevent default event.',\n range\n );\n }\n\n // normalize click.right and click.middle since they don't actually fire\n // this is technically browser-specific, but at least for now browsers are\n // the only target envs that have right/middle clicks.\n if (modifiers.right) {\n if (dynamic) {\n name = \"(\" + name + \")==='click'?'contextmenu':(\" + name + \")\";\n } else if (name === 'click') {\n name = 'contextmenu';\n delete modifiers.right;\n }\n } else if (modifiers.middle) {\n if (dynamic) {\n name = \"(\" + name + \")==='click'?'mouseup':(\" + name + \")\";\n } else if (name === 'click') {\n name = 'mouseup';\n }\n }\n\n // check capture modifier\n if (modifiers.capture) {\n delete modifiers.capture;\n name = prependModifierMarker('!', name, dynamic);\n }\n if (modifiers.once) {\n delete modifiers.once;\n name = prependModifierMarker('~', name, dynamic);\n }\n /* istanbul ignore if */\n if (modifiers.passive) {\n delete modifiers.passive;\n name = prependModifierMarker('&', name, dynamic);\n }\n\n var events;\n if (modifiers.native) {\n delete modifiers.native;\n events = el.nativeEvents || (el.nativeEvents = {});\n } else {\n events = el.events || (el.events = {});\n }\n\n var newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range);\n if (modifiers !== emptyObject) {\n newHandler.modifiers = modifiers;\n }\n\n var handlers = events[name];\n /* istanbul ignore if */\n if (Array.isArray(handlers)) {\n important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n } else if (handlers) {\n events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n } else {\n events[name] = newHandler;\n }\n\n el.plain = false;\n}\n\nfunction getRawBindingAttr (\n el,\n name\n) {\n return el.rawAttrsMap[':' + name] ||\n el.rawAttrsMap['v-bind:' + name] ||\n el.rawAttrsMap[name]\n}\n\nfunction getBindingAttr (\n el,\n name,\n getStatic\n) {\n var dynamicValue =\n getAndRemoveAttr(el, ':' + name) ||\n getAndRemoveAttr(el, 'v-bind:' + name);\n if (dynamicValue != null) {\n return parseFilters(dynamicValue)\n } else if (getStatic !== false) {\n var staticValue = getAndRemoveAttr(el, name);\n if (staticValue != null) {\n return JSON.stringify(staticValue)\n }\n }\n}\n\n// note: this only removes the attr from the Array (attrsList) so that it\n// doesn't get processed by processAttrs.\n// By default it does NOT remove it from the map (attrsMap) because the map is\n// needed during codegen.\nfunction getAndRemoveAttr (\n el,\n name,\n removeFromMap\n) {\n var val;\n if ((val = el.attrsMap[name]) != null) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i].name === name) {\n list.splice(i, 1);\n break\n }\n }\n }\n if (removeFromMap) {\n delete el.attrsMap[name];\n }\n return val\n}\n\nfunction getAndRemoveAttrByRegex (\n el,\n name\n) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n var attr = list[i];\n if (name.test(attr.name)) {\n list.splice(i, 1);\n return attr\n }\n }\n}\n\nfunction rangeSetItem (\n item,\n range\n) {\n if (range) {\n if (range.start != null) {\n item.start = range.start;\n }\n if (range.end != null) {\n item.end = range.end;\n }\n }\n return item\n}\n\n/* */\n\n/**\n * Cross-platform code generation for component v-model\n */\nfunction genComponentModel (\n el,\n value,\n modifiers\n) {\n var ref = modifiers || {};\n var number = ref.number;\n var trim = ref.trim;\n\n var baseValueExpression = '$$v';\n var valueExpression = baseValueExpression;\n if (trim) {\n valueExpression =\n \"(typeof \" + baseValueExpression + \" === 'string'\" +\n \"? \" + baseValueExpression + \".trim()\" +\n \": \" + baseValueExpression + \")\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n var assignment = genAssignmentCode(value, valueExpression);\n\n el.model = {\n value: (\"(\" + value + \")\"),\n expression: JSON.stringify(value),\n callback: (\"function (\" + baseValueExpression + \") {\" + assignment + \"}\")\n };\n}\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\nfunction genAssignmentCode (\n value,\n assignment\n) {\n var res = parseModel(value);\n if (res.key === null) {\n return (value + \"=\" + assignment)\n } else {\n return (\"$set(\" + (res.exp) + \", \" + (res.key) + \", \" + assignment + \")\")\n }\n}\n\n/**\n * Parse a v-model expression into a base path and a final key segment.\n * Handles both dot-path and possible square brackets.\n *\n * Possible cases:\n *\n * - test\n * - test[key]\n * - test[test1[key]]\n * - test[\"a\"][key]\n * - xxx.test[a[a].test1[key]]\n * - test.xxx.a[\"asa\"][test1[key]]\n *\n */\n\nvar len, str, chr, index$1, expressionPos, expressionEndPos;\n\n\n\nfunction parseModel (val) {\n // Fix https://github.com/vuejs/vue/pull/7730\n // allow v-model=\"obj.val \" (trailing whitespace)\n val = val.trim();\n len = val.length;\n\n if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n index$1 = val.lastIndexOf('.');\n if (index$1 > -1) {\n return {\n exp: val.slice(0, index$1),\n key: '\"' + val.slice(index$1 + 1) + '\"'\n }\n } else {\n return {\n exp: val,\n key: null\n }\n }\n }\n\n str = val;\n index$1 = expressionPos = expressionEndPos = 0;\n\n while (!eof()) {\n chr = next();\n /* istanbul ignore if */\n if (isStringStart(chr)) {\n parseString(chr);\n } else if (chr === 0x5B) {\n parseBracket(chr);\n }\n }\n\n return {\n exp: val.slice(0, expressionPos),\n key: val.slice(expressionPos + 1, expressionEndPos)\n }\n}\n\nfunction next () {\n return str.charCodeAt(++index$1)\n}\n\nfunction eof () {\n return index$1 >= len\n}\n\nfunction isStringStart (chr) {\n return chr === 0x22 || chr === 0x27\n}\n\nfunction parseBracket (chr) {\n var inBracket = 1;\n expressionPos = index$1;\n while (!eof()) {\n chr = next();\n if (isStringStart(chr)) {\n parseString(chr);\n continue\n }\n if (chr === 0x5B) { inBracket++; }\n if (chr === 0x5D) { inBracket--; }\n if (inBracket === 0) {\n expressionEndPos = index$1;\n break\n }\n }\n}\n\nfunction parseString (chr) {\n var stringQuote = chr;\n while (!eof()) {\n chr = next();\n if (chr === stringQuote) {\n break\n }\n }\n}\n\n/* */\n\nvar warn$1;\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\nfunction model (\n el,\n dir,\n _warn\n) {\n warn$1 = _warn;\n var value = dir.value;\n var modifiers = dir.modifiers;\n var tag = el.tag;\n var type = el.attrsMap.type;\n\n if (process.env.NODE_ENV !== 'production') {\n // inputs with type=\"file\" are read only and setting the input's\n // value will throw an error.\n if (tag === 'input' && type === 'file') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\" type=\\\"file\\\">:\\n\" +\n \"File inputs are read only. Use a v-on:change listener instead.\",\n el.rawAttrsMap['v-model']\n );\n }\n }\n\n if (el.component) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (tag === 'select') {\n genSelect(el, value, modifiers);\n } else if (tag === 'input' && type === 'checkbox') {\n genCheckboxModel(el, value, modifiers);\n } else if (tag === 'input' && type === 'radio') {\n genRadioModel(el, value, modifiers);\n } else if (tag === 'input' || tag === 'textarea') {\n genDefaultModel(el, value, modifiers);\n } else if (!config.isReservedTag(tag)) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (process.env.NODE_ENV !== 'production') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"v-model is not supported on this element type. \" +\n 'If you are working with contenteditable, it\\'s recommended to ' +\n 'wrap a library dedicated for that purpose inside a custom component.',\n el.rawAttrsMap['v-model']\n );\n }\n\n // ensure runtime directive metadata\n return true\n}\n\nfunction genCheckboxModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n addProp(el, 'checked',\n \"Array.isArray(\" + value + \")\" +\n \"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (\n trueValueBinding === 'true'\n ? (\":(\" + value + \")\")\n : (\":_q(\" + value + \",\" + trueValueBinding + \")\")\n )\n );\n addHandler(el, 'change',\n \"var $$a=\" + value + \",\" +\n '$$el=$event.target,' +\n \"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" +\n 'if(Array.isArray($$a)){' +\n \"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" +\n '$$i=_i($$a,$$v);' +\n \"if($$el.checked){$$i<0&&(\" + (genAssignmentCode(value, '$$a.concat([$$v])')) + \")}\" +\n \"else{$$i>-1&&(\" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + \")}\" +\n \"}else{\" + (genAssignmentCode(value, '$$c')) + \"}\",\n null, true\n );\n}\n\nfunction genRadioModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n valueBinding = number ? (\"_n(\" + valueBinding + \")\") : valueBinding;\n addProp(el, 'checked', (\"_q(\" + value + \",\" + valueBinding + \")\"));\n addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\n}\n\nfunction genSelect (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var selectedVal = \"Array.prototype.filter\" +\n \".call($event.target.options,function(o){return o.selected})\" +\n \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\n \"return \" + (number ? '_n(val)' : 'val') + \"})\";\n\n var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n var code = \"var $$selectedVal = \" + selectedVal + \";\";\n code = code + \" \" + (genAssignmentCode(value, assignment));\n addHandler(el, 'change', code, null, true);\n}\n\nfunction genDefaultModel (\n el,\n value,\n modifiers\n) {\n var type = el.attrsMap.type;\n\n // warn if v-bind:value conflicts with v-model\n // except for inputs with v-bind:type\n if (process.env.NODE_ENV !== 'production') {\n var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\n var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n if (value$1 && !typeBinding) {\n var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\n warn$1(\n binding + \"=\\\"\" + value$1 + \"\\\" conflicts with v-model on the same element \" +\n 'because the latter already expands to a value binding internally',\n el.rawAttrsMap[binding]\n );\n }\n }\n\n var ref = modifiers || {};\n var lazy = ref.lazy;\n var number = ref.number;\n var trim = ref.trim;\n var needCompositionGuard = !lazy && type !== 'range';\n var event = lazy\n ? 'change'\n : type === 'range'\n ? RANGE_TOKEN\n : 'input';\n\n var valueExpression = '$event.target.value';\n if (trim) {\n valueExpression = \"$event.target.value.trim()\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n\n var code = genAssignmentCode(value, valueExpression);\n if (needCompositionGuard) {\n code = \"if($event.target.composing)return;\" + code;\n }\n\n addProp(el, 'value', (\"(\" + value + \")\"));\n addHandler(el, event, code, null, true);\n if (trim || number) {\n addHandler(el, 'blur', '$forceUpdate()');\n }\n}\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1 (\n name,\n handler,\n capture,\n passive\n) {\n // async edge case #6566: inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // the solution is simple: we save the timestamp when a handler is attached,\n // and the handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (useMicrotaskFix) {\n var attachedTimestamp = currentFlushTimestamp;\n var original = handler;\n handler = original._wrapper = function (e) {\n if (\n // no bubbling, should always fire.\n // this is just a safety net in case event.timeStamp is unreliable in\n // certain weird environments...\n e.target === e.currentTarget ||\n // event is fired after handler attachment\n e.timeStamp >= attachedTimestamp ||\n // bail for environments that have buggy event.timeStamp implementations\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n // #9681 QtWebEngine event.timeStamp is negative value\n e.timeStamp <= 0 ||\n // #9448 bail if event is fired in another document in a multi-page\n // electron/nw.js app, since event.timeStamp will be using a different\n // starting reference\n e.target.ownerDocument !== document\n ) {\n return original.apply(this, arguments)\n }\n };\n }\n target$1.addEventListener(\n name,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n name,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n name,\n handler._wrapper || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n};\n\n/* */\n\nvar svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (!(key in props)) {\n elm[key] = '';\n }\n }\n\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n // IE doesn't support innerHTML for SVG elements\n svgContainer = svgContainer || document.createElement('div');\n svgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\n var svg = svgContainer.firstChild;\n while (elm.firstChild) {\n elm.removeChild(elm.firstChild);\n }\n while (svg.firstChild) {\n elm.appendChild(svg.firstChild);\n }\n } else if (\n // skip the update if old and new VDOM state is the same.\n // `value` is handled separately because the DOM value may be temporarily\n // out of sync with VDOM state due to focus, composition and modifiers.\n // This #4521 by skipping the unnecessary `checked` update.\n cur !== oldProps[key]\n ) {\n // some property updates can throw\n // e.g. `value` on <progress> w/ non-finite value\n try {\n elm[key] = cur;\n } catch (e) {}\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n};\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n};\n\n/* */\n\nvar whitespaceRE = /\\s+/;\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def$$1) {\n if (!def$$1) {\n return\n }\n /* istanbul ignore else */\n if (typeof def$$1 === 'object') {\n var res = {};\n if (def$$1.css !== false) {\n extend(res, autoCssTransition(def$$1.name || 'v'));\n }\n extend(res, def$$1);\n return res\n } else if (typeof def$$1 === 'string') {\n return autoCssTransition(def$$1)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\nfunction toMs (s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n context = transitionNode.context;\n transitionNode = transitionNode.parent;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show && el.parentNode) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {};\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n];\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n};\n\nvar platformDirectives = {\n model: directive,\n show: show\n};\n\n/* */\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n\nvar isVShowDirective = function (d) { return d.name === 'show'; };\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(isNotTextNode);\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n};\n\n/* */\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n beforeMount: function beforeMount () {\n var this$1 = this;\n\n var update = this._update;\n this._update = function (vnode, hydrating) {\n var restoreActiveInstance = setActiveInstance(this$1);\n // force removing pass\n this$1.__patch__(\n this$1._vnode,\n this$1.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this$1._vnode = this$1.kept;\n restoreActiveInstance();\n update.call(this$1, vnode, hydrating);\n };\n },\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (e && e.target !== el) {\n return\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n};\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n};\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test'\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nvar defaultTagRE = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g;\nvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\nvar buildRegex = cached(function (delimiters) {\n var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\n});\n\n\n\nfunction parseText (\n text,\n delimiters\n) {\n var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n if (!tagRE.test(text)) {\n return\n }\n var tokens = [];\n var rawTokens = [];\n var lastIndex = tagRE.lastIndex = 0;\n var match, index, tokenValue;\n while ((match = tagRE.exec(text))) {\n index = match.index;\n // push text token\n if (index > lastIndex) {\n rawTokens.push(tokenValue = text.slice(lastIndex, index));\n tokens.push(JSON.stringify(tokenValue));\n }\n // tag token\n var exp = parseFilters(match[1].trim());\n tokens.push((\"_s(\" + exp + \")\"));\n rawTokens.push({ '@binding': exp });\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n rawTokens.push(tokenValue = text.slice(lastIndex));\n tokens.push(JSON.stringify(tokenValue));\n }\n return {\n expression: tokens.join('+'),\n tokens: rawTokens\n }\n}\n\n/* */\n\nfunction transformNode (el, options) {\n var warn = options.warn || baseWarn;\n var staticClass = getAndRemoveAttr(el, 'class');\n if (process.env.NODE_ENV !== 'production' && staticClass) {\n var res = parseText(staticClass, options.delimiters);\n if (res) {\n warn(\n \"class=\\\"\" + staticClass + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.',\n el.rawAttrsMap['class']\n );\n }\n }\n if (staticClass) {\n el.staticClass = JSON.stringify(staticClass);\n }\n var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n if (classBinding) {\n el.classBinding = classBinding;\n }\n}\n\nfunction genData (el) {\n var data = '';\n if (el.staticClass) {\n data += \"staticClass:\" + (el.staticClass) + \",\";\n }\n if (el.classBinding) {\n data += \"class:\" + (el.classBinding) + \",\";\n }\n return data\n}\n\nvar klass$1 = {\n staticKeys: ['staticClass'],\n transformNode: transformNode,\n genData: genData\n};\n\n/* */\n\nfunction transformNode$1 (el, options) {\n var warn = options.warn || baseWarn;\n var staticStyle = getAndRemoveAttr(el, 'style');\n if (staticStyle) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n var res = parseText(staticStyle, options.delimiters);\n if (res) {\n warn(\n \"style=\\\"\" + staticStyle + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.',\n el.rawAttrsMap['style']\n );\n }\n }\n el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n }\n\n var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n if (styleBinding) {\n el.styleBinding = styleBinding;\n }\n}\n\nfunction genData$1 (el) {\n var data = '';\n if (el.staticStyle) {\n data += \"staticStyle:\" + (el.staticStyle) + \",\";\n }\n if (el.styleBinding) {\n data += \"style:(\" + (el.styleBinding) + \"),\";\n }\n return data\n}\n\nvar style$1 = {\n staticKeys: ['staticStyle'],\n transformNode: transformNode$1,\n genData: genData$1\n};\n\n/* */\n\nvar decoder;\n\nvar he = {\n decode: function decode (html) {\n decoder = decoder || document.createElement('div');\n decoder.innerHTML = html;\n return decoder.textContent\n }\n};\n\n/* */\n\nvar isUnaryTag = makeMap(\n 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n 'link,meta,param,source,track,wbr'\n);\n\n// Elements that you can, intentionally, leave open\n// (and which close themselves)\nvar canBeLeftOpenTag = makeMap(\n 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\n);\n\n// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\nvar isNonPhrasingTag = makeMap(\n 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n 'title,tr,track'\n);\n\n/**\n * Not type-checking this file because it's mostly vendor code.\n */\n\n// Regular Expressions for parsing tags and attributes\nvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\nvar dynamicArgAttribute = /^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\nvar ncname = \"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\" + (unicodeRegExp.source) + \"]*\";\nvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\nvar startTagOpen = new RegExp((\"^<\" + qnameCapture));\nvar startTagClose = /^\\s*(\\/?)>/;\nvar endTag = new RegExp((\"^<\\\\/\" + qnameCapture + \"[^>]*>\"));\nvar doctype = /^<!DOCTYPE [^>]+>/i;\n// #7298: escape - to avoid being passed as HTML comment when inlined in page\nvar comment = /^<!\\--/;\nvar conditionalComment = /^<!\\[/;\n\n// Special Elements (can contain anything)\nvar isPlainTextElement = makeMap('script,style,textarea', true);\nvar reCache = {};\n\nvar decodingMap = {\n '&lt;': '<',\n '&gt;': '>',\n '&quot;': '\"',\n '&amp;': '&',\n '&#10;': '\\n',\n '&#9;': '\\t',\n '&#39;': \"'\"\n};\nvar encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;\nvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;\n\n// #5992\nvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\nvar shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n'; };\n\nfunction decodeAttr (value, shouldDecodeNewlines) {\n var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n return value.replace(re, function (match) { return decodingMap[match]; })\n}\n\nfunction parseHTML (html, options) {\n var stack = [];\n var expectHTML = options.expectHTML;\n var isUnaryTag$$1 = options.isUnaryTag || no;\n var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\n var index = 0;\n var last, lastTag;\n while (html) {\n last = html;\n // Make sure we're not in a plaintext content element like script/style\n if (!lastTag || !isPlainTextElement(lastTag)) {\n var textEnd = html.indexOf('<');\n if (textEnd === 0) {\n // Comment:\n if (comment.test(html)) {\n var commentEnd = html.indexOf('-->');\n\n if (commentEnd >= 0) {\n if (options.shouldKeepComment) {\n options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);\n }\n advance(commentEnd + 3);\n continue\n }\n }\n\n // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n if (conditionalComment.test(html)) {\n var conditionalEnd = html.indexOf(']>');\n\n if (conditionalEnd >= 0) {\n advance(conditionalEnd + 2);\n continue\n }\n }\n\n // Doctype:\n var doctypeMatch = html.match(doctype);\n if (doctypeMatch) {\n advance(doctypeMatch[0].length);\n continue\n }\n\n // End tag:\n var endTagMatch = html.match(endTag);\n if (endTagMatch) {\n var curIndex = index;\n advance(endTagMatch[0].length);\n parseEndTag(endTagMatch[1], curIndex, index);\n continue\n }\n\n // Start tag:\n var startTagMatch = parseStartTag();\n if (startTagMatch) {\n handleStartTag(startTagMatch);\n if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {\n advance(1);\n }\n continue\n }\n }\n\n var text = (void 0), rest = (void 0), next = (void 0);\n if (textEnd >= 0) {\n rest = html.slice(textEnd);\n while (\n !endTag.test(rest) &&\n !startTagOpen.test(rest) &&\n !comment.test(rest) &&\n !conditionalComment.test(rest)\n ) {\n // < in plain text, be forgiving and treat it as text\n next = rest.indexOf('<', 1);\n if (next < 0) { break }\n textEnd += next;\n rest = html.slice(textEnd);\n }\n text = html.substring(0, textEnd);\n }\n\n if (textEnd < 0) {\n text = html;\n }\n\n if (text) {\n advance(text.length);\n }\n\n if (options.chars && text) {\n options.chars(text, index - text.length, index);\n }\n } else {\n var endTagLength = 0;\n var stackedTag = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\n var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength = endTag.length;\n if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\n text = text\n .replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\n .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n }\n if (shouldIgnoreFirstNewline(stackedTag, text)) {\n text = text.slice(1);\n }\n if (options.chars) {\n options.chars(text);\n }\n return ''\n });\n index += html.length - rest$1.length;\n html = rest$1;\n parseEndTag(stackedTag, index - endTagLength, index);\n }\n\n if (html === last) {\n options.chars && options.chars(html);\n if (process.env.NODE_ENV !== 'production' && !stack.length && options.warn) {\n options.warn((\"Mal-formatted tag at end of template: \\\"\" + html + \"\\\"\"), { start: index + html.length });\n }\n break\n }\n }\n\n // Clean up any remaining tags\n parseEndTag();\n\n function advance (n) {\n index += n;\n html = html.substring(n);\n }\n\n function parseStartTag () {\n var start = html.match(startTagOpen);\n if (start) {\n var match = {\n tagName: start[1],\n attrs: [],\n start: index\n };\n advance(start[0].length);\n var end, attr;\n while (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {\n attr.start = index;\n advance(attr[0].length);\n attr.end = index;\n match.attrs.push(attr);\n }\n if (end) {\n match.unarySlash = end[1];\n advance(end[0].length);\n match.end = index;\n return match\n }\n }\n }\n\n function handleStartTag (match) {\n var tagName = match.tagName;\n var unarySlash = match.unarySlash;\n\n if (expectHTML) {\n if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n parseEndTag(lastTag);\n }\n if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\n parseEndTag(tagName);\n }\n }\n\n var unary = isUnaryTag$$1(tagName) || !!unarySlash;\n\n var l = match.attrs.length;\n var attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n var args = match.attrs[i];\n var value = args[3] || args[4] || args[5] || '';\n var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\n ? options.shouldDecodeNewlinesForHref\n : options.shouldDecodeNewlines;\n attrs[i] = {\n name: args[1],\n value: decodeAttr(value, shouldDecodeNewlines)\n };\n if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {\n attrs[i].start = args.start + args[0].match(/^\\s*/).length;\n attrs[i].end = args.end;\n }\n }\n\n if (!unary) {\n stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs, start: match.start, end: match.end });\n lastTag = tagName;\n }\n\n if (options.start) {\n options.start(tagName, attrs, unary, match.start, match.end);\n }\n }\n\n function parseEndTag (tagName, start, end) {\n var pos, lowerCasedTagName;\n if (start == null) { start = index; }\n if (end == null) { end = index; }\n\n // Find the closest opened tag of the same type\n if (tagName) {\n lowerCasedTagName = tagName.toLowerCase();\n for (pos = stack.length - 1; pos >= 0; pos--) {\n if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n break\n }\n }\n } else {\n // If no tag name is provided, clean shop\n pos = 0;\n }\n\n if (pos >= 0) {\n // Close all the open elements, up the stack\n for (var i = stack.length - 1; i >= pos; i--) {\n if (process.env.NODE_ENV !== 'production' &&\n (i > pos || !tagName) &&\n options.warn\n ) {\n options.warn(\n (\"tag <\" + (stack[i].tag) + \"> has no matching end tag.\"),\n { start: stack[i].start, end: stack[i].end }\n );\n }\n if (options.end) {\n options.end(stack[i].tag, start, end);\n }\n }\n\n // Remove the open elements from the stack\n stack.length = pos;\n lastTag = pos && stack[pos - 1].tag;\n } else if (lowerCasedTagName === 'br') {\n if (options.start) {\n options.start(tagName, [], true, start, end);\n }\n } else if (lowerCasedTagName === 'p') {\n if (options.start) {\n options.start(tagName, [], false, start, end);\n }\n if (options.end) {\n options.end(tagName, start, end);\n }\n }\n }\n}\n\n/* */\n\nvar onRE = /^@|^v-on:/;\nvar dirRE = /^v-|^@|^:|^#/;\nvar forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\nvar forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nvar stripParensRE = /^\\(|\\)$/g;\nvar dynamicArgRE = /^\\[.*\\]$/;\n\nvar argRE = /:(.*)$/;\nvar bindRE = /^:|^\\.|^v-bind:/;\nvar modifierRE = /\\.[^.\\]]+(?=[^\\]]*$)/g;\n\nvar slotRE = /^v-slot(:|$)|^#/;\n\nvar lineBreakRE = /[\\r\\n]/;\nvar whitespaceRE$1 = /\\s+/g;\n\nvar invalidAttributeRE = /[\\s\"'<>\\/=]/;\n\nvar decodeHTMLCached = cached(he.decode);\n\nvar emptySlotScopeToken = \"_empty_\";\n\n// configurable state\nvar warn$2;\nvar delimiters;\nvar transforms;\nvar preTransforms;\nvar postTransforms;\nvar platformIsPreTag;\nvar platformMustUseProp;\nvar platformGetTagNamespace;\nvar maybeComponent;\n\nfunction createASTElement (\n tag,\n attrs,\n parent\n) {\n return {\n type: 1,\n tag: tag,\n attrsList: attrs,\n attrsMap: makeAttrsMap(attrs),\n rawAttrsMap: {},\n parent: parent,\n children: []\n }\n}\n\n/**\n * Convert HTML string to AST.\n */\nfunction parse (\n template,\n options\n) {\n warn$2 = options.warn || baseWarn;\n\n platformIsPreTag = options.isPreTag || no;\n platformMustUseProp = options.mustUseProp || no;\n platformGetTagNamespace = options.getTagNamespace || no;\n var isReservedTag = options.isReservedTag || no;\n maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); };\n\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n\n delimiters = options.delimiters;\n\n var stack = [];\n var preserveWhitespace = options.preserveWhitespace !== false;\n var whitespaceOption = options.whitespace;\n var root;\n var currentParent;\n var inVPre = false;\n var inPre = false;\n var warned = false;\n\n function warnOnce (msg, range) {\n if (!warned) {\n warned = true;\n warn$2(msg, range);\n }\n }\n\n function closeElement (element) {\n trimEndingWhitespace(element);\n if (!inVPre && !element.processed) {\n element = processElement(element, options);\n }\n // tree management\n if (!stack.length && element !== root) {\n // allow root elements with v-if, v-else-if and v-else\n if (root.if && (element.elseif || element.else)) {\n if (process.env.NODE_ENV !== 'production') {\n checkRootConstraints(element);\n }\n addIfCondition(root, {\n exp: element.elseif,\n block: element\n });\n } else if (process.env.NODE_ENV !== 'production') {\n warnOnce(\n \"Component template should contain exactly one root element. \" +\n \"If you are using v-if on multiple elements, \" +\n \"use v-else-if to chain them instead.\",\n { start: element.start }\n );\n }\n }\n if (currentParent && !element.forbidden) {\n if (element.elseif || element.else) {\n processIfConditions(element, currentParent);\n } else {\n if (element.slotScope) {\n // scoped slot\n // keep it in the children list so that v-else(-if) conditions can\n // find it as the prev node.\n var name = element.slotTarget || '\"default\"'\n ;(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\n }\n currentParent.children.push(element);\n element.parent = currentParent;\n }\n }\n\n // final children cleanup\n // filter out scoped slots\n element.children = element.children.filter(function (c) { return !(c).slotScope; });\n // remove trailing whitespace node again\n trimEndingWhitespace(element);\n\n // check pre state\n if (element.pre) {\n inVPre = false;\n }\n if (platformIsPreTag(element.tag)) {\n inPre = false;\n }\n // apply post-transforms\n for (var i = 0; i < postTransforms.length; i++) {\n postTransforms[i](element, options);\n }\n }\n\n function trimEndingWhitespace (el) {\n // remove trailing whitespace node\n if (!inPre) {\n var lastNode;\n while (\n (lastNode = el.children[el.children.length - 1]) &&\n lastNode.type === 3 &&\n lastNode.text === ' '\n ) {\n el.children.pop();\n }\n }\n }\n\n function checkRootConstraints (el) {\n if (el.tag === 'slot' || el.tag === 'template') {\n warnOnce(\n \"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\n 'contain multiple nodes.',\n { start: el.start }\n );\n }\n if (el.attrsMap.hasOwnProperty('v-for')) {\n warnOnce(\n 'Cannot use v-for on stateful component root element because ' +\n 'it renders multiple elements.',\n el.rawAttrsMap['v-for']\n );\n }\n }\n\n parseHTML(template, {\n warn: warn$2,\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n canBeLeftOpenTag: options.canBeLeftOpenTag,\n shouldDecodeNewlines: options.shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\n shouldKeepComment: options.comments,\n outputSourceRange: options.outputSourceRange,\n start: function start (tag, attrs, unary, start$1, end) {\n // check namespace.\n // inherit parent ns if there is one\n var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n\n // handle IE svg bug\n /* istanbul ignore if */\n if (isIE && ns === 'svg') {\n attrs = guardIESVGBug(attrs);\n }\n\n var element = createASTElement(tag, attrs, currentParent);\n if (ns) {\n element.ns = ns;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (options.outputSourceRange) {\n element.start = start$1;\n element.end = end;\n element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {\n cumulated[attr.name] = attr;\n return cumulated\n }, {});\n }\n attrs.forEach(function (attr) {\n if (invalidAttributeRE.test(attr.name)) {\n warn$2(\n \"Invalid dynamic argument expression: attribute names cannot contain \" +\n \"spaces, quotes, <, >, / or =.\",\n {\n start: attr.start + attr.name.indexOf(\"[\"),\n end: attr.start + attr.name.length\n }\n );\n }\n });\n }\n\n if (isForbiddenTag(element) && !isServerRendering()) {\n element.forbidden = true;\n process.env.NODE_ENV !== 'production' && warn$2(\n 'Templates should only be responsible for mapping the state to the ' +\n 'UI. Avoid placing tags with side-effects in your templates, such as ' +\n \"<\" + tag + \">\" + ', as they will not be parsed.',\n { start: element.start }\n );\n }\n\n // apply pre-transforms\n for (var i = 0; i < preTransforms.length; i++) {\n element = preTransforms[i](element, options) || element;\n }\n\n if (!inVPre) {\n processPre(element);\n if (element.pre) {\n inVPre = true;\n }\n }\n if (platformIsPreTag(element.tag)) {\n inPre = true;\n }\n if (inVPre) {\n processRawAttrs(element);\n } else if (!element.processed) {\n // structural directives\n processFor(element);\n processIf(element);\n processOnce(element);\n }\n\n if (!root) {\n root = element;\n if (process.env.NODE_ENV !== 'production') {\n checkRootConstraints(root);\n }\n }\n\n if (!unary) {\n currentParent = element;\n stack.push(element);\n } else {\n closeElement(element);\n }\n },\n\n end: function end (tag, start, end$1) {\n var element = stack[stack.length - 1];\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {\n element.end = end$1;\n }\n closeElement(element);\n },\n\n chars: function chars (text, start, end) {\n if (!currentParent) {\n if (process.env.NODE_ENV !== 'production') {\n if (text === template) {\n warnOnce(\n 'Component template requires a root element, rather than just text.',\n { start: start }\n );\n } else if ((text = text.trim())) {\n warnOnce(\n (\"text \\\"\" + text + \"\\\" outside root element will be ignored.\"),\n { start: start }\n );\n }\n }\n return\n }\n // IE textarea placeholder bug\n /* istanbul ignore if */\n if (isIE &&\n currentParent.tag === 'textarea' &&\n currentParent.attrsMap.placeholder === text\n ) {\n return\n }\n var children = currentParent.children;\n if (inPre || text.trim()) {\n text = isTextTag(currentParent) ? text : decodeHTMLCached(text);\n } else if (!children.length) {\n // remove the whitespace-only node right after an opening tag\n text = '';\n } else if (whitespaceOption) {\n if (whitespaceOption === 'condense') {\n // in condense mode, remove the whitespace node if it contains\n // line break, otherwise condense to a single space\n text = lineBreakRE.test(text) ? '' : ' ';\n } else {\n text = ' ';\n }\n } else {\n text = preserveWhitespace ? ' ' : '';\n }\n if (text) {\n if (!inPre && whitespaceOption === 'condense') {\n // condense consecutive whitespaces into single space\n text = text.replace(whitespaceRE$1, ' ');\n }\n var res;\n var child;\n if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\n child = {\n type: 2,\n expression: res.expression,\n tokens: res.tokens,\n text: text\n };\n } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\n child = {\n type: 3,\n text: text\n };\n }\n if (child) {\n if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {\n child.start = start;\n child.end = end;\n }\n children.push(child);\n }\n }\n },\n comment: function comment (text, start, end) {\n // adding anything as a sibling to the root node is forbidden\n // comments should still be allowed, but ignored\n if (currentParent) {\n var child = {\n type: 3,\n text: text,\n isComment: true\n };\n if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {\n child.start = start;\n child.end = end;\n }\n currentParent.children.push(child);\n }\n }\n });\n return root\n}\n\nfunction processPre (el) {\n if (getAndRemoveAttr(el, 'v-pre') != null) {\n el.pre = true;\n }\n}\n\nfunction processRawAttrs (el) {\n var list = el.attrsList;\n var len = list.length;\n if (len) {\n var attrs = el.attrs = new Array(len);\n for (var i = 0; i < len; i++) {\n attrs[i] = {\n name: list[i].name,\n value: JSON.stringify(list[i].value)\n };\n if (list[i].start != null) {\n attrs[i].start = list[i].start;\n attrs[i].end = list[i].end;\n }\n }\n } else if (!el.pre) {\n // non root node in pre blocks with no attributes\n el.plain = true;\n }\n}\n\nfunction processElement (\n element,\n options\n) {\n processKey(element);\n\n // determine whether this is a plain element after\n // removing structural attributes\n element.plain = (\n !element.key &&\n !element.scopedSlots &&\n !element.attrsList.length\n );\n\n processRef(element);\n processSlotContent(element);\n processSlotOutlet(element);\n processComponent(element);\n for (var i = 0; i < transforms.length; i++) {\n element = transforms[i](element, options) || element;\n }\n processAttrs(element);\n return element\n}\n\nfunction processKey (el) {\n var exp = getBindingAttr(el, 'key');\n if (exp) {\n if (process.env.NODE_ENV !== 'production') {\n if (el.tag === 'template') {\n warn$2(\n \"<template> cannot be keyed. Place the key on real elements instead.\",\n getRawBindingAttr(el, 'key')\n );\n }\n if (el.for) {\n var iterator = el.iterator2 || el.iterator1;\n var parent = el.parent;\n if (iterator && iterator === exp && parent && parent.tag === 'transition-group') {\n warn$2(\n \"Do not use v-for index as key on <transition-group> children, \" +\n \"this is the same as not using keys.\",\n getRawBindingAttr(el, 'key'),\n true /* tip */\n );\n }\n }\n }\n el.key = exp;\n }\n}\n\nfunction processRef (el) {\n var ref = getBindingAttr(el, 'ref');\n if (ref) {\n el.ref = ref;\n el.refInFor = checkInFor(el);\n }\n}\n\nfunction processFor (el) {\n var exp;\n if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n var res = parseFor(exp);\n if (res) {\n extend(el, res);\n } else if (process.env.NODE_ENV !== 'production') {\n warn$2(\n (\"Invalid v-for expression: \" + exp),\n el.rawAttrsMap['v-for']\n );\n }\n }\n}\n\n\n\nfunction parseFor (exp) {\n var inMatch = exp.match(forAliasRE);\n if (!inMatch) { return }\n var res = {};\n res.for = inMatch[2].trim();\n var alias = inMatch[1].trim().replace(stripParensRE, '');\n var iteratorMatch = alias.match(forIteratorRE);\n if (iteratorMatch) {\n res.alias = alias.replace(forIteratorRE, '').trim();\n res.iterator1 = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.iterator2 = iteratorMatch[2].trim();\n }\n } else {\n res.alias = alias;\n }\n return res\n}\n\nfunction processIf (el) {\n var exp = getAndRemoveAttr(el, 'v-if');\n if (exp) {\n el.if = exp;\n addIfCondition(el, {\n exp: exp,\n block: el\n });\n } else {\n if (getAndRemoveAttr(el, 'v-else') != null) {\n el.else = true;\n }\n var elseif = getAndRemoveAttr(el, 'v-else-if');\n if (elseif) {\n el.elseif = elseif;\n }\n }\n}\n\nfunction processIfConditions (el, parent) {\n var prev = findPrevElement(parent.children);\n if (prev && prev.if) {\n addIfCondition(prev, {\n exp: el.elseif,\n block: el\n });\n } else if (process.env.NODE_ENV !== 'production') {\n warn$2(\n \"v-\" + (el.elseif ? ('else-if=\"' + el.elseif + '\"') : 'else') + \" \" +\n \"used on element <\" + (el.tag) + \"> without corresponding v-if.\",\n el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']\n );\n }\n}\n\nfunction findPrevElement (children) {\n var i = children.length;\n while (i--) {\n if (children[i].type === 1) {\n return children[i]\n } else {\n if (process.env.NODE_ENV !== 'production' && children[i].text !== ' ') {\n warn$2(\n \"text \\\"\" + (children[i].text.trim()) + \"\\\" between v-if and v-else(-if) \" +\n \"will be ignored.\",\n children[i]\n );\n }\n children.pop();\n }\n }\n}\n\nfunction addIfCondition (el, condition) {\n if (!el.ifConditions) {\n el.ifConditions = [];\n }\n el.ifConditions.push(condition);\n}\n\nfunction processOnce (el) {\n var once$$1 = getAndRemoveAttr(el, 'v-once');\n if (once$$1 != null) {\n el.once = true;\n }\n}\n\n// handle content being passed to a component as slot,\n// e.g. <template slot=\"xxx\">, <div slot-scope=\"xxx\">\nfunction processSlotContent (el) {\n var slotScope;\n if (el.tag === 'template') {\n slotScope = getAndRemoveAttr(el, 'scope');\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && slotScope) {\n warn$2(\n \"the \\\"scope\\\" attribute for scoped slots have been deprecated and \" +\n \"replaced by \\\"slot-scope\\\" since 2.5. The new \\\"slot-scope\\\" attribute \" +\n \"can also be used on plain elements in addition to <template> to \" +\n \"denote scoped slots.\",\n el.rawAttrsMap['scope'],\n true\n );\n }\n el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\n } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && el.attrsMap['v-for']) {\n warn$2(\n \"Ambiguous combined usage of slot-scope and v-for on <\" + (el.tag) + \"> \" +\n \"(v-for takes higher priority). Use a wrapper <template> for the \" +\n \"scoped slot to make it clearer.\",\n el.rawAttrsMap['slot-scope'],\n true\n );\n }\n el.slotScope = slotScope;\n }\n\n // slot=\"xxx\"\n var slotTarget = getBindingAttr(el, 'slot');\n if (slotTarget) {\n el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);\n // preserve slot as an attribute for native shadow DOM compat\n // only for non-scoped slots.\n if (el.tag !== 'template' && !el.slotScope) {\n addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));\n }\n }\n\n // 2.6 v-slot syntax\n {\n if (el.tag === 'template') {\n // v-slot on <template>\n var slotBinding = getAndRemoveAttrByRegex(el, slotRE);\n if (slotBinding) {\n if (process.env.NODE_ENV !== 'production') {\n if (el.slotTarget || el.slotScope) {\n warn$2(\n \"Unexpected mixed usage of different slot syntaxes.\",\n el\n );\n }\n if (el.parent && !maybeComponent(el.parent)) {\n warn$2(\n \"<template v-slot> can only appear at the root level inside \" +\n \"the receiving component\",\n el\n );\n }\n }\n var ref = getSlotName(slotBinding);\n var name = ref.name;\n var dynamic = ref.dynamic;\n el.slotTarget = name;\n el.slotTargetDynamic = dynamic;\n el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf\n }\n } else {\n // v-slot on component, denotes default slot\n var slotBinding$1 = getAndRemoveAttrByRegex(el, slotRE);\n if (slotBinding$1) {\n if (process.env.NODE_ENV !== 'production') {\n if (!maybeComponent(el)) {\n warn$2(\n \"v-slot can only be used on components or <template>.\",\n slotBinding$1\n );\n }\n if (el.slotScope || el.slotTarget) {\n warn$2(\n \"Unexpected mixed usage of different slot syntaxes.\",\n el\n );\n }\n if (el.scopedSlots) {\n warn$2(\n \"To avoid scope ambiguity, the default slot should also use \" +\n \"<template> syntax when there are other named slots.\",\n slotBinding$1\n );\n }\n }\n // add the component's children to its default slot\n var slots = el.scopedSlots || (el.scopedSlots = {});\n var ref$1 = getSlotName(slotBinding$1);\n var name$1 = ref$1.name;\n var dynamic$1 = ref$1.dynamic;\n var slotContainer = slots[name$1] = createASTElement('template', [], el);\n slotContainer.slotTarget = name$1;\n slotContainer.slotTargetDynamic = dynamic$1;\n slotContainer.children = el.children.filter(function (c) {\n if (!c.slotScope) {\n c.parent = slotContainer;\n return true\n }\n });\n slotContainer.slotScope = slotBinding$1.value || emptySlotScopeToken;\n // remove children as they are returned from scopedSlots now\n el.children = [];\n // mark el non-plain so data gets generated\n el.plain = false;\n }\n }\n }\n}\n\nfunction getSlotName (binding) {\n var name = binding.name.replace(slotRE, '');\n if (!name) {\n if (binding.name[0] !== '#') {\n name = 'default';\n } else if (process.env.NODE_ENV !== 'production') {\n warn$2(\n \"v-slot shorthand syntax requires a slot name.\",\n binding\n );\n }\n }\n return dynamicArgRE.test(name)\n // dynamic [name]\n ? { name: name.slice(1, -1), dynamic: true }\n // static name\n : { name: (\"\\\"\" + name + \"\\\"\"), dynamic: false }\n}\n\n// handle <slot/> outlets\nfunction processSlotOutlet (el) {\n if (el.tag === 'slot') {\n el.slotName = getBindingAttr(el, 'name');\n if (process.env.NODE_ENV !== 'production' && el.key) {\n warn$2(\n \"`key` does not work on <slot> because slots are abstract outlets \" +\n \"and can possibly expand into multiple elements. \" +\n \"Use the key on a wrapping element instead.\",\n getRawBindingAttr(el, 'key')\n );\n }\n }\n}\n\nfunction processComponent (el) {\n var binding;\n if ((binding = getBindingAttr(el, 'is'))) {\n el.component = binding;\n }\n if (getAndRemoveAttr(el, 'inline-template') != null) {\n el.inlineTemplate = true;\n }\n}\n\nfunction processAttrs (el) {\n var list = el.attrsList;\n var i, l, name, rawName, value, modifiers, syncGen, isDynamic;\n for (i = 0, l = list.length; i < l; i++) {\n name = rawName = list[i].name;\n value = list[i].value;\n if (dirRE.test(name)) {\n // mark element as dynamic\n el.hasBindings = true;\n // modifiers\n modifiers = parseModifiers(name.replace(dirRE, ''));\n // support .foo shorthand syntax for the .prop modifier\n if (modifiers) {\n name = name.replace(modifierRE, '');\n }\n if (bindRE.test(name)) { // v-bind\n name = name.replace(bindRE, '');\n value = parseFilters(value);\n isDynamic = dynamicArgRE.test(name);\n if (isDynamic) {\n name = name.slice(1, -1);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n value.trim().length === 0\n ) {\n warn$2(\n (\"The value for a v-bind expression cannot be empty. Found in \\\"v-bind:\" + name + \"\\\"\")\n );\n }\n if (modifiers) {\n if (modifiers.prop && !isDynamic) {\n name = camelize(name);\n if (name === 'innerHtml') { name = 'innerHTML'; }\n }\n if (modifiers.camel && !isDynamic) {\n name = camelize(name);\n }\n if (modifiers.sync) {\n syncGen = genAssignmentCode(value, \"$event\");\n if (!isDynamic) {\n addHandler(\n el,\n (\"update:\" + (camelize(name))),\n syncGen,\n null,\n false,\n warn$2,\n list[i]\n );\n if (hyphenate(name) !== camelize(name)) {\n addHandler(\n el,\n (\"update:\" + (hyphenate(name))),\n syncGen,\n null,\n false,\n warn$2,\n list[i]\n );\n }\n } else {\n // handler w/ dynamic event name\n addHandler(\n el,\n (\"\\\"update:\\\"+(\" + name + \")\"),\n syncGen,\n null,\n false,\n warn$2,\n list[i],\n true // dynamic\n );\n }\n }\n }\n if ((modifiers && modifiers.prop) || (\n !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\n )) {\n addProp(el, name, value, list[i], isDynamic);\n } else {\n addAttr(el, name, value, list[i], isDynamic);\n }\n } else if (onRE.test(name)) { // v-on\n name = name.replace(onRE, '');\n isDynamic = dynamicArgRE.test(name);\n if (isDynamic) {\n name = name.slice(1, -1);\n }\n addHandler(el, name, value, modifiers, false, warn$2, list[i], isDynamic);\n } else { // normal directives\n name = name.replace(dirRE, '');\n // parse arg\n var argMatch = name.match(argRE);\n var arg = argMatch && argMatch[1];\n isDynamic = false;\n if (arg) {\n name = name.slice(0, -(arg.length + 1));\n if (dynamicArgRE.test(arg)) {\n arg = arg.slice(1, -1);\n isDynamic = true;\n }\n }\n addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);\n if (process.env.NODE_ENV !== 'production' && name === 'model') {\n checkForAliasModel(el, value);\n }\n }\n } else {\n // literal attribute\n if (process.env.NODE_ENV !== 'production') {\n var res = parseText(value, delimiters);\n if (res) {\n warn$2(\n name + \"=\\\"\" + value + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.',\n list[i]\n );\n }\n }\n addAttr(el, name, JSON.stringify(value), list[i]);\n // #6887 firefox doesn't update muted state if set via attribute\n // even immediately after element creation\n if (!el.component &&\n name === 'muted' &&\n platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n addProp(el, name, 'true', list[i]);\n }\n }\n }\n}\n\nfunction checkInFor (el) {\n var parent = el;\n while (parent) {\n if (parent.for !== undefined) {\n return true\n }\n parent = parent.parent;\n }\n return false\n}\n\nfunction parseModifiers (name) {\n var match = name.match(modifierRE);\n if (match) {\n var ret = {};\n match.forEach(function (m) { ret[m.slice(1)] = true; });\n return ret\n }\n}\n\nfunction makeAttrsMap (attrs) {\n var map = {};\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (\n process.env.NODE_ENV !== 'production' &&\n map[attrs[i].name] && !isIE && !isEdge\n ) {\n warn$2('duplicate attribute: ' + attrs[i].name, attrs[i]);\n }\n map[attrs[i].name] = attrs[i].value;\n }\n return map\n}\n\n// for script (e.g. type=\"x/template\") or style, do not decode content\nfunction isTextTag (el) {\n return el.tag === 'script' || el.tag === 'style'\n}\n\nfunction isForbiddenTag (el) {\n return (\n el.tag === 'style' ||\n (el.tag === 'script' && (\n !el.attrsMap.type ||\n el.attrsMap.type === 'text/javascript'\n ))\n )\n}\n\nvar ieNSBug = /^xmlns:NS\\d+/;\nvar ieNSPrefix = /^NS\\d+:/;\n\n/* istanbul ignore next */\nfunction guardIESVGBug (attrs) {\n var res = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!ieNSBug.test(attr.name)) {\n attr.name = attr.name.replace(ieNSPrefix, '');\n res.push(attr);\n }\n }\n return res\n}\n\nfunction checkForAliasModel (el, value) {\n var _el = el;\n while (_el) {\n if (_el.for && _el.alias === value) {\n warn$2(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"You are binding v-model directly to a v-for iteration alias. \" +\n \"This will not be able to modify the v-for source array because \" +\n \"writing to the alias is like modifying a function local variable. \" +\n \"Consider using an array of objects and use v-model on an object property instead.\",\n el.rawAttrsMap['v-model']\n );\n }\n _el = _el.parent;\n }\n}\n\n/* */\n\nfunction preTransformNode (el, options) {\n if (el.tag === 'input') {\n var map = el.attrsMap;\n if (!map['v-model']) {\n return\n }\n\n var typeBinding;\n if (map[':type'] || map['v-bind:type']) {\n typeBinding = getBindingAttr(el, 'type');\n }\n if (!map.type && !typeBinding && map['v-bind']) {\n typeBinding = \"(\" + (map['v-bind']) + \").type\";\n }\n\n if (typeBinding) {\n var ifCondition = getAndRemoveAttr(el, 'v-if', true);\n var ifConditionExtra = ifCondition ? (\"&&(\" + ifCondition + \")\") : \"\";\n var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\n var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\n // 1. checkbox\n var branch0 = cloneASTElement(el);\n // process for on the main node\n processFor(branch0);\n addRawAttr(branch0, 'type', 'checkbox');\n processElement(branch0, options);\n branch0.processed = true; // prevent it from double-processed\n branch0.if = \"(\" + typeBinding + \")==='checkbox'\" + ifConditionExtra;\n addIfCondition(branch0, {\n exp: branch0.if,\n block: branch0\n });\n // 2. add radio else-if condition\n var branch1 = cloneASTElement(el);\n getAndRemoveAttr(branch1, 'v-for', true);\n addRawAttr(branch1, 'type', 'radio');\n processElement(branch1, options);\n addIfCondition(branch0, {\n exp: \"(\" + typeBinding + \")==='radio'\" + ifConditionExtra,\n block: branch1\n });\n // 3. other\n var branch2 = cloneASTElement(el);\n getAndRemoveAttr(branch2, 'v-for', true);\n addRawAttr(branch2, ':type', typeBinding);\n processElement(branch2, options);\n addIfCondition(branch0, {\n exp: ifCondition,\n block: branch2\n });\n\n if (hasElse) {\n branch0.else = true;\n } else if (elseIfCondition) {\n branch0.elseif = elseIfCondition;\n }\n\n return branch0\n }\n }\n}\n\nfunction cloneASTElement (el) {\n return createASTElement(el.tag, el.attrsList.slice(), el.parent)\n}\n\nvar model$1 = {\n preTransformNode: preTransformNode\n};\n\nvar modules$1 = [\n klass$1,\n style$1,\n model$1\n];\n\n/* */\n\nfunction text (el, dir) {\n if (dir.value) {\n addProp(el, 'textContent', (\"_s(\" + (dir.value) + \")\"), dir);\n }\n}\n\n/* */\n\nfunction html (el, dir) {\n if (dir.value) {\n addProp(el, 'innerHTML', (\"_s(\" + (dir.value) + \")\"), dir);\n }\n}\n\nvar directives$1 = {\n model: model,\n text: text,\n html: html\n};\n\n/* */\n\nvar baseOptions = {\n expectHTML: true,\n modules: modules$1,\n directives: directives$1,\n isPreTag: isPreTag,\n isUnaryTag: isUnaryTag,\n mustUseProp: mustUseProp,\n canBeLeftOpenTag: canBeLeftOpenTag,\n isReservedTag: isReservedTag,\n getTagNamespace: getTagNamespace,\n staticKeys: genStaticKeys(modules$1)\n};\n\n/* */\n\nvar isStaticKey;\nvar isPlatformReservedTag;\n\nvar genStaticKeysCached = cached(genStaticKeys$1);\n\n/**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n * create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\nfunction optimize (root, options) {\n if (!root) { return }\n isStaticKey = genStaticKeysCached(options.staticKeys || '');\n isPlatformReservedTag = options.isReservedTag || no;\n // first pass: mark all non-static nodes.\n markStatic$1(root);\n // second pass: mark static roots.\n markStaticRoots(root, false);\n}\n\nfunction genStaticKeys$1 (keys) {\n return makeMap(\n 'type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +\n (keys ? ',' + keys : '')\n )\n}\n\nfunction markStatic$1 (node) {\n node.static = isStatic(node);\n if (node.type === 1) {\n // do not make component slot content static. this avoids\n // 1. components not able to mutate slot nodes\n // 2. static slot content fails for hot-reloading\n if (\n !isPlatformReservedTag(node.tag) &&\n node.tag !== 'slot' &&\n node.attrsMap['inline-template'] == null\n ) {\n return\n }\n for (var i = 0, l = node.children.length; i < l; i++) {\n var child = node.children[i];\n markStatic$1(child);\n if (!child.static) {\n node.static = false;\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n var block = node.ifConditions[i$1].block;\n markStatic$1(block);\n if (!block.static) {\n node.static = false;\n }\n }\n }\n }\n}\n\nfunction markStaticRoots (node, isInFor) {\n if (node.type === 1) {\n if (node.static || node.once) {\n node.staticInFor = isInFor;\n }\n // For a node to qualify as a static root, it should have children that\n // are not just static text. Otherwise the cost of hoisting out will\n // outweigh the benefits and it's better off to just always render it fresh.\n if (node.static && node.children.length && !(\n node.children.length === 1 &&\n node.children[0].type === 3\n )) {\n node.staticRoot = true;\n return\n } else {\n node.staticRoot = false;\n }\n if (node.children) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n markStaticRoots(node.children[i], isInFor || !!node.for);\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n markStaticRoots(node.ifConditions[i$1].block, isInFor);\n }\n }\n }\n}\n\nfunction isStatic (node) {\n if (node.type === 2) { // expression\n return false\n }\n if (node.type === 3) { // text\n return true\n }\n return !!(node.pre || (\n !node.hasBindings && // no dynamic bindings\n !node.if && !node.for && // not v-if or v-for or v-else\n !isBuiltInTag(node.tag) && // not a built-in\n isPlatformReservedTag(node.tag) && // not a component\n !isDirectChildOfTemplateFor(node) &&\n Object.keys(node).every(isStaticKey)\n ))\n}\n\nfunction isDirectChildOfTemplateFor (node) {\n while (node.parent) {\n node = node.parent;\n if (node.tag !== 'template') {\n return false\n }\n if (node.for) {\n return true\n }\n }\n return false\n}\n\n/* */\n\nvar fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function(?:\\s+[\\w$]+)?\\s*\\(/;\nvar fnInvokeRE = /\\([^)]*?\\);*$/;\nvar simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\n\n// KeyboardEvent.keyCode aliases\nvar keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n 'delete': [8, 46]\n};\n\n// KeyboardEvent.key aliases\nvar keyNames = {\n // #7880: IE11 and Edge use `Esc` for Escape key name.\n esc: ['Esc', 'Escape'],\n tab: 'Tab',\n enter: 'Enter',\n // #9112: IE11 uses `Spacebar` for Space key name.\n space: [' ', 'Spacebar'],\n // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\n up: ['Up', 'ArrowUp'],\n left: ['Left', 'ArrowLeft'],\n right: ['Right', 'ArrowRight'],\n down: ['Down', 'ArrowDown'],\n // #9112: IE11 uses `Del` for Delete key name.\n 'delete': ['Backspace', 'Delete', 'Del']\n};\n\n// #4868: modifiers that prevent the execution of the listener\n// need to explicitly return null so that we can determine whether to remove\n// the listener for .once\nvar genGuard = function (condition) { return (\"if(\" + condition + \")return null;\"); };\n\nvar modifierCode = {\n stop: '$event.stopPropagation();',\n prevent: '$event.preventDefault();',\n self: genGuard(\"$event.target !== $event.currentTarget\"),\n ctrl: genGuard(\"!$event.ctrlKey\"),\n shift: genGuard(\"!$event.shiftKey\"),\n alt: genGuard(\"!$event.altKey\"),\n meta: genGuard(\"!$event.metaKey\"),\n left: genGuard(\"'button' in $event && $event.button !== 0\"),\n middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n right: genGuard(\"'button' in $event && $event.button !== 2\")\n};\n\nfunction genHandlers (\n events,\n isNative\n) {\n var prefix = isNative ? 'nativeOn:' : 'on:';\n var staticHandlers = \"\";\n var dynamicHandlers = \"\";\n for (var name in events) {\n var handlerCode = genHandler(events[name]);\n if (events[name] && events[name].dynamic) {\n dynamicHandlers += name + \",\" + handlerCode + \",\";\n } else {\n staticHandlers += \"\\\"\" + name + \"\\\":\" + handlerCode + \",\";\n }\n }\n staticHandlers = \"{\" + (staticHandlers.slice(0, -1)) + \"}\";\n if (dynamicHandlers) {\n return prefix + \"_d(\" + staticHandlers + \",[\" + (dynamicHandlers.slice(0, -1)) + \"])\"\n } else {\n return prefix + staticHandlers\n }\n}\n\nfunction genHandler (handler) {\n if (!handler) {\n return 'function(){}'\n }\n\n if (Array.isArray(handler)) {\n return (\"[\" + (handler.map(function (handler) { return genHandler(handler); }).join(',')) + \"]\")\n }\n\n var isMethodPath = simplePathRE.test(handler.value);\n var isFunctionExpression = fnExpRE.test(handler.value);\n var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));\n\n if (!handler.modifiers) {\n if (isMethodPath || isFunctionExpression) {\n return handler.value\n }\n return (\"function($event){\" + (isFunctionInvocation ? (\"return \" + (handler.value)) : handler.value) + \"}\") // inline statement\n } else {\n var code = '';\n var genModifierCode = '';\n var keys = [];\n for (var key in handler.modifiers) {\n if (modifierCode[key]) {\n genModifierCode += modifierCode[key];\n // left/right\n if (keyCodes[key]) {\n keys.push(key);\n }\n } else if (key === 'exact') {\n var modifiers = (handler.modifiers);\n genModifierCode += genGuard(\n ['ctrl', 'shift', 'alt', 'meta']\n .filter(function (keyModifier) { return !modifiers[keyModifier]; })\n .map(function (keyModifier) { return (\"$event.\" + keyModifier + \"Key\"); })\n .join('||')\n );\n } else {\n keys.push(key);\n }\n }\n if (keys.length) {\n code += genKeyFilter(keys);\n }\n // Make sure modifiers like prevent and stop get executed after key filtering\n if (genModifierCode) {\n code += genModifierCode;\n }\n var handlerCode = isMethodPath\n ? (\"return \" + (handler.value) + \"($event)\")\n : isFunctionExpression\n ? (\"return (\" + (handler.value) + \")($event)\")\n : isFunctionInvocation\n ? (\"return \" + (handler.value))\n : handler.value;\n return (\"function($event){\" + code + handlerCode + \"}\")\n }\n}\n\nfunction genKeyFilter (keys) {\n return (\n // make sure the key filters only apply to KeyboardEvents\n // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake\n // key events that do not have keyCode property...\n \"if(!$event.type.indexOf('key')&&\" +\n (keys.map(genFilterCode).join('&&')) + \")return null;\"\n )\n}\n\nfunction genFilterCode (key) {\n var keyVal = parseInt(key, 10);\n if (keyVal) {\n return (\"$event.keyCode!==\" + keyVal)\n }\n var keyCode = keyCodes[key];\n var keyName = keyNames[key];\n return (\n \"_k($event.keyCode,\" +\n (JSON.stringify(key)) + \",\" +\n (JSON.stringify(keyCode)) + \",\" +\n \"$event.key,\" +\n \"\" + (JSON.stringify(keyName)) +\n \")\"\n )\n}\n\n/* */\n\nfunction on (el, dir) {\n if (process.env.NODE_ENV !== 'production' && dir.modifiers) {\n warn(\"v-on without argument does not support modifiers.\");\n }\n el.wrapListeners = function (code) { return (\"_g(\" + code + \",\" + (dir.value) + \")\"); };\n}\n\n/* */\n\nfunction bind$1 (el, dir) {\n el.wrapData = function (code) {\n return (\"_b(\" + code + \",'\" + (el.tag) + \"',\" + (dir.value) + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\")\n };\n}\n\n/* */\n\nvar baseDirectives = {\n on: on,\n bind: bind$1,\n cloak: noop\n};\n\n/* */\n\n\n\n\n\nvar CodegenState = function CodegenState (options) {\n this.options = options;\n this.warn = options.warn || baseWarn;\n this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n this.directives = extend(extend({}, baseDirectives), options.directives);\n var isReservedTag = options.isReservedTag || no;\n this.maybeComponent = function (el) { return !!el.component || !isReservedTag(el.tag); };\n this.onceId = 0;\n this.staticRenderFns = [];\n this.pre = false;\n};\n\n\n\nfunction generate (\n ast,\n options\n) {\n var state = new CodegenState(options);\n var code = ast ? genElement(ast, state) : '_c(\"div\")';\n return {\n render: (\"with(this){return \" + code + \"}\"),\n staticRenderFns: state.staticRenderFns\n }\n}\n\nfunction genElement (el, state) {\n if (el.parent) {\n el.pre = el.pre || el.parent.pre;\n }\n\n if (el.staticRoot && !el.staticProcessed) {\n return genStatic(el, state)\n } else if (el.once && !el.onceProcessed) {\n return genOnce(el, state)\n } else if (el.for && !el.forProcessed) {\n return genFor(el, state)\n } else if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.tag === 'template' && !el.slotTarget && !state.pre) {\n return genChildren(el, state) || 'void 0'\n } else if (el.tag === 'slot') {\n return genSlot(el, state)\n } else {\n // component or element\n var code;\n if (el.component) {\n code = genComponent(el.component, el, state);\n } else {\n var data;\n if (!el.plain || (el.pre && state.maybeComponent(el))) {\n data = genData$2(el, state);\n }\n\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n code = \"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\";\n }\n // module transforms\n for (var i = 0; i < state.transforms.length; i++) {\n code = state.transforms[i](el, code);\n }\n return code\n }\n}\n\n// hoist static sub-trees out\nfunction genStatic (el, state) {\n el.staticProcessed = true;\n // Some elements (templates) need to behave differently inside of a v-pre\n // node. All pre nodes are static roots, so we can use this as a location to\n // wrap a state change and reset it upon exiting the pre node.\n var originalPreState = state.pre;\n if (el.pre) {\n state.pre = el.pre;\n }\n state.staticRenderFns.push((\"with(this){return \" + (genElement(el, state)) + \"}\"));\n state.pre = originalPreState;\n return (\"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\")\n}\n\n// v-once\nfunction genOnce (el, state) {\n el.onceProcessed = true;\n if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.staticInFor) {\n var key = '';\n var parent = el.parent;\n while (parent) {\n if (parent.for) {\n key = parent.key;\n break\n }\n parent = parent.parent;\n }\n if (!key) {\n process.env.NODE_ENV !== 'production' && state.warn(\n \"v-once can only be used inside v-for that is keyed. \",\n el.rawAttrsMap['v-once']\n );\n return genElement(el, state)\n }\n return (\"_o(\" + (genElement(el, state)) + \",\" + (state.onceId++) + \",\" + key + \")\")\n } else {\n return genStatic(el, state)\n }\n}\n\nfunction genIf (\n el,\n state,\n altGen,\n altEmpty\n) {\n el.ifProcessed = true; // avoid recursion\n return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\n}\n\nfunction genIfConditions (\n conditions,\n state,\n altGen,\n altEmpty\n) {\n if (!conditions.length) {\n return altEmpty || '_e()'\n }\n\n var condition = conditions.shift();\n if (condition.exp) {\n return (\"(\" + (condition.exp) + \")?\" + (genTernaryExp(condition.block)) + \":\" + (genIfConditions(conditions, state, altGen, altEmpty)))\n } else {\n return (\"\" + (genTernaryExp(condition.block)))\n }\n\n // v-if with v-once should generate code like (a)?_m(0):_m(1)\n function genTernaryExp (el) {\n return altGen\n ? altGen(el, state)\n : el.once\n ? genOnce(el, state)\n : genElement(el, state)\n }\n}\n\nfunction genFor (\n el,\n state,\n altGen,\n altHelper\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n\n if (process.env.NODE_ENV !== 'production' &&\n state.maybeComponent(el) &&\n el.tag !== 'slot' &&\n el.tag !== 'template' &&\n !el.key\n ) {\n state.warn(\n \"<\" + (el.tag) + \" v-for=\\\"\" + alias + \" in \" + exp + \"\\\">: component lists rendered with \" +\n \"v-for should have explicit keys. \" +\n \"See https://vuejs.org/guide/list.html#key for more info.\",\n el.rawAttrsMap['v-for'],\n true /* tip */\n );\n }\n\n el.forProcessed = true; // avoid recursion\n return (altHelper || '_l') + \"((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + ((altGen || genElement)(el, state)) +\n '})'\n}\n\nfunction genData$2 (el, state) {\n var data = '{';\n\n // directives first.\n // directives may mutate the el's other properties before they are generated.\n var dirs = genDirectives(el, state);\n if (dirs) { data += dirs + ','; }\n\n // key\n if (el.key) {\n data += \"key:\" + (el.key) + \",\";\n }\n // ref\n if (el.ref) {\n data += \"ref:\" + (el.ref) + \",\";\n }\n if (el.refInFor) {\n data += \"refInFor:true,\";\n }\n // pre\n if (el.pre) {\n data += \"pre:true,\";\n }\n // record original tag name for components using \"is\" attribute\n if (el.component) {\n data += \"tag:\\\"\" + (el.tag) + \"\\\",\";\n }\n // module data generation functions\n for (var i = 0; i < state.dataGenFns.length; i++) {\n data += state.dataGenFns[i](el);\n }\n // attributes\n if (el.attrs) {\n data += \"attrs:\" + (genProps(el.attrs)) + \",\";\n }\n // DOM props\n if (el.props) {\n data += \"domProps:\" + (genProps(el.props)) + \",\";\n }\n // event handlers\n if (el.events) {\n data += (genHandlers(el.events, false)) + \",\";\n }\n if (el.nativeEvents) {\n data += (genHandlers(el.nativeEvents, true)) + \",\";\n }\n // slot target\n // only for non-scoped slots\n if (el.slotTarget && !el.slotScope) {\n data += \"slot:\" + (el.slotTarget) + \",\";\n }\n // scoped slots\n if (el.scopedSlots) {\n data += (genScopedSlots(el, el.scopedSlots, state)) + \",\";\n }\n // component v-model\n if (el.model) {\n data += \"model:{value:\" + (el.model.value) + \",callback:\" + (el.model.callback) + \",expression:\" + (el.model.expression) + \"},\";\n }\n // inline-template\n if (el.inlineTemplate) {\n var inlineTemplate = genInlineTemplate(el, state);\n if (inlineTemplate) {\n data += inlineTemplate + \",\";\n }\n }\n data = data.replace(/,$/, '') + '}';\n // v-bind dynamic argument wrap\n // v-bind with dynamic arguments must be applied using the same v-bind object\n // merge helper so that class/style/mustUseProp attrs are handled correctly.\n if (el.dynamicAttrs) {\n data = \"_b(\" + data + \",\\\"\" + (el.tag) + \"\\\",\" + (genProps(el.dynamicAttrs)) + \")\";\n }\n // v-bind data wrap\n if (el.wrapData) {\n data = el.wrapData(data);\n }\n // v-on data wrap\n if (el.wrapListeners) {\n data = el.wrapListeners(data);\n }\n return data\n}\n\nfunction genDirectives (el, state) {\n var dirs = el.directives;\n if (!dirs) { return }\n var res = 'directives:[';\n var hasRuntime = false;\n var i, l, dir, needRuntime;\n for (i = 0, l = dirs.length; i < l; i++) {\n dir = dirs[i];\n needRuntime = true;\n var gen = state.directives[dir.name];\n if (gen) {\n // compile-time directive that manipulates AST.\n // returns true if it also needs a runtime counterpart.\n needRuntime = !!gen(el, dir, state.warn);\n }\n if (needRuntime) {\n hasRuntime = true;\n res += \"{name:\\\"\" + (dir.name) + \"\\\",rawName:\\\"\" + (dir.rawName) + \"\\\"\" + (dir.value ? (\",value:(\" + (dir.value) + \"),expression:\" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (\",arg:\" + (dir.isDynamicArg ? dir.arg : (\"\\\"\" + (dir.arg) + \"\\\"\"))) : '') + (dir.modifiers ? (\",modifiers:\" + (JSON.stringify(dir.modifiers))) : '') + \"},\";\n }\n }\n if (hasRuntime) {\n return res.slice(0, -1) + ']'\n }\n}\n\nfunction genInlineTemplate (el, state) {\n var ast = el.children[0];\n if (process.env.NODE_ENV !== 'production' && (\n el.children.length !== 1 || ast.type !== 1\n )) {\n state.warn(\n 'Inline-template components must have exactly one child element.',\n { start: el.start }\n );\n }\n if (ast && ast.type === 1) {\n var inlineRenderFns = generate(ast, state.options);\n return (\"inlineTemplate:{render:function(){\" + (inlineRenderFns.render) + \"},staticRenderFns:[\" + (inlineRenderFns.staticRenderFns.map(function (code) { return (\"function(){\" + code + \"}\"); }).join(',')) + \"]}\")\n }\n}\n\nfunction genScopedSlots (\n el,\n slots,\n state\n) {\n // by default scoped slots are considered \"stable\", this allows child\n // components with only scoped slots to skip forced updates from parent.\n // but in some cases we have to bail-out of this optimization\n // for example if the slot contains dynamic names, has v-if or v-for on them...\n var needsForceUpdate = el.for || Object.keys(slots).some(function (key) {\n var slot = slots[key];\n return (\n slot.slotTargetDynamic ||\n slot.if ||\n slot.for ||\n containsSlotChild(slot) // is passing down slot from parent which may be dynamic\n )\n });\n\n // #9534: if a component with scoped slots is inside a conditional branch,\n // it's possible for the same component to be reused but with different\n // compiled slot content. To avoid that, we generate a unique key based on\n // the generated code of all the slot contents.\n var needsKey = !!el.if;\n\n // OR when it is inside another scoped slot or v-for (the reactivity may be\n // disconnected due to the intermediate scope variable)\n // #9438, #9506\n // TODO: this can be further optimized by properly analyzing in-scope bindings\n // and skip force updating ones that do not actually use scope variables.\n if (!needsForceUpdate) {\n var parent = el.parent;\n while (parent) {\n if (\n (parent.slotScope && parent.slotScope !== emptySlotScopeToken) ||\n parent.for\n ) {\n needsForceUpdate = true;\n break\n }\n if (parent.if) {\n needsKey = true;\n }\n parent = parent.parent;\n }\n }\n\n var generatedSlots = Object.keys(slots)\n .map(function (key) { return genScopedSlot(slots[key], state); })\n .join(',');\n\n return (\"scopedSlots:_u([\" + generatedSlots + \"]\" + (needsForceUpdate ? \",null,true\" : \"\") + (!needsForceUpdate && needsKey ? (\",null,false,\" + (hash(generatedSlots))) : \"\") + \")\")\n}\n\nfunction hash(str) {\n var hash = 5381;\n var i = str.length;\n while(i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n return hash >>> 0\n}\n\nfunction containsSlotChild (el) {\n if (el.type === 1) {\n if (el.tag === 'slot') {\n return true\n }\n return el.children.some(containsSlotChild)\n }\n return false\n}\n\nfunction genScopedSlot (\n el,\n state\n) {\n var isLegacySyntax = el.attrsMap['slot-scope'];\n if (el.if && !el.ifProcessed && !isLegacySyntax) {\n return genIf(el, state, genScopedSlot, \"null\")\n }\n if (el.for && !el.forProcessed) {\n return genFor(el, state, genScopedSlot)\n }\n var slotScope = el.slotScope === emptySlotScopeToken\n ? \"\"\n : String(el.slotScope);\n var fn = \"function(\" + slotScope + \"){\" +\n \"return \" + (el.tag === 'template'\n ? el.if && isLegacySyntax\n ? (\"(\" + (el.if) + \")?\" + (genChildren(el, state) || 'undefined') + \":undefined\")\n : genChildren(el, state) || 'undefined'\n : genElement(el, state)) + \"}\";\n // reverse proxy v-slot without scope on this.$slots\n var reverseProxy = slotScope ? \"\" : \",proxy:true\";\n return (\"{key:\" + (el.slotTarget || \"\\\"default\\\"\") + \",fn:\" + fn + reverseProxy + \"}\")\n}\n\nfunction genChildren (\n el,\n state,\n checkSkip,\n altGenElement,\n altGenNode\n) {\n var children = el.children;\n if (children.length) {\n var el$1 = children[0];\n // optimize single v-for\n if (children.length === 1 &&\n el$1.for &&\n el$1.tag !== 'template' &&\n el$1.tag !== 'slot'\n ) {\n var normalizationType = checkSkip\n ? state.maybeComponent(el$1) ? \",1\" : \",0\"\n : \"\";\n return (\"\" + ((altGenElement || genElement)(el$1, state)) + normalizationType)\n }\n var normalizationType$1 = checkSkip\n ? getNormalizationType(children, state.maybeComponent)\n : 0;\n var gen = altGenNode || genNode;\n return (\"[\" + (children.map(function (c) { return gen(c, state); }).join(',')) + \"]\" + (normalizationType$1 ? (\",\" + normalizationType$1) : ''))\n }\n}\n\n// determine the normalization needed for the children array.\n// 0: no normalization needed\n// 1: simple normalization needed (possible 1-level deep nested array)\n// 2: full normalization needed\nfunction getNormalizationType (\n children,\n maybeComponent\n) {\n var res = 0;\n for (var i = 0; i < children.length; i++) {\n var el = children[i];\n if (el.type !== 1) {\n continue\n }\n if (needsNormalization(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\n res = 2;\n break\n }\n if (maybeComponent(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\n res = 1;\n }\n }\n return res\n}\n\nfunction needsNormalization (el) {\n return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\n}\n\nfunction genNode (node, state) {\n if (node.type === 1) {\n return genElement(node, state)\n } else if (node.type === 3 && node.isComment) {\n return genComment(node)\n } else {\n return genText(node)\n }\n}\n\nfunction genText (text) {\n return (\"_v(\" + (text.type === 2\n ? text.expression // no need for () because already wrapped in _s()\n : transformSpecialNewlines(JSON.stringify(text.text))) + \")\")\n}\n\nfunction genComment (comment) {\n return (\"_e(\" + (JSON.stringify(comment.text)) + \")\")\n}\n\nfunction genSlot (el, state) {\n var slotName = el.slotName || '\"default\"';\n var children = genChildren(el, state);\n var res = \"_t(\" + slotName + (children ? (\",\" + children) : '');\n var attrs = el.attrs || el.dynamicAttrs\n ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) { return ({\n // slot props are camelized\n name: camelize(attr.name),\n value: attr.value,\n dynamic: attr.dynamic\n }); }))\n : null;\n var bind$$1 = el.attrsMap['v-bind'];\n if ((attrs || bind$$1) && !children) {\n res += \",null\";\n }\n if (attrs) {\n res += \",\" + attrs;\n }\n if (bind$$1) {\n res += (attrs ? '' : ',null') + \",\" + bind$$1;\n }\n return res + ')'\n}\n\n// componentName is el.component, take it as argument to shun flow's pessimistic refinement\nfunction genComponent (\n componentName,\n el,\n state\n) {\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n return (\"_c(\" + componentName + \",\" + (genData$2(el, state)) + (children ? (\",\" + children) : '') + \")\")\n}\n\nfunction genProps (props) {\n var staticProps = \"\";\n var dynamicProps = \"\";\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var value = transformSpecialNewlines(prop.value);\n if (prop.dynamic) {\n dynamicProps += (prop.name) + \",\" + value + \",\";\n } else {\n staticProps += \"\\\"\" + (prop.name) + \"\\\":\" + value + \",\";\n }\n }\n staticProps = \"{\" + (staticProps.slice(0, -1)) + \"}\";\n if (dynamicProps) {\n return (\"_d(\" + staticProps + \",[\" + (dynamicProps.slice(0, -1)) + \"])\")\n } else {\n return staticProps\n }\n}\n\n// #3895, #4268\nfunction transformSpecialNewlines (text) {\n return text\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n}\n\n/* */\n\n\n\n// these keywords should not appear inside expressions, but operators like\n// typeof, instanceof and in are allowed\nvar prohibitedKeywordRE = new RegExp('\\\\b' + (\n 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n 'super,throw,while,yield,delete,export,import,return,switch,default,' +\n 'extends,finally,continue,debugger,function,arguments'\n).split(',').join('\\\\b|\\\\b') + '\\\\b');\n\n// these unary operators should not be used as property/method names\nvar unaryOperatorsRE = new RegExp('\\\\b' + (\n 'delete,typeof,void'\n).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\n\n// strip strings in expressions\nvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n\n// detect problematic expressions in a template\nfunction detectErrors (ast, warn) {\n if (ast) {\n checkNode(ast, warn);\n }\n}\n\nfunction checkNode (node, warn) {\n if (node.type === 1) {\n for (var name in node.attrsMap) {\n if (dirRE.test(name)) {\n var value = node.attrsMap[name];\n if (value) {\n var range = node.rawAttrsMap[name];\n if (name === 'v-for') {\n checkFor(node, (\"v-for=\\\"\" + value + \"\\\"\"), warn, range);\n } else if (name === 'v-slot' || name[0] === '#') {\n checkFunctionParameterExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), warn, range);\n } else if (onRE.test(name)) {\n checkEvent(value, (name + \"=\\\"\" + value + \"\\\"\"), warn, range);\n } else {\n checkExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), warn, range);\n }\n }\n }\n }\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n checkNode(node.children[i], warn);\n }\n }\n } else if (node.type === 2) {\n checkExpression(node.expression, node.text, warn, node);\n }\n}\n\nfunction checkEvent (exp, text, warn, range) {\n var stripped = exp.replace(stripStringRE, '');\n var keywordMatch = stripped.match(unaryOperatorsRE);\n if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {\n warn(\n \"avoid using JavaScript unary operator as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim()),\n range\n );\n }\n checkExpression(exp, text, warn, range);\n}\n\nfunction checkFor (node, text, warn, range) {\n checkExpression(node.for || '', text, warn, range);\n checkIdentifier(node.alias, 'v-for alias', text, warn, range);\n checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);\n checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);\n}\n\nfunction checkIdentifier (\n ident,\n type,\n text,\n warn,\n range\n) {\n if (typeof ident === 'string') {\n try {\n new Function((\"var \" + ident + \"=_\"));\n } catch (e) {\n warn((\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + (text.trim())), range);\n }\n }\n}\n\nfunction checkExpression (exp, text, warn, range) {\n try {\n new Function((\"return \" + exp));\n } catch (e) {\n var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n if (keywordMatch) {\n warn(\n \"avoid using JavaScript keyword as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\"\\n Raw expression: \" + (text.trim()),\n range\n );\n } else {\n warn(\n \"invalid expression: \" + (e.message) + \" in\\n\\n\" +\n \" \" + exp + \"\\n\\n\" +\n \" Raw expression: \" + (text.trim()) + \"\\n\",\n range\n );\n }\n }\n}\n\nfunction checkFunctionParameterExpression (exp, text, warn, range) {\n try {\n new Function(exp, '');\n } catch (e) {\n warn(\n \"invalid function parameter expression: \" + (e.message) + \" in\\n\\n\" +\n \" \" + exp + \"\\n\\n\" +\n \" Raw expression: \" + (text.trim()) + \"\\n\",\n range\n );\n }\n}\n\n/* */\n\nvar range = 2;\n\nfunction generateCodeFrame (\n source,\n start,\n end\n) {\n if ( start === void 0 ) start = 0;\n if ( end === void 0 ) end = source.length;\n\n var lines = source.split(/\\r?\\n/);\n var count = 0;\n var res = [];\n for (var i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (var j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) { continue }\n res.push((\"\" + (j + 1) + (repeat$1(\" \", 3 - String(j + 1).length)) + \"| \" + (lines[j])));\n var lineLength = lines[j].length;\n if (j === i) {\n // push underline\n var pad = start - (count - lineLength) + 1;\n var length = end > count ? lineLength - pad : end - start;\n res.push(\" | \" + repeat$1(\" \", pad) + repeat$1(\"^\", length));\n } else if (j > i) {\n if (end > count) {\n var length$1 = Math.min(end - count, lineLength);\n res.push(\" | \" + repeat$1(\"^\", length$1));\n }\n count += lineLength + 1;\n }\n }\n break\n }\n }\n return res.join('\\n')\n}\n\nfunction repeat$1 (str, n) {\n var result = '';\n if (n > 0) {\n while (true) { // eslint-disable-line\n if (n & 1) { result += str; }\n n >>>= 1;\n if (n <= 0) { break }\n str += str;\n }\n }\n return result\n}\n\n/* */\n\n\n\nfunction createFunction (code, errors) {\n try {\n return new Function(code)\n } catch (err) {\n errors.push({ err: err, code: code });\n return noop\n }\n}\n\nfunction createCompileToFunctionFn (compile) {\n var cache = Object.create(null);\n\n return function compileToFunctions (\n template,\n options,\n vm\n ) {\n options = extend({}, options);\n var warn$$1 = options.warn || warn;\n delete options.warn;\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n // detect possible CSP restriction\n try {\n new Function('return 1');\n } catch (e) {\n if (e.toString().match(/unsafe-eval|CSP/)) {\n warn$$1(\n 'It seems you are using the standalone build of Vue.js in an ' +\n 'environment with Content Security Policy that prohibits unsafe-eval. ' +\n 'The template compiler cannot work in this environment. Consider ' +\n 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n 'templates into render functions.'\n );\n }\n }\n }\n\n // check cache\n var key = options.delimiters\n ? String(options.delimiters) + template\n : template;\n if (cache[key]) {\n return cache[key]\n }\n\n // compile\n var compiled = compile(template, options);\n\n // check compilation errors/tips\n if (process.env.NODE_ENV !== 'production') {\n if (compiled.errors && compiled.errors.length) {\n if (options.outputSourceRange) {\n compiled.errors.forEach(function (e) {\n warn$$1(\n \"Error compiling template:\\n\\n\" + (e.msg) + \"\\n\\n\" +\n generateCodeFrame(template, e.start, e.end),\n vm\n );\n });\n } else {\n warn$$1(\n \"Error compiling template:\\n\\n\" + template + \"\\n\\n\" +\n compiled.errors.map(function (e) { return (\"- \" + e); }).join('\\n') + '\\n',\n vm\n );\n }\n }\n if (compiled.tips && compiled.tips.length) {\n if (options.outputSourceRange) {\n compiled.tips.forEach(function (e) { return tip(e.msg, vm); });\n } else {\n compiled.tips.forEach(function (msg) { return tip(msg, vm); });\n }\n }\n }\n\n // turn code into functions\n var res = {};\n var fnGenErrors = [];\n res.render = createFunction(compiled.render, fnGenErrors);\n res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n return createFunction(code, fnGenErrors)\n });\n\n // check function generation errors.\n // this should only happen if there is a bug in the compiler itself.\n // mostly for codegen development use\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n warn$$1(\n \"Failed to generate render function:\\n\\n\" +\n fnGenErrors.map(function (ref) {\n var err = ref.err;\n var code = ref.code;\n\n return ((err.toString()) + \" in\\n\\n\" + code + \"\\n\");\n }).join('\\n'),\n vm\n );\n }\n }\n\n return (cache[key] = res)\n }\n}\n\n/* */\n\nfunction createCompilerCreator (baseCompile) {\n return function createCompiler (baseOptions) {\n function compile (\n template,\n options\n ) {\n var finalOptions = Object.create(baseOptions);\n var errors = [];\n var tips = [];\n\n var warn = function (msg, range, tip) {\n (tip ? tips : errors).push(msg);\n };\n\n if (options) {\n if (process.env.NODE_ENV !== 'production' && options.outputSourceRange) {\n // $flow-disable-line\n var leadingSpaceLength = template.match(/^\\s*/)[0].length;\n\n warn = function (msg, range, tip) {\n var data = { msg: msg };\n if (range) {\n if (range.start != null) {\n data.start = range.start + leadingSpaceLength;\n }\n if (range.end != null) {\n data.end = range.end + leadingSpaceLength;\n }\n }\n (tip ? tips : errors).push(data);\n };\n }\n // merge custom modules\n if (options.modules) {\n finalOptions.modules =\n (baseOptions.modules || []).concat(options.modules);\n }\n // merge custom directives\n if (options.directives) {\n finalOptions.directives = extend(\n Object.create(baseOptions.directives || null),\n options.directives\n );\n }\n // copy other options\n for (var key in options) {\n if (key !== 'modules' && key !== 'directives') {\n finalOptions[key] = options[key];\n }\n }\n }\n\n finalOptions.warn = warn;\n\n var compiled = baseCompile(template.trim(), finalOptions);\n if (process.env.NODE_ENV !== 'production') {\n detectErrors(compiled.ast, warn);\n }\n compiled.errors = errors;\n compiled.tips = tips;\n return compiled\n }\n\n return {\n compile: compile,\n compileToFunctions: createCompileToFunctionFn(compile)\n }\n }\n}\n\n/* */\n\n// `createCompilerCreator` allows creating compilers that use alternative\n// parser/optimizer/codegen, e.g the SSR optimizing compiler.\n// Here we just export a default compiler using the default parts.\nvar createCompiler = createCompilerCreator(function baseCompile (\n template,\n options\n) {\n var ast = parse(template.trim(), options);\n if (options.optimize !== false) {\n optimize(ast, options);\n }\n var code = generate(ast, options);\n return {\n ast: ast,\n render: code.render,\n staticRenderFns: code.staticRenderFns\n }\n});\n\n/* */\n\nvar ref$1 = createCompiler(baseOptions);\nvar compile = ref$1.compile;\nvar compileToFunctions = ref$1.compileToFunctions;\n\n/* */\n\n// check whether current browser encodes a char inside attribute values\nvar div;\nfunction getShouldDecode (href) {\n div = div || document.createElement('div');\n div.innerHTML = href ? \"<a href=\\\"\\n\\\"/>\" : \"<div a=\\\"\\n\\\"/>\";\n return div.innerHTML.indexOf('&#10;') > 0\n}\n\n// #3663: IE encodes newlines inside attribute values while other browsers don't\nvar shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\n// #6828: chrome encodes content in a[href]\nvar shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;\n\n/* */\n\nvar idToTemplate = cached(function (id) {\n var el = query(id);\n return el && el.innerHTML\n});\n\nvar mount = Vue.prototype.$mount;\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && query(el);\n\n /* istanbul ignore if */\n if (el === document.body || el === document.documentElement) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Do not mount Vue to <html> or <body> - mount to normal elements instead.\"\n );\n return this\n }\n\n var options = this.$options;\n // resolve template/el and convert to render function\n if (!options.render) {\n var template = options.template;\n if (template) {\n if (typeof template === 'string') {\n if (template.charAt(0) === '#') {\n template = idToTemplate(template);\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !template) {\n warn(\n (\"Template element not found or is empty: \" + (options.template)),\n this\n );\n }\n }\n } else if (template.nodeType) {\n template = template.innerHTML;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn('invalid template option:' + template, this);\n }\n return this\n }\n } else if (el) {\n template = getOuterHTML(el);\n }\n if (template) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile');\n }\n\n var ref = compileToFunctions(template, {\n outputSourceRange: process.env.NODE_ENV !== 'production',\n shouldDecodeNewlines: shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\n delimiters: options.delimiters,\n comments: options.comments\n }, this);\n var render = ref.render;\n var staticRenderFns = ref.staticRenderFns;\n options.render = render;\n options.staticRenderFns = staticRenderFns;\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile end');\n measure((\"vue \" + (this._name) + \" compile\"), 'compile', 'compile end');\n }\n }\n }\n return mount.call(this, el, hydrating)\n};\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\nfunction getOuterHTML (el) {\n if (el.outerHTML) {\n return el.outerHTML\n } else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML\n }\n}\n\nVue.compile = compileToFunctions;\n\nexport default Vue;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","/*!\n * vuex v3.5.1\n * (c) 2020 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n return parent.hasChild(key)\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (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 #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.5.1',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nconst possibleStates = ['converting', 'downloading', 'download finished']\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tisLoading: false\r\n\t\t}\r\n\t},\r\n\tprops: {\r\n\t\tqueueItem: Object\r\n\t},\r\n\tcomputed: {\r\n\t\thasFails() {\r\n\t\t\treturn this.queueItem.failed >= 1\r\n\t\t},\r\n\t\tallFailed() {\r\n\t\t\tlet allFailed = false\r\n\r\n\t\t\tif (this.queueItem.status === 'download finished') {\r\n\t\t\t\tallFailed = this.queueItem.failed === this.queueItem.size\r\n\t\t\t}\r\n\r\n\t\t\treturn allFailed\r\n\t\t},\r\n\t\tfinishedWithFails() {\r\n\t\t\treturn this.queueItem.status === 'download finished' && this.hasFails\r\n\t\t},\r\n\t\tisDeterminateStatus() {\r\n\t\t\treturn possibleStates.indexOf(this.queueItem.status) !== -1\r\n\t\t},\r\n\t\tbarClass() {\r\n\t\t\treturn {\r\n\t\t\t\tconverting: this.queueItem.status === 'converting',\r\n\t\t\t\tindeterminate: !this.isDeterminateStatus,\r\n\t\t\t\tdeterminate: this.isDeterminateStatus\r\n\t\t\t}\r\n\t\t},\r\n\t\tbarStyle() {\r\n\t\t\tlet width = 0\r\n\t\t\tlet backgroundColor = 'var(--accent-color)'\r\n\r\n\t\t\tif (this.hasFails) {\r\n\t\t\t\t// Orange\r\n\t\t\t\tbackgroundColor = 'hsl(33, 100%, 47%)'\r\n\t\t\t} else {\r\n\t\t\t\t// Green\r\n\t\t\t\tbackgroundColor = 'hsl(120, 100%, 40%)'\r\n\t\t\t}\r\n\r\n\t\t\tif (this.allFailed) {\r\n\t\t\t\t// Red\r\n\t\t\t\tbackgroundColor = 'hsl(360, 100%, 35%)'\r\n\t\t\t}\r\n\r\n\t\t\tif (this.queueItem.status === 'download finished') {\r\n\t\t\t\twidth = 100\r\n\t\t\t}\r\n\r\n\t\t\tif (this.queueItem.status === 'downloading') {\r\n\t\t\t\twidth = this.queueItem.progress\r\n\t\t\t}\r\n\r\n\t\t\tif (this.queueItem.status === 'converting') {\r\n\t\t\t\twidth = 100 - this.queueItem.conversion\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\twidth: `${width}%`,\r\n\t\t\t\tbackgroundColor\r\n\t\t\t}\r\n\t\t},\r\n\t\tresultIconText() {\r\n\t\t\tlet text = 'delete_forever'\r\n\r\n\t\t\tif (this.queueItem.status === 'download finished') {\r\n\t\t\t\tif (!this.hasFails) {\r\n\t\t\t\t\ttext = 'done'\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (this.queueItem.failed >= this.queueItem.size) {\r\n\t\t\t\t\t\ttext = 'error'\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttext = 'warning'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn text\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tonResultIconClick() {\r\n\t\t\tif (this.isDeterminateStatus) {\r\n\t\t\t\tif (this.finishedWithFails) {\r\n\t\t\t\t\tthis.$emit('show-errors', this.queueItem)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.queueItem.status === 'downloading') {\r\n\t\t\t\t\tthis.isLoading = true\r\n\t\t\t\t\tthis.$emit('remove-item', this.queueItem.uuid)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.isLoading = true\r\n\t\t\t\tthis.$emit('remove-item', this.queueItem.uuid)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div class=\"download-object\">\r\n\t\t<div class=\"download-info\">\r\n\t\t\t<img width=\"75px\" class=\"rounded coverart\" :src=\"queueItem.cover\" :alt=\"`Cover ${queueItem.title}`\" />\r\n\r\n\t\t\t<div class=\"download-info-data\">\r\n\t\t\t\t<span class=\"download-line\">{{ queueItem.title }}</span> <span class=\"download-slim-separator\"> - </span>\r\n\t\t\t\t<span>{{ queueItem.artist }}</span>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"download-info-status\" style=\"text-align: center\">\r\n\t\t\t\t<span class=\"download-line\"> {{ queueItem.downloaded + queueItem.failed }}/{{ queueItem.size }} </span>\r\n\r\n\t\t\t\t<span\r\n\t\t\t\t\tv-if=\"hasFails\"\r\n\t\t\t\t\tclass=\"inline-flex\"\r\n\t\t\t\t\t:class=\"{ clickable: finishedWithFails }\"\r\n\t\t\t\t\tstyle=\"justify-content: center\"\r\n\t\t\t\t\t@click=\"finishedWithFails ? $emit('show-errors', queueItem) : null\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ queueItem.failed }}\r\n\t\t\t\t\t<i class=\"material-icons\">error_outline</i>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"download-bar\">\r\n\t\t\t<div class=\"progress\">\r\n\t\t\t\t<div :class=\"barClass\" :style=\"barStyle\"></div>\r\n\t\t\t</div>\r\n\t\t\t<i\r\n\t\t\t\tv-if=\"!isLoading\"\r\n\t\t\t\tclass=\"material-icons queue_icon\"\r\n\t\t\t\t:class=\"{ clickable: finishedWithFails || resultIconText === 'delete_forever' }\"\r\n\t\t\t\t@click=\"onResultIconClick\"\r\n\t\t\t>\r\n\t\t\t\t{{ resultIconText }}\r\n\t\t\t</i>\r\n\t\t\t<div v-else class=\"circle-loader\"></div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\">\r\n.download-object {\r\n\tpadding-bottom: 8px;\r\n\r\n\t.download-info {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\r\n\t\timg {\r\n\t\t\theight: 75px;\r\n\t\t\tflex-shrink: 0;\r\n\t\t\tflex: 0 0 75px;\r\n\t\t}\r\n\r\n\t\t.download-line {\r\n\t\t\tdisplay: block;\r\n\t\t}\r\n\r\n\t\t.download-slim-separator {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\r\n\t.download-info-data {\r\n\t\tflex: 1 50%;\r\n\t\tmargin-left: 8px;\r\n\t\toverflow: hidden;\r\n\t}\r\n\r\n\t.download-info-status {\r\n\t\tflex: 1 15%;\r\n\t\tmargin-left: 8px;\r\n\t\twidth: 80px;\r\n\t}\r\n\r\n\t> .download-bar {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\theight: 24px;\r\n\r\n\t\t> .queue_icon {\r\n\t\t\tcursor: default;\r\n\t\t\tmargin-left: 8px;\r\n\t\t}\r\n\r\n\t\t> .progress {\r\n\t\t\tmargin: 0px;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n#download_list:not(.slim) .download-line {\r\n\toverflow: hidden;\r\n\twhite-space: nowrap;\r\n\ttext-overflow: ellipsis;\r\n}\r\n\r\n#download_list.slim {\r\n\t> .download-object {\r\n\t\t.download-info {\r\n\t\t\tdisplay: block;\r\n\r\n\t\t\timg {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\r\n\t\t\t.download-line {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t}\r\n\r\n\t\t\t.download-slim-separator {\r\n\t\t\t\tdisplay: inline-block;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.download-info-data {\r\n\t\t\twidth: calc(80% - 16px);\r\n\t\t\tdisplay: inline-block;\r\n\t\t\tpadding-left: 0px;\r\n\t\t}\r\n\r\n\t\t.download-info-status {\r\n\t\t\twidth: 20%;\r\n\t\t\tdisplay: inline-block; // ignored due to float\r\n\t\t\tfloat: right;\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n\r\n<script>\r\nconst possibleStates = ['converting', 'downloading', 'download finished']\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tisLoading: false\r\n\t\t}\r\n\t},\r\n\tprops: {\r\n\t\tqueueItem: Object\r\n\t},\r\n\tcomputed: {\r\n\t\thasFails() {\r\n\t\t\treturn this.queueItem.failed >= 1\r\n\t\t},\r\n\t\tallFailed() {\r\n\t\t\tlet allFailed = false\r\n\r\n\t\t\tif (this.queueItem.status === 'download finished') {\r\n\t\t\t\tallFailed = this.queueItem.failed === this.queueItem.size\r\n\t\t\t}\r\n\r\n\t\t\treturn allFailed\r\n\t\t},\r\n\t\tfinishedWithFails() {\r\n\t\t\treturn this.queueItem.status === 'download finished' && this.hasFails\r\n\t\t},\r\n\t\tisDeterminateStatus() {\r\n\t\t\treturn possibleStates.indexOf(this.queueItem.status) !== -1\r\n\t\t},\r\n\t\tbarClass() {\r\n\t\t\treturn {\r\n\t\t\t\tconverting: this.queueItem.status === 'converting',\r\n\t\t\t\tindeterminate: !this.isDeterminateStatus,\r\n\t\t\t\tdeterminate: this.isDeterminateStatus\r\n\t\t\t}\r\n\t\t},\r\n\t\tbarStyle() {\r\n\t\t\tlet width = 0\r\n\t\t\tlet backgroundColor = 'var(--accent-color)'\r\n\r\n\t\t\tif (this.hasFails) {\r\n\t\t\t\t// Orange\r\n\t\t\t\tbackgroundColor = 'hsl(33, 100%, 47%)'\r\n\t\t\t} else {\r\n\t\t\t\t// Green\r\n\t\t\t\tbackgroundColor = 'hsl(120, 100%, 40%)'\r\n\t\t\t}\r\n\r\n\t\t\tif (this.allFailed) {\r\n\t\t\t\t// Red\r\n\t\t\t\tbackgroundColor = 'hsl(360, 100%, 35%)'\r\n\t\t\t}\r\n\r\n\t\t\tif (this.queueItem.status === 'download finished') {\r\n\t\t\t\twidth = 100\r\n\t\t\t}\r\n\r\n\t\t\tif (this.queueItem.status === 'downloading') {\r\n\t\t\t\twidth = this.queueItem.progress\r\n\t\t\t}\r\n\r\n\t\t\tif (this.queueItem.status === 'converting') {\r\n\t\t\t\twidth = 100 - this.queueItem.conversion\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\twidth: `${width}%`,\r\n\t\t\t\tbackgroundColor\r\n\t\t\t}\r\n\t\t},\r\n\t\tresultIconText() {\r\n\t\t\tlet text = 'delete_forever'\r\n\r\n\t\t\tif (this.queueItem.status === 'download finished') {\r\n\t\t\t\tif (!this.hasFails) {\r\n\t\t\t\t\ttext = 'done'\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (this.queueItem.failed >= this.queueItem.size) {\r\n\t\t\t\t\t\ttext = 'error'\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttext = 'warning'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn text\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tonResultIconClick() {\r\n\t\t\tif (this.isDeterminateStatus) {\r\n\t\t\t\tif (this.finishedWithFails) {\r\n\t\t\t\t\tthis.$emit('show-errors', this.queueItem)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.queueItem.status === 'downloading') {\r\n\t\t\t\t\tthis.isLoading = true\r\n\t\t\t\t\tthis.$emit('remove-item', this.queueItem.uuid)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.isLoading = true\r\n\t\t\t\tthis.$emit('remove-item', this.queueItem.uuid)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>","const state = {\r\n\tcurrentCommit: null,\r\n\tlatestCommit: null,\r\n\tupdateAvailable: false,\r\n\tdeemixVersion: null\r\n}\r\n\r\nconst actions = {\r\n\tsetAboutInfo({ commit }, payload) {\r\n\t\tcommit('SET_CURRENT_COMMIT', payload.currentCommit)\r\n\t\tcommit('SET_LATEST_COMMIT', payload.latestCommit)\r\n\t\tcommit('SET_UPDATE_AVAILABLE', payload.updateAvailable)\r\n\t\tcommit('SET_DEEMIX_VERSION', payload.deemixVersion)\r\n\t}\r\n}\r\n\r\nconst getters = {\r\n\tgetAboutInfo: state => state\r\n}\r\n\r\nconst mutations = {\r\n\tSET_CURRENT_COMMIT: (state, payload) => {\r\n\t\tstate.currentCommit = payload\r\n\t},\r\n\tSET_LATEST_COMMIT: (state, payload) => {\r\n\t\tstate.latestCommit = payload\r\n\t},\r\n\tSET_UPDATE_AVAILABLE: (state, payload) => {\r\n\t\tstate.updateAvailable = payload\r\n\t},\r\n\tSET_DEEMIX_VERSION: (state, payload) => {\r\n\t\tstate.deemixVersion = payload\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tstate,\r\n\tgetters,\r\n\tactions,\r\n\tmutations\r\n}\r\n","const getDefaultState = () => {\r\n\treturn {\r\n\t\tarl: localStorage.getItem('arl') || '',\r\n\t\tstatus: null,\r\n\t\tuser: {\r\n\t\t\tid: null,\r\n\t\t\tname: '',\r\n\t\t\tpicture: ''\r\n\t\t},\r\n\t\tclientMode: false\r\n\t}\r\n}\r\n\r\nconst state = getDefaultState()\r\n\r\nconst actions = {\r\n\tlogin({ commit, dispatch }, payload) {\r\n\t\tconst { arl, user, status } = payload\r\n\r\n\t\tdispatch('setARL', { arl })\r\n\t\tcommit('SET_USER', user)\r\n\t\tcommit('SET_STATUS', status)\r\n\t},\r\n\tlogout({ commit }) {\r\n\t\tlocalStorage.removeItem('arl')\r\n\r\n\t\tcommit('RESET_LOGIN')\r\n\t},\r\n\tsetARL({ commit }, payload) {\r\n\t\tlet { arl, saveOnLocalStorage } = payload\r\n\r\n\t\tsaveOnLocalStorage = typeof saveOnLocalStorage === 'undefined' ? true : saveOnLocalStorage\r\n\r\n\t\tcommit('SET_ARL', arl)\r\n\r\n\t\tif (saveOnLocalStorage) {\r\n\t\t\tlocalStorage.setItem('arl', arl)\r\n\t\t}\r\n\t},\r\n\tremoveARL({ commit }) {\r\n\t\tcommit('SET_ARL', '')\r\n\r\n\t\tlocalStorage.removeItem('arl')\r\n\t},\r\n\tsetUser({ commit }, payload) {\r\n\t\tcommit('SET_USER', payload)\r\n\t},\r\n\tsetClientMode({ commit }, payload) {\r\n\t\tcommit('SET_CLIENT_MODE', payload)\r\n\t}\r\n}\r\n\r\nconst getters = {\r\n\tgetARL: state => state.arl,\r\n\tgetUser: state => state.user,\r\n\tgetClientMode: state => state.clientMode,\r\n\tisLoggedIn: state => !!state.arl\r\n}\r\n\r\nconst mutations = {\r\n\tSET_ARL(state, payload) {\r\n\t\tstate.arl = payload\r\n\t},\r\n\tSET_STATUS(state, payload) {\r\n\t\tstate.status = payload\r\n\t},\r\n\tSET_USER(state, payload) {\r\n\t\tstate.user = payload\r\n\t},\r\n\tSET_CLIENT_MODE(state, payload) {\r\n\t\tstate.clientMode = payload\r\n\t},\r\n\tRESET_LOGIN(state) {\r\n\t\t// Needed for reactivity\r\n\t\tlet clientMode = state.clientMode\r\n\t\tObject.assign(state, getDefaultState())\r\n\t\tstate.clientMode = clientMode\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tstate,\r\n\tgetters,\r\n\tactions,\r\n\tmutations\r\n}\r\n","const state = {\r\n\tartist: '',\r\n\tbitrate: '',\r\n\tcover: '',\r\n\tdownloaded: 0,\r\n\terrors: [],\r\n\tfailed: 0,\r\n\tid: '',\r\n\tprogress: 0,\r\n\tsilent: true,\r\n\tsize: 0,\r\n\ttitle: '',\r\n\ttype: '',\r\n\tuuid: ''\r\n}\r\n\r\nconst actions = {\r\n\tsetErrors({ commit }, payload) {\r\n\t\tcommit('SET_ERRORS', payload)\r\n\t}\r\n}\r\n\r\nconst getters = {\r\n\tgetErrors: state => state\r\n}\r\n\r\nconst mutations = {\r\n\tSET_ERRORS(state, payload) {\r\n\t\t// The payload has useless data for the GUI, so only the needed data is saved in the store\r\n\t\tfor (const errorName in state) {\r\n\t\t\tif (state.hasOwnProperty(errorName)) {\r\n\t\t\t\tconst error = payload[errorName]\r\n\r\n\t\t\t\tstate[errorName] = error\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tstate,\r\n\tgetters,\r\n\tactions,\r\n\tmutations\r\n}\r\n","import Vuex from 'vuex'\r\nimport Vue from 'vue'\r\n\r\nimport about from '@/store/modules/about'\r\nimport login from '@/store/modules/login'\r\nimport errors from '@/store/modules/errors'\r\n\r\n// Load Vuex\r\nVue.use(Vuex)\r\n\r\n// Create store\r\nexport default new Vuex.Store({\r\n\tmodules: {\r\n\t\tabout,\r\n\t\tlogin,\r\n\t\terrors\r\n\t},\r\n\tstrict: process.env.NODE_ENV !== 'production'\r\n})\r\n","import store from '@/store'\r\n\r\nexport const socket = io.connect(window.location.href)\r\n\r\nsocket.on('connect', () => {\r\n\tdocument.getElementById('start_app_placeholder').classList.add('loading_placeholder--hidden')\r\n})\r\n\r\nsocket.on('init_update', data => {\r\n\tstore.dispatch('setAboutInfo', data)\r\n})\r\n","/*!\n * Toastify js 1.8.0\n * https://github.com/apvarun/toastify-js\n * @license MIT licensed\n *\n * Copyright (C) 2018 Varun A P\n */\n(function(root, factory) {\n if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Toastify = factory();\n }\n})(this, function(global) {\n // Object initialization\n var Toastify = function(options) {\n // Returning a new init object\n return new Toastify.lib.init(options);\n },\n // Library version\n version = \"1.8.0\";\n\n // Defining the prototype of the object\n Toastify.lib = Toastify.prototype = {\n toastify: version,\n\n constructor: Toastify,\n\n // Initializing the object with required parameters\n init: function(options) {\n // Verifying and validating the input object\n if (!options) {\n options = {};\n }\n\n // Creating the options object\n this.options = {};\n\n this.toastElement = null;\n\n // Validating the options\n this.options.text = options.text || \"Hi there!\"; // Display message\n this.options.node = options.node // Display content as node\n this.options.duration = options.duration === 0 ? 0 : options.duration || 3000; // Display duration\n this.options.selector = options.selector; // Parent selector\n this.options.callback = options.callback || function() {}; // Callback after display\n this.options.destination = options.destination; // On-click destination\n this.options.newWindow = options.newWindow || false; // Open destination in new window\n this.options.close = options.close || false; // Show toast close icon\n this.options.gravity = options.gravity === \"bottom\" ? \"toastify-bottom\" : \"toastify-top\"; // toast position - top or bottom\n this.options.positionLeft = options.positionLeft || false; // toast position - left or right\n this.options.position = options.position || ''; // toast position - left or right\n this.options.backgroundColor = options.backgroundColor; // toast background color\n this.options.avatar = options.avatar || \"\"; // img element src - url or a path\n this.options.className = options.className || \"\"; // additional class names for the toast\n this.options.stopOnFocus = options.stopOnFocus === undefined? true: options.stopOnFocus; // stop timeout on focus\n this.options.onClick = options.onClick; // Callback after click\n\n // Returning the current object for chaining functions\n return this;\n },\n\n // Building the DOM element\n buildToast: function() {\n // Validating if the options are defined\n if (!this.options) {\n throw \"Toastify is not initialized\";\n }\n\n // Creating the DOM object\n var divElement = document.createElement(\"div\");\n divElement.className = \"toastify on \" + this.options.className;\n\n // Positioning toast to left or right or center\n if (!!this.options.position) {\n divElement.className += \" toastify-\" + this.options.position;\n } else {\n // To be depreciated in further versions\n if (this.options.positionLeft === true) {\n divElement.className += \" toastify-left\";\n console.warn('Property `positionLeft` will be depreciated in further versions. Please use `position` instead.')\n } else {\n // Default position\n divElement.className += \" toastify-right\";\n }\n }\n\n // Assigning gravity of element\n divElement.className += \" \" + this.options.gravity;\n\n if (this.options.backgroundColor) {\n divElement.style.background = this.options.backgroundColor;\n }\n\n // Adding the toast message/node\n if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) {\n // If we have a valid node, we insert it\n divElement.appendChild(this.options.node)\n } else {\n divElement.innerHTML = this.options.text;\n\n if (this.options.avatar !== \"\") {\n var avatarElement = document.createElement(\"img\");\n avatarElement.src = this.options.avatar;\n\n avatarElement.className = \"toastify-avatar\";\n\n if (this.options.position == \"left\" || this.options.positionLeft === true) {\n // Adding close icon on the left of content\n divElement.appendChild(avatarElement);\n } else {\n // Adding close icon on the right of content\n divElement.insertAdjacentElement(\"beforeend\", avatarElement);\n }\n }\n }\n\n // Adding a close icon to the toast\n if (this.options.close === true) {\n // Create a span for close element\n var closeElement = document.createElement(\"span\");\n closeElement.innerHTML = \"&#10006;\";\n\n closeElement.className = \"toast-close\";\n\n // Triggering the removal of toast from DOM on close click\n closeElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.removeElement(this.toastElement);\n window.clearTimeout(this.toastElement.timeOutValue);\n }.bind(this)\n );\n\n //Calculating screen width\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Adding the close icon to the toast element\n // Display on the right if screen width is less than or equal to 360px\n if ((this.options.position == \"left\" || this.options.positionLeft === true) && width > 360) {\n // Adding close icon on the left of content\n divElement.insertAdjacentElement(\"afterbegin\", closeElement);\n } else {\n // Adding close icon on the right of content\n divElement.appendChild(closeElement);\n }\n }\n\n // Clear timeout while toast is focused\n if (this.options.stopOnFocus && this.options.duration > 0) {\n const self = this;\n // stop countdown\n divElement.addEventListener(\n \"mouseover\",\n function(event) {\n window.clearTimeout(divElement.timeOutValue);\n }\n )\n // add back the timeout\n divElement.addEventListener(\n \"mouseleave\",\n function() {\n divElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n self.removeElement(divElement);\n },\n self.options.duration\n )\n }\n )\n }\n \n // Adding an on-click destination path\n if (typeof this.options.destination !== \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n if (this.options.newWindow === true) {\n window.open(this.options.destination, \"_blank\");\n } else {\n window.location = this.options.destination;\n }\n }.bind(this)\n );\n }\n\n if (typeof this.options.onClick === \"function\" && typeof this.options.destination === \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.options.onClick(); \n }.bind(this)\n );\n }\n\n // Returning the generated element\n return divElement;\n },\n\n // Displaying the toast\n showToast: function() {\n // Creating the DOM object for the toast\n this.toastElement = this.buildToast();\n\n // Getting the root element to with the toast needs to be added\n var rootElement;\n if (typeof this.options.selector === \"undefined\") {\n rootElement = document.body;\n } else {\n rootElement = document.getElementById(this.options.selector);\n }\n\n // Validating if root element is present in DOM\n if (!rootElement) {\n throw \"Root element is not defined\";\n }\n\n // Adding the DOM element\n rootElement.insertBefore(this.toastElement, rootElement.firstChild);\n\n // Repositioning the toasts in case multiple toasts are present\n Toastify.reposition();\n\n if (this.options.duration > 0) {\n this.toastElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n this.removeElement(this.toastElement);\n }.bind(this),\n this.options.duration\n ); // Binding `this` for function invocation\n }\n\n // Supporting function chaining\n return this;\n },\n\n hideToast: function() {\n if (this.toastElement.timeOutValue) {\n clearTimeout(this.toastElement.timeOutValue);\n }\n this.removeElement(this.toastElement);\n },\n\n // Removing the element from the DOM\n removeElement: function(toastElement) {\n // Hiding the element\n // toastElement.classList.remove(\"on\");\n toastElement.className = toastElement.className.replace(\" on\", \"\");\n\n // Removing the element from DOM after transition end\n window.setTimeout(\n function() {\n // remove options node if any\n if (this.options.node && this.options.node.parentNode) {\n this.options.node.parentNode.removeChild(this.options.node);\n }\n\n // Remove the elemenf from the DOM, only when the parent node was not removed before.\n if (toastElement.parentNode) {\n toastElement.parentNode.removeChild(toastElement);\n }\n\n // Calling the callback function\n this.options.callback.call(toastElement);\n\n // Repositioning the toasts again\n Toastify.reposition();\n }.bind(this),\n 400\n ); // Binding `this` for function invocation\n },\n };\n\n // Positioning the toasts on the DOM\n Toastify.reposition = function() {\n // Top margins with gravity\n var topLeftOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var topRightOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var offsetSize = {\n top: 15,\n bottom: 15,\n };\n\n // Get all toast messages on the DOM\n var allToasts = document.getElementsByClassName(\"toastify\");\n\n var classUsed;\n\n // Modifying the position of each toast element\n for (var i = 0; i < allToasts.length; i++) {\n // Getting the applied gravity\n if (containsClass(allToasts[i], \"toastify-top\") === true) {\n classUsed = \"toastify-top\";\n } else {\n classUsed = \"toastify-bottom\";\n }\n\n var height = allToasts[i].offsetHeight;\n classUsed = classUsed.substr(9, classUsed.length-1)\n // Spacing between toasts\n var offset = 15;\n\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Show toast in center if screen with less than or qual to 360px\n if (width <= 360) {\n // Setting the position\n allToasts[i].style[classUsed] = offsetSize[classUsed] + \"px\";\n\n offsetSize[classUsed] += height + offset;\n } else {\n if (containsClass(allToasts[i], \"toastify-left\") === true) {\n // Setting the position\n allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + \"px\";\n\n topLeftOffsetSize[classUsed] += height + offset;\n } else {\n // Setting the position\n allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + \"px\";\n\n topRightOffsetSize[classUsed] += height + offset;\n }\n }\n }\n\n // Supporting function chaining\n return this;\n };\n\n function containsClass(elem, yourClass) {\n if (!elem || typeof yourClass !== \"string\") {\n return false;\n } else if (\n elem.className &&\n elem.className\n .trim()\n .split(/\\s+/gi)\n .indexOf(yourClass) > -1\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n // Setting up the prototype for the init object\n Toastify.lib.init.prototype = Toastify.lib;\n\n // Returning the Toastify function to be assigned to the window object/module\n return Toastify;\n});\n","import Toastify from 'toastify-js'\r\n\r\nimport { socket } from '@/utils/socket'\r\n\r\nlet toastsWithId = {}\r\n\r\nexport const toast = function(msg, icon = null, dismiss = true, id = null) {\r\n\tif (toastsWithId[id]) {\r\n\t\tlet toastObj = toastsWithId[id]\r\n\r\n\t\tlet toastElement = document.querySelectorAll(`div.toastify[toast_id=${id}]`)\r\n\r\n\t\tif (msg) {\r\n\t\t\ttoastElement.forEach(toast => {\r\n\t\t\t\tconst messages = toast.querySelectorAll('.toast-message')\r\n\r\n\t\t\t\tmessages.forEach(message => {\r\n\t\t\t\t\tmessage.innerHTML = msg\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (icon) {\r\n\t\t\tif (icon == 'loading') {\r\n\t\t\t\ticon = `<div class=\"circle-loader\"></div>`\r\n\t\t\t} else {\r\n\t\t\t\ticon = `<i class=\"material-icons\">${icon}</i>`\r\n\t\t\t}\r\n\r\n\t\t\ttoastElement.forEach(toast => {\r\n\t\t\t\tconst icons = toast.querySelectorAll('.toast-icon')\r\n\r\n\t\t\t\ticons.forEach(toastIcon => {\r\n\t\t\t\t\ttoastIcon.innerHTML = icon\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (dismiss !== null && dismiss) {\r\n\t\t\ttoastElement.forEach(toast => {\r\n\t\t\t\ttoast.classList.add('dismissable')\r\n\t\t\t})\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\ttoastObj.hideToast()\r\n\r\n\t\t\t\tdelete toastsWithId[id]\r\n\t\t\t}, 3000)\r\n\t\t}\r\n\t} else {\r\n\t\tif (icon == null) {\r\n\t\t\ticon = ''\r\n\t\t} else if (icon == 'loading') {\r\n\t\t\ticon = `<div class=\"circle-loader\"></div>`\r\n\t\t} else {\r\n\t\t\ticon = `<i class=\"material-icons\">${icon}</i>`\r\n\t\t}\r\n\r\n\t\tlet toastObj = Toastify({\r\n\t\t\ttext: `<span class=\"toast-icon\">${icon}</span><span class=\"toast-message\">${msg}</toast>`,\r\n\t\t\tduration: dismiss ? 3000 : 0,\r\n\t\t\tgravity: 'bottom',\r\n\t\t\tposition: 'left',\r\n\t\t\tclassName: dismiss ? 'dismissable' : '',\r\n\t\t\tonClick: function() {\r\n\t\t\t\tlet dismissable = true\r\n\r\n\t\t\t\tif (id) {\r\n\t\t\t\t\tlet toastClasses = document.querySelector(`div.toastify[toast_id=${id}]`).classList\r\n\r\n\t\t\t\t\tif (toastClasses) {\r\n\t\t\t\t\t\tdismissable = Array.prototype.slice.call(toastClasses).indexOf('dismissable') != -1\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (toastObj && dismissable) {\r\n\t\t\t\t\ttoastObj.hideToast()\r\n\r\n\t\t\t\t\tif (id) {\r\n\t\t\t\t\t\tdelete toastsWithId[id]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}).showToast()\r\n\t\tif (id) {\r\n\t\t\ttoastsWithId[id] = toastObj\r\n\r\n\t\t\ttoastObj.toastElement.setAttribute('toast_id', id)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nsocket.on('toast', data => {\r\n\tconst { msg, icon, dismiss, id } = data\r\n\r\n\ttoast(msg, icon || null, dismiss !== undefined ? dismiss : true, id || null)\r\n})\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport QueueItem from '@components/downloads/QueueItem.vue'\r\n\r\nimport { socket } from '@/utils/socket'\r\nimport { toast } from '@/utils/toasts'\r\n\r\nconst tabMinWidth = 250\r\nconst tabMaxWidth = 500\r\n\r\nexport default {\r\n\tcomponents: {\r\n\t\tQueueItem\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcachedTabWidth: parseInt(localStorage.getItem('downloadTabWidth')) || 300,\r\n\t\t\tqueue: [],\r\n\t\t\tqueueList: {},\r\n\t\t\tqueueComplete: []\r\n\t\t\t// clientMode: window.clientMode\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters({\r\n\t\t\tclientMode: 'getClientMode'\r\n\t\t})\r\n\t},\r\n\tcreated() {\r\n\t\tconst checkIfToggleBar = keyEvent => {\r\n\t\t\tif (!(keyEvent.ctrlKey && keyEvent.key === 'b')) return\r\n\r\n\t\t\tthis.toggleDownloadTab()\r\n\t\t}\r\n\r\n\t\tdocument.addEventListener('keyup', checkIfToggleBar)\r\n\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tdocument.removeEventListener('keyup', checkIfToggleBar)\r\n\t\t})\r\n\t},\r\n\tmounted() {\r\n\t\tsocket.on('startDownload', this.startDownload)\r\n\t\tsocket.on('startConversion', this.startConversion)\r\n\t\tsocket.on('init_downloadQueue', this.initQueue)\r\n\t\tsocket.on('addedToQueue', this.addToQueue)\r\n\t\tsocket.on('updateQueue', this.updateQueue)\r\n\t\tsocket.on('removedFromQueue', this.removeFromQueue)\r\n\t\tsocket.on('finishDownload', this.finishDownload)\r\n\t\tsocket.on('removedAllDownloads', this.removeAllDownloads)\r\n\t\tsocket.on('removedFinishedDownloads', this.removedFinishedDownloads)\r\n\r\n\t\t// Check if download tab has slim entries\r\n\t\tif ('true' === localStorage.getItem('slimDownloads')) {\r\n\t\t\tthis.$refs.list.classList.add('slim')\r\n\t\t}\r\n\r\n\t\tif ('true' === localStorage.getItem('downloadTabOpen')) {\r\n\t\t\tthis.$refs.container.classList.remove('tab_hidden')\r\n\r\n\t\t\tthis.setTabWidth(this.cachedTabWidth)\r\n\t\t}\r\n\r\n\t\tdocument.addEventListener('mouseup', () => {\r\n\t\t\tdocument.removeEventListener('mousemove', this.handleDrag)\r\n\t\t})\r\n\r\n\t\twindow.addEventListener('beforeunload', () => {\r\n\t\t\tlocalStorage.setItem('downloadTabWidth', this.cachedTabWidth)\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions(['setErrors']),\r\n\t\tonRemoveItem(uuid) {\r\n\t\t\tsocket.emit('removeFromQueue', uuid)\r\n\t\t},\r\n\t\tsetTabWidth(newWidth) {\r\n\t\t\tif (undefined === newWidth) {\r\n\t\t\t\tthis.$refs.container.style.width = ''\r\n\t\t\t\tthis.$refs.list.style.width = ''\r\n\t\t\t} else {\r\n\t\t\t\tthis.$refs.container.style.width = newWidth + 'px'\r\n\t\t\t\tthis.$refs.list.style.width = newWidth + 'px'\r\n\t\t\t}\r\n\t\t},\r\n\t\tinitQueue(data) {\r\n\t\t\tconst {\r\n\t\t\t\tqueue: initQueue,\r\n\t\t\t\tqueueComplete: initQueueComplete,\r\n\t\t\t\tcurrentItem,\r\n\t\t\t\tqueueList: initQueueList,\r\n\t\t\t\trestored\r\n\t\t\t} = data\r\n\r\n\t\t\tif (initQueueComplete.length) {\r\n\t\t\t\tinitQueueComplete.forEach(item => {\r\n\t\t\t\t\tinitQueueList[item].silent = true\r\n\t\t\t\t\tthis.addToQueue(initQueueList[item])\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tif (currentItem) {\r\n\t\t\t\tinitQueueList[currentItem].silent = true\r\n\t\t\t\tthis.addToQueue(initQueueList[currentItem], true)\r\n\t\t\t}\r\n\r\n\t\t\tinitQueue.forEach(item => {\r\n\t\t\t\tinitQueueList[item].silent = true\r\n\t\t\t\tthis.addToQueue(initQueueList[item])\r\n\t\t\t})\r\n\r\n\t\t\tif (restored) {\r\n\t\t\t\ttoast(this.$t('toasts.queueRestored'), 'done', true, 'restoring_queue')\r\n\t\t\t\tsocket.emit('queueRestored')\r\n\t\t\t}\r\n\t\t},\r\n\t\taddToQueue(queueItem, current = false) {\r\n\t\t\tif (Array.isArray(queueItem)) {\r\n\t\t\t\tif (queueItem.length > 1) {\r\n\t\t\t\t\tqueueItem.forEach((item, i) => {\r\n\t\t\t\t\t\titem.silent = true\r\n\t\t\t\t\t\tthis.addToQueue(item)\r\n\t\t\t\t\t})\r\n\t\t\t\t\ttoast(this.$t('toasts.addedMoreToQueue', { n: queueItem.length }), 'playlist_add_check')\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tqueueItem = queueItem[0]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// * Here we have only queueItem objects\r\n\t\t\tthis.$set(queueItem, 'current', current)\r\n\t\t\tthis.$set(this.queueList, queueItem.uuid, queueItem)\r\n\r\n\t\t\t// * Used when opening the app in another tab\r\n\t\t\tconst itemIsAlreadyDownloaded = queueItem.downloaded + queueItem.failed == queueItem.size\r\n\r\n\t\t\tif (itemIsAlreadyDownloaded) {\r\n\t\t\t\tconst itemIsNotInCompletedQueue = this.queueComplete.indexOf(queueItem.uuid) == -1\r\n\r\n\t\t\t\tthis.$set(this.queueList[queueItem.uuid], 'status', 'download finished')\r\n\r\n\t\t\t\tif (itemIsNotInCompletedQueue) {\r\n\t\t\t\t\t// * Add it\r\n\t\t\t\t\tthis.queueComplete.push(queueItem.uuid)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst itemIsNotInQueue = this.queue.indexOf(queueItem.uuid) == -1\r\n\r\n\t\t\t\tif (itemIsNotInQueue) {\r\n\t\t\t\t\tthis.queue.push(queueItem.uuid)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst needToStartDownload = (queueItem.progress > 0 && queueItem.progress < 100) || current\r\n\r\n\t\t\tif (needToStartDownload) {\r\n\t\t\t\tthis.startDownload(queueItem.uuid)\r\n\t\t\t}\r\n\r\n\t\t\tif (!queueItem.silent) {\r\n\t\t\t\ttoast(this.$t('toasts.addedToQueue', { item: queueItem.title }), 'playlist_add_check')\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdateQueue(update) {\r\n\t\t\t// downloaded and failed default to false?\r\n\t\t\tconst { uuid, downloaded, failed, progress, conversion, error, data, errid } = update\r\n\r\n\t\t\tif (uuid && this.queue.indexOf(uuid) > -1) {\r\n\t\t\t\tif (downloaded) {\r\n\t\t\t\t\tthis.queueList[uuid].downloaded++\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (failed) {\r\n\t\t\t\t\tthis.queueList[uuid].failed++\r\n\t\t\t\t\tthis.queueList[uuid].errors.push({ message: error, data: data, errid: errid })\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (progress) {\r\n\t\t\t\t\tthis.queueList[uuid].progress = progress\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (conversion) {\r\n\t\t\t\t\tthis.queueList[uuid].conversion = conversion\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tremoveFromQueue(uuid) {\r\n\t\t\tlet index = this.queue.indexOf(uuid)\r\n\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.$delete(this.queue, index)\r\n\t\t\t\tthis.$delete(this.queueList, uuid)\r\n\t\t\t}\r\n\t\t},\r\n\t\tremoveAllDownloads(currentItem) {\r\n\t\t\tthis.queueComplete = []\r\n\r\n\t\t\tif (!currentItem) {\r\n\t\t\t\tthis.queue = []\r\n\t\t\t\tthis.queueList = {}\r\n\t\t\t} else {\r\n\t\t\t\tthis.queue = [currentItem]\r\n\r\n\t\t\t\tlet tempQueueItem = this.queueList[currentItem]\r\n\r\n\t\t\t\tthis.queueList = {}\r\n\t\t\t\tthis.queueList[currentItem] = tempQueueItem\r\n\t\t\t}\r\n\t\t},\r\n\t\tremovedFinishedDownloads() {\r\n\t\t\tthis.queueComplete.forEach(uuid => {\r\n\t\t\t\tthis.$delete(this.queueList, uuid)\r\n\t\t\t})\r\n\r\n\t\t\tthis.queueComplete = []\r\n\t\t},\r\n\t\ttoggleDownloadTab() {\r\n\t\t\tthis.setTabWidth()\r\n\r\n\t\t\tthis.$refs.container.style.transition = 'all 250ms ease-in-out'\r\n\r\n\t\t\t// Toggle returns a Boolean based on the action it performed\r\n\t\t\tlet isHidden = this.$refs.container.classList.toggle('tab_hidden')\r\n\r\n\t\t\tif (!isHidden) {\r\n\t\t\t\tthis.setTabWidth(this.cachedTabWidth)\r\n\t\t\t}\r\n\r\n\t\t\tlocalStorage.setItem('downloadTabOpen', !isHidden)\r\n\t\t},\r\n\t\tcleanQueue() {\r\n\t\t\tsocket.emit('removeFinishedDownloads')\r\n\t\t},\r\n\t\tcancelQueue() {\r\n\t\t\tsocket.emit('cancelAllDownloads')\r\n\t\t},\r\n\t\topenDownloadsFolder() {\r\n\t\t\t// if (this.clientMode) {\r\n\t\t\tsocket.emit('openDownloadsFolder')\r\n\t\t\t// }\r\n\t\t},\r\n\t\thandleDrag(event) {\r\n\t\t\tlet newWidth = window.innerWidth - event.pageX + 2\r\n\r\n\t\t\tif (newWidth < tabMinWidth) {\r\n\t\t\t\tnewWidth = tabMinWidth\r\n\t\t\t} else if (newWidth > tabMaxWidth) {\r\n\t\t\t\tnewWidth = tabMaxWidth\r\n\t\t\t}\r\n\r\n\t\t\tthis.cachedTabWidth = newWidth\r\n\t\t\tthis.setTabWidth(newWidth)\r\n\t\t},\r\n\t\tstartDrag() {\r\n\t\t\tdocument.addEventListener('mousemove', this.handleDrag)\r\n\t\t},\r\n\t\tstartDownload(uuid) {\r\n\t\t\tthis.$set(this.queueList[uuid], 'status', 'downloading')\r\n\t\t},\r\n\t\tfinishDownload(uuid) {\r\n\t\t\tlet isInQueue = this.queue.indexOf(uuid) > -1\r\n\r\n\t\t\tif (!isInQueue) return\r\n\r\n\t\t\tthis.$set(this.queueList[uuid], 'status', 'download finished')\r\n\t\t\ttoast(this.$t('toasts.finishDownload', { item: this.queueList[uuid].title }), 'done')\r\n\r\n\t\t\tlet index = this.queue.indexOf(uuid)\r\n\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.queue.splice(index, 1)\r\n\t\t\t\tthis.queueComplete.push(uuid)\r\n\t\t\t}\r\n\r\n\t\t\tif (this.queue.length <= 0) {\r\n\t\t\t\ttoast(this.$t('toasts.allDownloaded'), 'done_all')\r\n\t\t\t}\r\n\t\t},\r\n\t\tstartConversion(uuid) {\r\n\t\t\tthis.$set(this.queueList[uuid], 'status', 'converting')\r\n\t\t\tthis.$set(this.queueList[uuid], 'conversion', 0)\r\n\t\t},\r\n\t\tasync showErrorsTab(item) {\r\n\t\t\tawait this.setErrors(item)\r\n\r\n\t\t\tthis.$router.push({ name: 'Errors' })\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div\r\n\t\tid=\"download_tab_container\"\r\n\t\tclass=\"tab_hidden\"\r\n\t\t@transitionend=\"$refs.container.style.transition = ''\"\r\n\t\tref=\"container\"\r\n\t\t:data-label=\"$t('downloads')\"\r\n\t\taria-label=\"downloads\"\r\n\t>\r\n\t\t<div id=\"download_tab_drag_handler\" @mousedown.prevent=\"startDrag\" ref=\"dragHandler\"></div>\r\n\t\t<i\r\n\t\t\tid=\"toggle_download_tab\"\r\n\t\t\tclass=\"material-icons download_bar_icon\"\r\n\t\t\t@click.prevent=\"toggleDownloadTab\"\r\n\t\t\tref=\"toggler\"\r\n\t\t\t:title=\"$t('globals.toggle_download_tab_hint')\"\r\n\t\t></i>\r\n\t\t<div id=\"queue_buttons\">\r\n\t\t\t<i\r\n\t\t\t\tv-if=\"clientMode\"\r\n\t\t\t\tclass=\"material-icons download_bar_icon\"\r\n\t\t\t\t:title=\"$t('globals.open_downloads_folder')\"\r\n\t\t\t\t@click=\"openDownloadsFolder\"\r\n\t\t\t>\r\n\t\t\t\tfolder_open\r\n\t\t\t</i>\r\n\t\t\t<i class=\"material-icons download_bar_icon\" @click=\"cleanQueue\" :title=\"$t('globals.clean_queue_hint')\">\r\n\t\t\t\tclear_all\r\n\t\t\t</i>\r\n\t\t\t<i class=\"material-icons download_bar_icon\" @click=\"cancelQueue\" :title=\"$t('globals.cancel_queue_hint')\">\r\n\t\t\t\tdelete_sweep\r\n\t\t\t</i>\r\n\t\t</div>\r\n\t\t<div id=\"download_list\" ref=\"list\">\r\n\t\t\t<QueueItem\r\n\t\t\t\tv-for=\"item in queueList\"\r\n\t\t\t\t:queue-item=\"item\"\r\n\t\t\t\t:key=\"item.uuid\"\r\n\t\t\t\t@show-errors=\"showErrorsTab\"\r\n\t\t\t\t@remove-item=\"onRemoveItem\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n#download_tab_container {\r\n\theight: 100vh;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from 'vuex'\r\nimport QueueItem from '@components/downloads/QueueItem.vue'\r\n\r\nimport { socket } from '@/utils/socket'\r\nimport { toast } from '@/utils/toasts'\r\n\r\nconst tabMinWidth = 250\r\nconst tabMaxWidth = 500\r\n\r\nexport default {\r\n\tcomponents: {\r\n\t\tQueueItem\r\n\t},\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcachedTabWidth: parseInt(localStorage.getItem('downloadTabWidth')) || 300,\r\n\t\t\tqueue: [],\r\n\t\t\tqueueList: {},\r\n\t\t\tqueueComplete: []\r\n\t\t\t// clientMode: window.clientMode\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters({\r\n\t\t\tclientMode: 'getClientMode'\r\n\t\t})\r\n\t},\r\n\tcreated() {\r\n\t\tconst checkIfToggleBar = keyEvent => {\r\n\t\t\tif (!(keyEvent.ctrlKey && keyEvent.key === 'b')) return\r\n\r\n\t\t\tthis.toggleDownloadTab()\r\n\t\t}\r\n\r\n\t\tdocument.addEventListener('keyup', checkIfToggleBar)\r\n\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tdocument.removeEventListener('keyup', checkIfToggleBar)\r\n\t\t})\r\n\t},\r\n\tmounted() {\r\n\t\tsocket.on('startDownload', this.startDownload)\r\n\t\tsocket.on('startConversion', this.startConversion)\r\n\t\tsocket.on('init_downloadQueue', this.initQueue)\r\n\t\tsocket.on('addedToQueue', this.addToQueue)\r\n\t\tsocket.on('updateQueue', this.updateQueue)\r\n\t\tsocket.on('removedFromQueue', this.removeFromQueue)\r\n\t\tsocket.on('finishDownload', this.finishDownload)\r\n\t\tsocket.on('removedAllDownloads', this.removeAllDownloads)\r\n\t\tsocket.on('removedFinishedDownloads', this.removedFinishedDownloads)\r\n\r\n\t\t// Check if download tab has slim entries\r\n\t\tif ('true' === localStorage.getItem('slimDownloads')) {\r\n\t\t\tthis.$refs.list.classList.add('slim')\r\n\t\t}\r\n\r\n\t\tif ('true' === localStorage.getItem('downloadTabOpen')) {\r\n\t\t\tthis.$refs.container.classList.remove('tab_hidden')\r\n\r\n\t\t\tthis.setTabWidth(this.cachedTabWidth)\r\n\t\t}\r\n\r\n\t\tdocument.addEventListener('mouseup', () => {\r\n\t\t\tdocument.removeEventListener('mousemove', this.handleDrag)\r\n\t\t})\r\n\r\n\t\twindow.addEventListener('beforeunload', () => {\r\n\t\t\tlocalStorage.setItem('downloadTabWidth', this.cachedTabWidth)\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions(['setErrors']),\r\n\t\tonRemoveItem(uuid) {\r\n\t\t\tsocket.emit('removeFromQueue', uuid)\r\n\t\t},\r\n\t\tsetTabWidth(newWidth) {\r\n\t\t\tif (undefined === newWidth) {\r\n\t\t\t\tthis.$refs.container.style.width = ''\r\n\t\t\t\tthis.$refs.list.style.width = ''\r\n\t\t\t} else {\r\n\t\t\t\tthis.$refs.container.style.width = newWidth + 'px'\r\n\t\t\t\tthis.$refs.list.style.width = newWidth + 'px'\r\n\t\t\t}\r\n\t\t},\r\n\t\tinitQueue(data) {\r\n\t\t\tconst {\r\n\t\t\t\tqueue: initQueue,\r\n\t\t\t\tqueueComplete: initQueueComplete,\r\n\t\t\t\tcurrentItem,\r\n\t\t\t\tqueueList: initQueueList,\r\n\t\t\t\trestored\r\n\t\t\t} = data\r\n\r\n\t\t\tif (initQueueComplete.length) {\r\n\t\t\t\tinitQueueComplete.forEach(item => {\r\n\t\t\t\t\tinitQueueList[item].silent = true\r\n\t\t\t\t\tthis.addToQueue(initQueueList[item])\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\tif (currentItem) {\r\n\t\t\t\tinitQueueList[currentItem].silent = true\r\n\t\t\t\tthis.addToQueue(initQueueList[currentItem], true)\r\n\t\t\t}\r\n\r\n\t\t\tinitQueue.forEach(item => {\r\n\t\t\t\tinitQueueList[item].silent = true\r\n\t\t\t\tthis.addToQueue(initQueueList[item])\r\n\t\t\t})\r\n\r\n\t\t\tif (restored) {\r\n\t\t\t\ttoast(this.$t('toasts.queueRestored'), 'done', true, 'restoring_queue')\r\n\t\t\t\tsocket.emit('queueRestored')\r\n\t\t\t}\r\n\t\t},\r\n\t\taddToQueue(queueItem, current = false) {\r\n\t\t\tif (Array.isArray(queueItem)) {\r\n\t\t\t\tif (queueItem.length > 1) {\r\n\t\t\t\t\tqueueItem.forEach((item, i) => {\r\n\t\t\t\t\t\titem.silent = true\r\n\t\t\t\t\t\tthis.addToQueue(item)\r\n\t\t\t\t\t})\r\n\t\t\t\t\ttoast(this.$t('toasts.addedMoreToQueue', { n: queueItem.length }), 'playlist_add_check')\r\n\t\t\t\t\treturn\r\n\t\t\t\t} else {\r\n\t\t\t\t\tqueueItem = queueItem[0]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// * Here we have only queueItem objects\r\n\t\t\tthis.$set(queueItem, 'current', current)\r\n\t\t\tthis.$set(this.queueList, queueItem.uuid, queueItem)\r\n\r\n\t\t\t// * Used when opening the app in another tab\r\n\t\t\tconst itemIsAlreadyDownloaded = queueItem.downloaded + queueItem.failed == queueItem.size\r\n\r\n\t\t\tif (itemIsAlreadyDownloaded) {\r\n\t\t\t\tconst itemIsNotInCompletedQueue = this.queueComplete.indexOf(queueItem.uuid) == -1\r\n\r\n\t\t\t\tthis.$set(this.queueList[queueItem.uuid], 'status', 'download finished')\r\n\r\n\t\t\t\tif (itemIsNotInCompletedQueue) {\r\n\t\t\t\t\t// * Add it\r\n\t\t\t\t\tthis.queueComplete.push(queueItem.uuid)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst itemIsNotInQueue = this.queue.indexOf(queueItem.uuid) == -1\r\n\r\n\t\t\t\tif (itemIsNotInQueue) {\r\n\t\t\t\t\tthis.queue.push(queueItem.uuid)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst needToStartDownload = (queueItem.progress > 0 && queueItem.progress < 100) || current\r\n\r\n\t\t\tif (needToStartDownload) {\r\n\t\t\t\tthis.startDownload(queueItem.uuid)\r\n\t\t\t}\r\n\r\n\t\t\tif (!queueItem.silent) {\r\n\t\t\t\ttoast(this.$t('toasts.addedToQueue', { item: queueItem.title }), 'playlist_add_check')\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdateQueue(update) {\r\n\t\t\t// downloaded and failed default to false?\r\n\t\t\tconst { uuid, downloaded, failed, progress, conversion, error, data, errid } = update\r\n\r\n\t\t\tif (uuid && this.queue.indexOf(uuid) > -1) {\r\n\t\t\t\tif (downloaded) {\r\n\t\t\t\t\tthis.queueList[uuid].downloaded++\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (failed) {\r\n\t\t\t\t\tthis.queueList[uuid].failed++\r\n\t\t\t\t\tthis.queueList[uuid].errors.push({ message: error, data: data, errid: errid })\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (progress) {\r\n\t\t\t\t\tthis.queueList[uuid].progress = progress\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (conversion) {\r\n\t\t\t\t\tthis.queueList[uuid].conversion = conversion\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tremoveFromQueue(uuid) {\r\n\t\t\tlet index = this.queue.indexOf(uuid)\r\n\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.$delete(this.queue, index)\r\n\t\t\t\tthis.$delete(this.queueList, uuid)\r\n\t\t\t}\r\n\t\t},\r\n\t\tremoveAllDownloads(currentItem) {\r\n\t\t\tthis.queueComplete = []\r\n\r\n\t\t\tif (!currentItem) {\r\n\t\t\t\tthis.queue = []\r\n\t\t\t\tthis.queueList = {}\r\n\t\t\t} else {\r\n\t\t\t\tthis.queue = [currentItem]\r\n\r\n\t\t\t\tlet tempQueueItem = this.queueList[currentItem]\r\n\r\n\t\t\t\tthis.queueList = {}\r\n\t\t\t\tthis.queueList[currentItem] = tempQueueItem\r\n\t\t\t}\r\n\t\t},\r\n\t\tremovedFinishedDownloads() {\r\n\t\t\tthis.queueComplete.forEach(uuid => {\r\n\t\t\t\tthis.$delete(this.queueList, uuid)\r\n\t\t\t})\r\n\r\n\t\t\tthis.queueComplete = []\r\n\t\t},\r\n\t\ttoggleDownloadTab() {\r\n\t\t\tthis.setTabWidth()\r\n\r\n\t\t\tthis.$refs.container.style.transition = 'all 250ms ease-in-out'\r\n\r\n\t\t\t// Toggle returns a Boolean based on the action it performed\r\n\t\t\tlet isHidden = this.$refs.container.classList.toggle('tab_hidden')\r\n\r\n\t\t\tif (!isHidden) {\r\n\t\t\t\tthis.setTabWidth(this.cachedTabWidth)\r\n\t\t\t}\r\n\r\n\t\t\tlocalStorage.setItem('downloadTabOpen', !isHidden)\r\n\t\t},\r\n\t\tcleanQueue() {\r\n\t\t\tsocket.emit('removeFinishedDownloads')\r\n\t\t},\r\n\t\tcancelQueue() {\r\n\t\t\tsocket.emit('cancelAllDownloads')\r\n\t\t},\r\n\t\topenDownloadsFolder() {\r\n\t\t\t// if (this.clientMode) {\r\n\t\t\tsocket.emit('openDownloadsFolder')\r\n\t\t\t// }\r\n\t\t},\r\n\t\thandleDrag(event) {\r\n\t\t\tlet newWidth = window.innerWidth - event.pageX + 2\r\n\r\n\t\t\tif (newWidth < tabMinWidth) {\r\n\t\t\t\tnewWidth = tabMinWidth\r\n\t\t\t} else if (newWidth > tabMaxWidth) {\r\n\t\t\t\tnewWidth = tabMaxWidth\r\n\t\t\t}\r\n\r\n\t\t\tthis.cachedTabWidth = newWidth\r\n\t\t\tthis.setTabWidth(newWidth)\r\n\t\t},\r\n\t\tstartDrag() {\r\n\t\t\tdocument.addEventListener('mousemove', this.handleDrag)\r\n\t\t},\r\n\t\tstartDownload(uuid) {\r\n\t\t\tthis.$set(this.queueList[uuid], 'status', 'downloading')\r\n\t\t},\r\n\t\tfinishDownload(uuid) {\r\n\t\t\tlet isInQueue = this.queue.indexOf(uuid) > -1\r\n\r\n\t\t\tif (!isInQueue) return\r\n\r\n\t\t\tthis.$set(this.queueList[uuid], 'status', 'download finished')\r\n\t\t\ttoast(this.$t('toasts.finishDownload', { item: this.queueList[uuid].title }), 'done')\r\n\r\n\t\t\tlet index = this.queue.indexOf(uuid)\r\n\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.queue.splice(index, 1)\r\n\t\t\t\tthis.queueComplete.push(uuid)\r\n\t\t\t}\r\n\r\n\t\t\tif (this.queue.length <= 0) {\r\n\t\t\t\ttoast(this.$t('toasts.allDownloaded'), 'done_all')\r\n\t\t\t}\r\n\t\t},\r\n\t\tstartConversion(uuid) {\r\n\t\t\tthis.$set(this.queueList[uuid], 'status', 'converting')\r\n\t\t\tthis.$set(this.queueList[uuid], 'conversion', 0)\r\n\t\t},\r\n\t\tasync showErrorsTab(item) {\r\n\t\t\tawait this.setErrors(item)\r\n\r\n\t\t\tthis.$router.push({ name: 'Errors' })\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n\tprops: {\r\n\t\ttext: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false,\r\n\t\t\tdefault: 'Loading...'\r\n\t\t},\r\n\t\tid: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false\r\n\t\t},\r\n\t\thidden: {\r\n\t\t\ttype: Boolean,\r\n\t\t\trequired: false,\r\n\t\t\tdefault: false\r\n\t\t}\r\n\t}\r\n}\r\n","<template functional>\r\n\t<div :id=\"props.id\" class=\"loading_placeholder\" :class=\"{ 'loading_placeholder--hidden': props.hidden }\">\r\n\t\t<span class=\"loading_placeholder__text\">{{ props.text }}</span>\r\n\t\t<div class=\"lds-ring\">\r\n\t\t\t<div></div>\r\n\t\t\t<div></div>\r\n\t\t\t<div></div>\r\n\t\t\t<div></div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n<script>\r\nexport default {\r\n\tprops: {\r\n\t\ttext: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false,\r\n\t\t\tdefault: 'Loading...'\r\n\t\t},\r\n\t\tid: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: false\r\n\t\t},\r\n\t\thidden: {\r\n\t\t\ttype: Boolean,\r\n\t\t\trequired: false,\r\n\t\t\tdefault: false\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n","import { socket } from '@/utils/socket'\r\n\r\nexport function sendAddToQueue(url, bitrate = null) {\r\n\tif (!url) throw new Error('No URL given to sendAddToQueue function!')\r\n\r\n\tsocket.emit('addToQueue', { url, bitrate }, () => {})\r\n}\r\n\r\nexport function aggregateDownloadLinks(releases) {\r\n\tlet links = []\r\n\r\n\treleases.forEach(release => {\r\n\t\tlinks.push(release.link)\r\n\t})\r\n\r\n\treturn links.join(';')\r\n}\r\n\r\nexport default {\r\n\tsendAddToQueue\r\n}\r\n","/**\r\n * Climbs the DOM until the root is reached, storing every node passed.\r\n * @param \t{HTMLElement} el\r\n * @return\t{Array}\t\t\t\tContains all the nodes between el and the root\r\n */\r\nexport function generatePath(el) {\r\n\tif (!el) {\r\n\t\tthrow new Error('No element passed to the generatePath function!')\r\n\t}\r\n\r\n\tlet path = [el]\r\n\r\n\twhile ((el = el.parentNode) && el !== document) {\r\n\t\tpath.push(el)\r\n\t}\r\n\r\n\treturn path\r\n}\r\n\r\nexport function isValidURL(text) {\r\n\tlet lowerCaseText = text.toLowerCase()\r\n\r\n\tif (lowerCaseText.startsWith('http')) {\r\n\t\tif (\r\n\t\t\tlowerCaseText.indexOf('deezer.com') >= 0 ||\r\n\t\t\tlowerCaseText.indexOf('deezer.page.link') >= 0 ||\r\n\t\t\tlowerCaseText.indexOf('open.spotify.com') >= 0\r\n\t\t) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t} else if (lowerCaseText.startsWith('spotify:')) {\r\n\t\treturn true\r\n\t}\r\n\treturn false\r\n}\r\n\r\nexport function convertDuration(duration) {\r\n\t// Convert from seconds only to mm:ss format\r\n\tlet mm, ss\r\n\tmm = Math.floor(duration / 60)\r\n\tss = duration - mm * 60\r\n\t// Add leading zero if ss < 0\r\n\tif (ss < 10) {\r\n\t\tss = '0' + ss\r\n\t}\r\n\treturn mm + ':' + ss\r\n}\r\n\r\nexport function convertDurationSeparated(duration) {\r\n\tlet hh, mm, ss\r\n\tmm = Math.floor(duration / 60)\r\n\thh = Math.floor(mm / 60)\r\n\tss = duration - mm * 60\r\n\tmm -= hh * 60\r\n\treturn [hh, mm, ss]\r\n}\r\n\r\nexport function numberWithDots(x) {\r\n\treturn x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.')\r\n}\r\n\r\n// On scroll event, returns currentTarget = null\r\n// Probably on other events too\r\nexport function debounce(func, wait, immediate) {\r\n\tvar timeout\r\n\treturn function() {\r\n\t\tvar context = this\r\n\t\tvar args = arguments\r\n\t\tvar later = function() {\r\n\t\t\ttimeout = null\r\n\t\t\tif (!immediate) func.apply(context, args)\r\n\t\t}\r\n\t\tvar callNow = immediate && !timeout\r\n\t\tclearTimeout(timeout)\r\n\t\ttimeout = setTimeout(later, wait)\r\n\t\tif (callNow) func.apply(context, args)\r\n\t}\r\n}\r\n\r\n/**\r\n * Workaround to copy to the clipboard cross-OS by generating a\r\n * ghost input and copying the passed String\r\n *\r\n * @param {string}\ttext Text to copy\r\n */\r\nexport function copyToClipboard(text) {\r\n\tconst ghostInput = document.createElement('input')\r\n\r\n\tdocument.body.appendChild(ghostInput)\r\n\tghostInput.setAttribute('type', 'text')\r\n\tghostInput.setAttribute('value', text)\r\n\tghostInput.select()\r\n\tghostInput.setSelectionRange(0, 99999)\r\n\tdocument.execCommand('copy')\r\n\tghostInput.remove()\r\n}\r\n\r\nexport default {\r\n\tisValidURL,\r\n\tconvertDuration,\r\n\tconvertDurationSeparated,\r\n\tnumberWithDots,\r\n\tdebounce\r\n}\r\n","export const downloadQualities = [\r\n\t{\r\n\t\tobjName: 'flac',\r\n\t\tlabel: 'FLAC',\r\n\t\tvalue: 9\r\n\t},\r\n\t{\r\n\t\tobjName: '320kbps',\r\n\t\tlabel: 'MP3 320kbps',\r\n\t\tvalue: 3\r\n\t},\r\n\t{\r\n\t\tobjName: '128kbps',\r\n\t\tlabel: 'MP3 128kbps',\r\n\t\tvalue: 1\r\n\t},\r\n\t{\r\n\t\tobjName: 'realityAudioHQ',\r\n\t\tlabel: '360 Reality Audio [HQ]',\r\n\t\tvalue: 15\r\n\t},\r\n\t{\r\n\t\tobjName: 'realityAudioMQ',\r\n\t\tlabel: '360 Reality Audio [MQ]',\r\n\t\tvalue: 14\r\n\t},\r\n\t{\r\n\t\tobjName: 'realityAudioLQ',\r\n\t\tlabel: '360 Reality Audio [LQ]',\r\n\t\tvalue: 13\r\n\t}\r\n]\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport { generatePath, copyToClipboard } from '@/utils/utils'\r\nimport { downloadQualities } from '@/data/qualities'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tmenuOpen: false,\r\n\t\t\txPos: 0,\r\n\t\t\tyPos: 0,\r\n\t\t\tdeezerHref: '',\r\n\t\t\tgeneralHref: '',\r\n\t\t\timgSrc: ''\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\toptions() {\r\n\t\t\t// In the action property:\r\n\t\t\t// Use arrow functions to keep the Vue instance in 'this'\r\n\t\t\t// Use normal functions to keep the object instance in 'this'\r\n\t\t\tconst options = {\r\n\t\t\t\tcut: {\r\n\t\t\t\t\tlabel: this.$t('globals.cut'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 1,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tdocument.execCommand('Cut')\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcopy: {\r\n\t\t\t\t\tlabel: this.$t('globals.copy'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 2,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tdocument.execCommand('Copy')\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcopyLink: {\r\n\t\t\t\t\tlabel: this.$t('globals.copyLink'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 3,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tcopyToClipboard(this.generalHref)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcopyImageLink: {\r\n\t\t\t\t\tlabel: this.$t('globals.copyImageLink'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 4,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tcopyToClipboard(this.imgSrc)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcopyDeezerLink: {\r\n\t\t\t\t\tlabel: this.$t('globals.copyDeezerLink'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 5,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tcopyToClipboard(this.deezerHref)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tpaste: {\r\n\t\t\t\t\tlabel: this.$t('globals.paste'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 6,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\t// Paste does not always work\r\n\t\t\t\t\t\tif (clipboard in navigator) {\r\n\t\t\t\t\t\t\tnavigator.clipboard.readText().then(text => {\r\n\t\t\t\t\t\t\t\tdocument.execCommand('insertText', undefined, text)\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdocument.execCommand('paste')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet nextValuePosition = Object.values(options).length + 1\r\n\r\n\t\t\tdownloadQualities.forEach((quality, index) => {\r\n\t\t\t\toptions[quality.objName] = {\r\n\t\t\t\t\tlabel: `${this.$t('globals.download', { thing: quality.label })}`,\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: nextValuePosition + index,\r\n\t\t\t\t\taction: sendAddToQueue.bind(null, this.deezerHref, quality.value)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\treturn options\r\n\t\t},\r\n\t\t/**\r\n\t\t * This computed property is used for rendering the options in the wanted order\r\n\t\t * while keeping the options computed property an Object to make the properties\r\n\t\t * accessible via property name (es this.options.copyLink)\r\n\t\t *\r\n\t\t * @return\t{object[]}\tOptions in order according to position property\r\n\t\t */\r\n\t\tsortedOptions() {\r\n\t\t\treturn Object.values(this.options).sort((first, second) => {\r\n\t\t\t\treturn first.position < second.position ? -1 : 1\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tdocument.body.addEventListener('contextmenu', this.showMenu)\r\n\t\tdocument.body.addEventListener('click', this.hideMenu)\r\n\t},\r\n\tmethods: {\r\n\t\tshowMenu(contextMenuEvent) {\r\n\t\t\tconst { pageX, pageY, target: elementClicked } = contextMenuEvent\r\n\t\t\tconst path = generatePath(elementClicked)\r\n\t\t\tlet deezerLink = null\r\n\r\n\t\t\t// Searching for the first element with a data-link attribute\r\n\t\t\t// let deezerLink = this.searchForDataLink(...)\r\n\t\t\tfor (let i = 0; i < path.length; i++) {\r\n\t\t\t\tif (path[i] == document) break\r\n\r\n\t\t\t\tif (path[i].matches('[data-link]')) {\r\n\t\t\t\t\tdeezerLink = path[i].dataset.link\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst isLink = elementClicked.matches('a')\r\n\t\t\tconst isImage = elementClicked.matches('img')\r\n\t\t\tconst hasDeezerLink = !!deezerLink\r\n\r\n\t\t\tif (!isLink && !isImage && !hasDeezerLink) return\r\n\r\n\t\t\tcontextMenuEvent.preventDefault()\r\n\t\t\tthis.menuOpen = true\r\n\t\t\tthis.positionMenu(pageX, pageY)\r\n\r\n\t\t\tif (isLink) {\r\n\t\t\t\t// Show 'Copy Link' option\r\n\t\t\t\tthis.generalHref = elementClicked.href\r\n\t\t\t\tthis.options.copyLink.show = true\r\n\t\t\t}\r\n\r\n\t\t\tif (isImage) {\r\n\t\t\t\t// Show 'Copy Image Link' option\r\n\t\t\t\tthis.imgSrc = elementClicked.src\r\n\t\t\t\tthis.options.copyImageLink.show = true\r\n\t\t\t}\r\n\r\n\t\t\tif (deezerLink) {\r\n\t\t\t\t// Show 'Copy Deezer Link' option\r\n\t\t\t\tthis.deezerHref = deezerLink\r\n\t\t\t\tthis.showDeezerOptions()\r\n\t\t\t}\r\n\t\t},\r\n\t\thideMenu() {\r\n\t\t\tif (!this.menuOpen) return\r\n\r\n\t\t\t// Finish all operations before closing (may be not necessary)\r\n\t\t\tthis.$nextTick()\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.menuOpen = false\r\n\r\n\t\t\t\t\tthis.options.copyLink.show = false\r\n\t\t\t\t\tthis.options.copyDeezerLink.show = false\r\n\t\t\t\t\tthis.options.copyImageLink.show = false\r\n\r\n\t\t\t\t\tdownloadQualities.forEach(quality => {\r\n\t\t\t\t\t\tthis.options[quality.objName].show = false\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\tconsole.error(err)\r\n\t\t\t\t})\r\n\t\t},\r\n\t\tpositionMenu(newX, newY) {\r\n\t\t\tthis.xPos = `${newX}px`\r\n\t\t\tthis.yPos = `${newY}px`\r\n\r\n\t\t\tthis.$nextTick().then(() => {\r\n\t\t\t\tconst { innerHeight, innerWidth } = window\r\n\t\t\t\tconst menuXOffest = newX + this.$refs.contextMenu.getBoundingClientRect().width\r\n\t\t\t\tconst menuYOffest = newY + this.$refs.contextMenu.getBoundingClientRect().height\r\n\r\n\t\t\t\tif (menuXOffest > innerWidth) {\r\n\t\t\t\t\tconst difference = menuXOffest - innerWidth + 15\r\n\t\t\t\t\tthis.xPos = `${newX - difference}px`\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (menuYOffest > innerHeight) {\r\n\t\t\t\t\tconst difference = menuYOffest - innerHeight + 15\r\n\t\t\t\t\tthis.yPos = `${newY - difference}px`\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t},\r\n\t\tshowDeezerOptions() {\r\n\t\t\tthis.options.copyDeezerLink.show = true\r\n\r\n\t\t\tdownloadQualities.forEach(quality => {\r\n\t\t\t\tthis.options[quality.objName].show = true\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div class=\"context-menu\" v-show=\"menuOpen\" ref=\"contextMenu\" :style=\"{ top: yPos, left: xPos }\">\r\n\t\t<button\r\n\t\t\tclass=\"menu-option\"\r\n\t\t\tv-for=\"option of sortedOptions\"\r\n\t\t\t:key=\"option.label\"\r\n\t\t\tv-show=\"option.show\"\r\n\t\t\t@click.prevent=\"option.action\"\r\n\t\t>\r\n\t\t\t<span class=\"menu-option__text\">{{ option.label }}</span>\r\n\t\t</button>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport { generatePath, copyToClipboard } from '@/utils/utils'\r\nimport { downloadQualities } from '@/data/qualities'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tmenuOpen: false,\r\n\t\t\txPos: 0,\r\n\t\t\tyPos: 0,\r\n\t\t\tdeezerHref: '',\r\n\t\t\tgeneralHref: '',\r\n\t\t\timgSrc: ''\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\toptions() {\r\n\t\t\t// In the action property:\r\n\t\t\t// Use arrow functions to keep the Vue instance in 'this'\r\n\t\t\t// Use normal functions to keep the object instance in 'this'\r\n\t\t\tconst options = {\r\n\t\t\t\tcut: {\r\n\t\t\t\t\tlabel: this.$t('globals.cut'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 1,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tdocument.execCommand('Cut')\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcopy: {\r\n\t\t\t\t\tlabel: this.$t('globals.copy'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 2,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tdocument.execCommand('Copy')\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcopyLink: {\r\n\t\t\t\t\tlabel: this.$t('globals.copyLink'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 3,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tcopyToClipboard(this.generalHref)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcopyImageLink: {\r\n\t\t\t\t\tlabel: this.$t('globals.copyImageLink'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 4,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tcopyToClipboard(this.imgSrc)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcopyDeezerLink: {\r\n\t\t\t\t\tlabel: this.$t('globals.copyDeezerLink'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 5,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\tcopyToClipboard(this.deezerHref)\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tpaste: {\r\n\t\t\t\t\tlabel: this.$t('globals.paste'),\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: 6,\r\n\t\t\t\t\taction: () => {\r\n\t\t\t\t\t\t// Paste does not always work\r\n\t\t\t\t\t\tif (clipboard in navigator) {\r\n\t\t\t\t\t\t\tnavigator.clipboard.readText().then(text => {\r\n\t\t\t\t\t\t\t\tdocument.execCommand('insertText', undefined, text)\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tdocument.execCommand('paste')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet nextValuePosition = Object.values(options).length + 1\r\n\r\n\t\t\tdownloadQualities.forEach((quality, index) => {\r\n\t\t\t\toptions[quality.objName] = {\r\n\t\t\t\t\tlabel: `${this.$t('globals.download', { thing: quality.label })}`,\r\n\t\t\t\t\tshow: false,\r\n\t\t\t\t\tposition: nextValuePosition + index,\r\n\t\t\t\t\taction: sendAddToQueue.bind(null, this.deezerHref, quality.value)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\treturn options\r\n\t\t},\r\n\t\t/**\r\n\t\t * This computed property is used for rendering the options in the wanted order\r\n\t\t * while keeping the options computed property an Object to make the properties\r\n\t\t * accessible via property name (es this.options.copyLink)\r\n\t\t *\r\n\t\t * @return\t{object[]}\tOptions in order according to position property\r\n\t\t */\r\n\t\tsortedOptions() {\r\n\t\t\treturn Object.values(this.options).sort((first, second) => {\r\n\t\t\t\treturn first.position < second.position ? -1 : 1\r\n\t\t\t})\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tdocument.body.addEventListener('contextmenu', this.showMenu)\r\n\t\tdocument.body.addEventListener('click', this.hideMenu)\r\n\t},\r\n\tmethods: {\r\n\t\tshowMenu(contextMenuEvent) {\r\n\t\t\tconst { pageX, pageY, target: elementClicked } = contextMenuEvent\r\n\t\t\tconst path = generatePath(elementClicked)\r\n\t\t\tlet deezerLink = null\r\n\r\n\t\t\t// Searching for the first element with a data-link attribute\r\n\t\t\t// let deezerLink = this.searchForDataLink(...)\r\n\t\t\tfor (let i = 0; i < path.length; i++) {\r\n\t\t\t\tif (path[i] == document) break\r\n\r\n\t\t\t\tif (path[i].matches('[data-link]')) {\r\n\t\t\t\t\tdeezerLink = path[i].dataset.link\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst isLink = elementClicked.matches('a')\r\n\t\t\tconst isImage = elementClicked.matches('img')\r\n\t\t\tconst hasDeezerLink = !!deezerLink\r\n\r\n\t\t\tif (!isLink && !isImage && !hasDeezerLink) return\r\n\r\n\t\t\tcontextMenuEvent.preventDefault()\r\n\t\t\tthis.menuOpen = true\r\n\t\t\tthis.positionMenu(pageX, pageY)\r\n\r\n\t\t\tif (isLink) {\r\n\t\t\t\t// Show 'Copy Link' option\r\n\t\t\t\tthis.generalHref = elementClicked.href\r\n\t\t\t\tthis.options.copyLink.show = true\r\n\t\t\t}\r\n\r\n\t\t\tif (isImage) {\r\n\t\t\t\t// Show 'Copy Image Link' option\r\n\t\t\t\tthis.imgSrc = elementClicked.src\r\n\t\t\t\tthis.options.copyImageLink.show = true\r\n\t\t\t}\r\n\r\n\t\t\tif (deezerLink) {\r\n\t\t\t\t// Show 'Copy Deezer Link' option\r\n\t\t\t\tthis.deezerHref = deezerLink\r\n\t\t\t\tthis.showDeezerOptions()\r\n\t\t\t}\r\n\t\t},\r\n\t\thideMenu() {\r\n\t\t\tif (!this.menuOpen) return\r\n\r\n\t\t\t// Finish all operations before closing (may be not necessary)\r\n\t\t\tthis.$nextTick()\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.menuOpen = false\r\n\r\n\t\t\t\t\tthis.options.copyLink.show = false\r\n\t\t\t\t\tthis.options.copyDeezerLink.show = false\r\n\t\t\t\t\tthis.options.copyImageLink.show = false\r\n\r\n\t\t\t\t\tdownloadQualities.forEach(quality => {\r\n\t\t\t\t\t\tthis.options[quality.objName].show = false\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\tconsole.error(err)\r\n\t\t\t\t})\r\n\t\t},\r\n\t\tpositionMenu(newX, newY) {\r\n\t\t\tthis.xPos = `${newX}px`\r\n\t\t\tthis.yPos = `${newY}px`\r\n\r\n\t\t\tthis.$nextTick().then(() => {\r\n\t\t\t\tconst { innerHeight, innerWidth } = window\r\n\t\t\t\tconst menuXOffest = newX + this.$refs.contextMenu.getBoundingClientRect().width\r\n\t\t\t\tconst menuYOffest = newY + this.$refs.contextMenu.getBoundingClientRect().height\r\n\r\n\t\t\t\tif (menuXOffest > innerWidth) {\r\n\t\t\t\t\tconst difference = menuXOffest - innerWidth + 15\r\n\t\t\t\t\tthis.xPos = `${newX - difference}px`\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (menuYOffest > innerHeight) {\r\n\t\t\t\t\tconst difference = menuYOffest - innerHeight + 15\r\n\t\t\t\t\tthis.yPos = `${newY - difference}px`\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t},\r\n\t\tshowDeezerOptions() {\r\n\t\t\tthis.options.copyDeezerLink.show = true\r\n\r\n\t\t\tdownloadQualities.forEach(quality => {\r\n\t\t\t\tthis.options[quality.objName].show = true\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.context-menu {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\tmin-width: 100px;\r\n\tborder-radius: 7px;\r\n\tbackground: var(--foreground-inverted);\r\n\tbox-shadow: 4px 10px 18px 0px hsla(0, 0%, 0%, 0.15);\r\n\toverflow: hidden;\r\n\tz-index: 10000;\r\n}\r\n\r\n.menu-option {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\twidth: 100%;\r\n\theight: 40px;\r\n\tpadding-left: 10px;\r\n\tpadding-right: 10px;\r\n\tcolor: var(--foreground);\r\n\tcursor: pointer;\r\n\r\n\t&:hover {\r\n\t\tbackground: var(--table-highlight);\r\n\t\tfilter: brightness(150%);\r\n\t}\r\n\r\n\t&__text {\r\n\t\ttext-transform: capitalize;\r\n\t}\r\n}\r\n\r\n// Resetting buttons only for this component (because the style is scoped)\r\nbutton {\r\n\tcolor: var(--accent-text);\r\n\tcolor: unset;\r\n\tbackground-color: var(--accent-color);\r\n\tbackground-color: unset;\r\n\tmin-width: unset;\r\n\tposition: unset;\r\n\tborder: unset;\r\n\tborder-radius: unset;\r\n\tfont-family: unset;\r\n\tfont-weight: unset;\r\n\tfont-size: unset;\r\n\tpadding: unset;\r\n\tmargin-right: unset;\r\n\theight: unset;\r\n\ttext-transform: unset;\r\n\tcursor: unset;\r\n\ttransition: unset;\r\n\r\n\t&:focus {\r\n\t\toutline: none;\r\n\t}\r\n\r\n\t&[disabled] {\r\n\t\tbackground-color: unset;\r\n\t\tcolor: unset;\r\n\t\topacity: unset;\r\n\t}\r\n\r\n\t&.selective {\r\n\t\tbackground-color: unset;\r\n\t\tcolor: unset;\r\n\r\n\t\t&.active {\r\n\t\t\tbackground-color: unset;\r\n\t\t\tcolor: unset;\r\n\t\t}\r\n\t}\r\n\r\n\t&.with_icon {\r\n\t\tdisplay: unset;\r\n\t\talign-items: unset;\r\n\r\n\t\ti {\r\n\t\t\tmargin-left: unset;\r\n\t\t}\r\n\t}\r\n\r\n\t&:active {\r\n\t\tbackground-color: unset;\r\n\t\ttransform: unset;\r\n\t}\r\n\r\n\t&:hover {\r\n\t\tbackground: unset;\r\n\t\tborder: unset;\r\n\t}\r\n}\r\n</style>\r\n","// https://alligator.io/vuejs/global-event-bus/\r\nimport Vue from 'vue'\r\n\r\nexport default new Vue()\r\n","// https://stackoverflow.com/questions/7451508/html5-audio-playback-with-fade-in-and-fade-out#answer-13149848\r\nexport async function adjustVolume(element, newVolume, { duration = 1000, easing = swing, interval = 13 } = {}) {\r\n\tconst originalVolume = element.volume\r\n\tconst delta = newVolume - originalVolume\r\n\r\n\tif (!delta || !duration || !easing || !interval) {\r\n\t\telement.volume = newVolume\r\n\t\treturn Promise.resolve()\r\n\t}\r\n\r\n\tconst ticks = Math.floor(duration / interval)\r\n\tlet tick = 1\r\n\r\n\treturn new Promise(resolve => {\r\n\t\tconst timer = setInterval(() => {\r\n\t\t\telement.volume = originalVolume + easing(tick / ticks) * delta\r\n\t\t\tif (++tick === ticks) {\r\n\t\t\t\tclearInterval(timer)\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t}, interval)\r\n\t})\r\n}\r\n\r\nexport function swing(p) {\r\n\treturn 0.5 - Math.cos(p * Math.PI) / 2\r\n}\r\n","//\n//\n//\n//\n//\n//\n\r\n// import $ from 'jquery'\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nimport { adjustVolume } from '@/utils/adjust-volume'\r\n\r\nexport default {\r\n\tdata: () => ({\r\n\t\tpreviewStopped: false\r\n\t}),\r\n\tmounted() {\r\n\t\tthis.$refs.preview.volume = 1\r\n\r\n\t\tEventBus.$on('trackPreview:playPausePreview', this.playPausePreview)\r\n\t\tEventBus.$on('trackPreview:stopStackedTabsPreview', this.stopStackedTabsPreview)\r\n\t\tEventBus.$on('trackPreview:previewMouseEnter', this.previewMouseEnter)\r\n\t\tEventBus.$on('trackPreview:previewMouseLeave', this.previewMouseLeave)\r\n\t},\r\n\tmethods: {\r\n\t\tasync onCanPlay() {\r\n\t\t\tawait this.$refs.preview.play()\r\n\r\n\t\t\tthis.previewStopped = false\r\n\r\n\t\t\tawait adjustVolume(this.$refs.preview, window.vol.preview_max_volume / 100, { duration: 500 })\r\n\t\t},\r\n\t\tasync onTimeUpdate() {\r\n\t\t\t// Prevents first time entering in this function\r\n\t\t\tif (isNaN(this.$refs.preview.duration)) return\r\n\r\n\t\t\tlet duration = this.$refs.preview.duration\r\n\r\n\t\t\tif (!isFinite(duration)) {\r\n\t\t\t\tduration = 30\r\n\t\t\t}\r\n\r\n\t\t\tif (duration - this.$refs.preview.currentTime >= 1) return\r\n\t\t\tif (this.previewStopped) return\r\n\r\n\t\t\tawait adjustVolume(this.$refs.preview, 0, { duration: 800 })\r\n\r\n\t\t\tthis.previewStopped = true\r\n\r\n\t\t\tdocument.querySelectorAll('a[playing] > .preview_controls').forEach(control => {\r\n\t\t\t\tcontrol.style.opacity = 0\r\n\t\t\t})\r\n\r\n\t\t\tdocument.querySelectorAll('*').forEach(el => {\r\n\t\t\t\tel.removeAttribute('playing')\r\n\t\t\t})\r\n\r\n\t\t\tdocument.querySelectorAll('.preview_controls, .preview_playlist_controls').forEach(el => {\r\n\t\t\t\tel.textContent = 'play_arrow'\r\n\t\t\t})\r\n\t\t},\r\n\t\tasync playPausePreview(e) {\r\n\t\t\te.preventDefault()\r\n\t\t\te.stopPropagation()\r\n\r\n\t\t\tconst { currentTarget: obj } = event\r\n\r\n\t\t\tvar icon = obj.tagName == 'I' ? obj : obj.querySelector('i')\r\n\r\n\t\t\tif (obj.hasAttribute('playing')) {\r\n\t\t\t\tif (this.$refs.preview.paused) {\r\n\t\t\t\t\tthis.$refs.preview.play()\r\n\t\t\t\t\tthis.previewStopped = false\r\n\r\n\t\t\t\t\ticon.innerText = 'pause'\r\n\r\n\t\t\t\t\tawait adjustVolume(this.$refs.preview, window.vol.preview_max_volume / 100, { duration: 500 })\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.previewStopped = true\r\n\r\n\t\t\t\t\ticon.innerText = 'play_arrow'\r\n\r\n\t\t\t\t\tawait adjustVolume(this.$refs.preview, 0, { duration: 250 })\r\n\r\n\t\t\t\t\tthis.$refs.preview.pause()\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdocument.querySelectorAll('*').forEach(el => {\r\n\t\t\t\t\tel.removeAttribute('playing')\r\n\t\t\t\t})\r\n\t\t\t\tobj.setAttribute('playing', true)\r\n\r\n\t\t\t\tdocument.querySelectorAll('.preview_controls, .preview_playlist_controls').forEach(el => {\r\n\t\t\t\t\tel.textContent = 'play_arrow'\r\n\t\t\t\t})\r\n\r\n\t\t\t\tdocument.querySelectorAll('.preview_controls').forEach(el => {\r\n\t\t\t\t\tel.style.opacity = 0\r\n\t\t\t\t})\r\n\r\n\t\t\t\ticon.innerText = 'pause'\r\n\t\t\t\ticon.style.opacity = 1\r\n\r\n\t\t\t\tthis.previewStopped = false\r\n\r\n\t\t\t\tawait adjustVolume(this.$refs.preview, 0, { duration: 250 })\r\n\t\t\t\tthis.$refs.preview.pause()\r\n\r\n\t\t\t\tdocument.getElementById('preview-track_source').src = obj.getAttribute('data-preview')\r\n\r\n\t\t\t\tthis.$refs.preview.load()\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync stopStackedTabsPreview() {\r\n\t\t\tlet controls = Array.prototype.slice.call(document.querySelectorAll('.preview_playlist_controls[playing]'))\r\n\r\n\t\t\tif (controls.length === 0) return\r\n\r\n\t\t\tawait adjustVolume(this.$refs.preview, 0, { duration: 800 })\r\n\r\n\t\t\tthis.previewStopped = true\r\n\r\n\t\t\tcontrols.forEach(control => {\r\n\t\t\t\tcontrol.removeAttribute('playing')\r\n\t\t\t\tcontrol.innerText = 'play_arrow'\r\n\t\t\t})\r\n\t\t},\r\n\t\tpreviewMouseEnter(e) {\r\n\t\t\te.currentTarget.style.opacity = 1\r\n\t\t},\r\n\t\tpreviewMouseLeave(event) {\r\n\t\t\tconst { currentTarget: obj } = event\r\n\t\t\tconst parentIsPlaying = obj.parentElement.hasAttribute('playing')\r\n\r\n\t\t\tif ((parentIsPlaying && this.previewStopped) || !parentIsPlaying) {\r\n\t\t\t\tobj.style.opacity = 0\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<audio id=\"preview-track\" @canplay=\"onCanPlay\" @timeupdate=\"onTimeUpdate\" ref=\"preview\">\r\n\t\t<source id=\"preview-track_source\" src=\"\" type=\"audio/mpeg\" />\r\n\t</audio>\r\n</template>\r\n\r\n<script>\r\n// import $ from 'jquery'\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nimport { adjustVolume } from '@/utils/adjust-volume'\r\n\r\nexport default {\r\n\tdata: () => ({\r\n\t\tpreviewStopped: false\r\n\t}),\r\n\tmounted() {\r\n\t\tthis.$refs.preview.volume = 1\r\n\r\n\t\tEventBus.$on('trackPreview:playPausePreview', this.playPausePreview)\r\n\t\tEventBus.$on('trackPreview:stopStackedTabsPreview', this.stopStackedTabsPreview)\r\n\t\tEventBus.$on('trackPreview:previewMouseEnter', this.previewMouseEnter)\r\n\t\tEventBus.$on('trackPreview:previewMouseLeave', this.previewMouseLeave)\r\n\t},\r\n\tmethods: {\r\n\t\tasync onCanPlay() {\r\n\t\t\tawait this.$refs.preview.play()\r\n\r\n\t\t\tthis.previewStopped = false\r\n\r\n\t\t\tawait adjustVolume(this.$refs.preview, window.vol.preview_max_volume / 100, { duration: 500 })\r\n\t\t},\r\n\t\tasync onTimeUpdate() {\r\n\t\t\t// Prevents first time entering in this function\r\n\t\t\tif (isNaN(this.$refs.preview.duration)) return\r\n\r\n\t\t\tlet duration = this.$refs.preview.duration\r\n\r\n\t\t\tif (!isFinite(duration)) {\r\n\t\t\t\tduration = 30\r\n\t\t\t}\r\n\r\n\t\t\tif (duration - this.$refs.preview.currentTime >= 1) return\r\n\t\t\tif (this.previewStopped) return\r\n\r\n\t\t\tawait adjustVolume(this.$refs.preview, 0, { duration: 800 })\r\n\r\n\t\t\tthis.previewStopped = true\r\n\r\n\t\t\tdocument.querySelectorAll('a[playing] > .preview_controls').forEach(control => {\r\n\t\t\t\tcontrol.style.opacity = 0\r\n\t\t\t})\r\n\r\n\t\t\tdocument.querySelectorAll('*').forEach(el => {\r\n\t\t\t\tel.removeAttribute('playing')\r\n\t\t\t})\r\n\r\n\t\t\tdocument.querySelectorAll('.preview_controls, .preview_playlist_controls').forEach(el => {\r\n\t\t\t\tel.textContent = 'play_arrow'\r\n\t\t\t})\r\n\t\t},\r\n\t\tasync playPausePreview(e) {\r\n\t\t\te.preventDefault()\r\n\t\t\te.stopPropagation()\r\n\r\n\t\t\tconst { currentTarget: obj } = event\r\n\r\n\t\t\tvar icon = obj.tagName == 'I' ? obj : obj.querySelector('i')\r\n\r\n\t\t\tif (obj.hasAttribute('playing')) {\r\n\t\t\t\tif (this.$refs.preview.paused) {\r\n\t\t\t\t\tthis.$refs.preview.play()\r\n\t\t\t\t\tthis.previewStopped = false\r\n\r\n\t\t\t\t\ticon.innerText = 'pause'\r\n\r\n\t\t\t\t\tawait adjustVolume(this.$refs.preview, window.vol.preview_max_volume / 100, { duration: 500 })\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.previewStopped = true\r\n\r\n\t\t\t\t\ticon.innerText = 'play_arrow'\r\n\r\n\t\t\t\t\tawait adjustVolume(this.$refs.preview, 0, { duration: 250 })\r\n\r\n\t\t\t\t\tthis.$refs.preview.pause()\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdocument.querySelectorAll('*').forEach(el => {\r\n\t\t\t\t\tel.removeAttribute('playing')\r\n\t\t\t\t})\r\n\t\t\t\tobj.setAttribute('playing', true)\r\n\r\n\t\t\t\tdocument.querySelectorAll('.preview_controls, .preview_playlist_controls').forEach(el => {\r\n\t\t\t\t\tel.textContent = 'play_arrow'\r\n\t\t\t\t})\r\n\r\n\t\t\t\tdocument.querySelectorAll('.preview_controls').forEach(el => {\r\n\t\t\t\t\tel.style.opacity = 0\r\n\t\t\t\t})\r\n\r\n\t\t\t\ticon.innerText = 'pause'\r\n\t\t\t\ticon.style.opacity = 1\r\n\r\n\t\t\t\tthis.previewStopped = false\r\n\r\n\t\t\t\tawait adjustVolume(this.$refs.preview, 0, { duration: 250 })\r\n\t\t\t\tthis.$refs.preview.pause()\r\n\r\n\t\t\t\tdocument.getElementById('preview-track_source').src = obj.getAttribute('data-preview')\r\n\r\n\t\t\t\tthis.$refs.preview.load()\r\n\t\t\t}\r\n\t\t},\r\n\t\tasync stopStackedTabsPreview() {\r\n\t\t\tlet controls = Array.prototype.slice.call(document.querySelectorAll('.preview_playlist_controls[playing]'))\r\n\r\n\t\t\tif (controls.length === 0) return\r\n\r\n\t\t\tawait adjustVolume(this.$refs.preview, 0, { duration: 800 })\r\n\r\n\t\t\tthis.previewStopped = true\r\n\r\n\t\t\tcontrols.forEach(control => {\r\n\t\t\t\tcontrol.removeAttribute('playing')\r\n\t\t\t\tcontrol.innerText = 'play_arrow'\r\n\t\t\t})\r\n\t\t},\r\n\t\tpreviewMouseEnter(e) {\r\n\t\t\te.currentTarget.style.opacity = 1\r\n\t\t},\r\n\t\tpreviewMouseLeave(event) {\r\n\t\t\tconst { currentTarget: obj } = event\r\n\t\t\tconst parentIsPlaying = obj.parentElement.hasAttribute('playing')\r\n\r\n\t\t\tif ((parentIsPlaying && this.previewStopped) || !parentIsPlaying) {\r\n\t\t\t\tobj.style.opacity = 0\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style>\r\n</style>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport Downloads from '@/utils/downloads'\r\n\r\nexport default {\r\n\tdata: () => ({\r\n\t\topen: false,\r\n\t\turl: ''\r\n\t}),\r\n\tmounted() {\r\n\t\tthis.$root.$on('QualityModal:open', this.openModal)\r\n\t\tthis.$refs.modal.addEventListener('webkitAnimationEnd', this.handleAnimationEnd)\r\n\t},\r\n\tmethods: {\r\n\t\ttryToDownloadTrack(event) {\r\n\t\t\tconst { target } = event\r\n\r\n\t\t\tthis.$refs.modal.classList.add('animated', 'fadeOut')\r\n\r\n\t\t\t// If true, the click did not happen on a button but outside\r\n\t\t\tif (!target.matches('.quality-button')) return\r\n\r\n\t\t\tDownloads.sendAddToQueue(this.url, target.dataset.qualityValue)\r\n\t\t},\r\n\t\topenModal(link) {\r\n\t\t\tthis.url = link\r\n\t\t\tthis.open = true\r\n\t\t\tthis.$refs.modal.classList.add('animated', 'fadeIn')\r\n\t\t},\r\n\t\thandleAnimationEnd(event) {\r\n\t\t\tconst { animationName } = event\r\n\r\n\t\t\tthis.$refs.modal.classList.remove('animated', animationName)\r\n\r\n\t\t\tif (animationName === 'fadeIn') return\r\n\r\n\t\t\tthis.open = false\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"modal_quality\" class=\"smallmodal\" v-show=\"open\" @click=\"tryToDownloadTrack($event)\" ref=\"modal\">\r\n\t\t<div class=\"smallmodal-content\">\r\n\t\t\t<button class=\"quality-button\" data-quality-value=\"9\">{{ $t('globals.download', {thing: 'FLAC'}) }}</button>\r\n\t\t\t<button class=\"quality-button\" data-quality-value=\"3\">{{ $t('globals.download', {thing: 'MP3 320kbps'}) }}</button>\r\n\t\t\t<button class=\"quality-button\" data-quality-value=\"1\">{{ $t('globals.download', {thing: 'MP3 128kbps'}) }}</button>\r\n\t\t\t<button class=\"quality-button\" data-quality-value=\"15\">\r\n\t\t\t\t{{ $t('globals.download', {thing: '360 Reality Audio [HQ]'}) }}\r\n\t\t\t</button>\r\n\t\t\t<button class=\"quality-button\" data-quality-value=\"14\">\r\n\t\t\t\t{{ $t('globals.download', {thing: '360 Reality Audio [MQ]'}) }}\r\n\t\t\t</button>\r\n\t\t\t<button class=\"quality-button\" data-quality-value=\"13\">\r\n\t\t\t\t{{ $t('globals.download', {thing: '360 Reality Audio [LQ]'}) }}\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n<style>\r\n.smallmodal {\r\n\tposition: fixed;\r\n\tz-index: 1250;\r\n\tleft: 0;\r\n\ttop: 0;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\toverflow: auto;\r\n\tbackground-color: hsla(0, 0%, 0%, 0.4);\r\n\tanimation-duration: 0.3s;\r\n}\r\n\r\n.smallmodal-content {\r\n\tbackground-color: transparent;\r\n\tmargin: auto;\r\n\twidth: var(--modal-content-width);\r\n\tposition: relative;\r\n\ttop: 50%;\r\n\ttransform: translateY(-50%);\r\n}\r\n\r\n.smallmodal-content button {\r\n\twidth: 100%;\r\n\tmargin-bottom: 8px;\r\n}\r\n</style>\r\n<script>\r\nimport Downloads from '@/utils/downloads'\r\n\r\nexport default {\r\n\tdata: () => ({\r\n\t\topen: false,\r\n\t\turl: ''\r\n\t}),\r\n\tmounted() {\r\n\t\tthis.$root.$on('QualityModal:open', this.openModal)\r\n\t\tthis.$refs.modal.addEventListener('webkitAnimationEnd', this.handleAnimationEnd)\r\n\t},\r\n\tmethods: {\r\n\t\ttryToDownloadTrack(event) {\r\n\t\t\tconst { target } = event\r\n\r\n\t\t\tthis.$refs.modal.classList.add('animated', 'fadeOut')\r\n\r\n\t\t\t// If true, the click did not happen on a button but outside\r\n\t\t\tif (!target.matches('.quality-button')) return\r\n\r\n\t\t\tDownloads.sendAddToQueue(this.url, target.dataset.qualityValue)\r\n\t\t},\r\n\t\topenModal(link) {\r\n\t\t\tthis.url = link\r\n\t\t\tthis.open = true\r\n\t\t\tthis.$refs.modal.classList.add('animated', 'fadeIn')\r\n\t\t},\r\n\t\thandleAnimationEnd(event) {\r\n\t\t\tconst { animationName } = event\r\n\r\n\t\t\tthis.$refs.modal.classList.remove('animated', animationName)\r\n\r\n\t\t\tif (animationName === 'fadeIn') return\r\n\r\n\t\t\tthis.open = false\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttitleText: 'Are you sure you want to reset settings to default?'\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tsetTimeout(() => {\r\n\t\t\t// this.$refs.wrapper.classList.add('bounceIn')\r\n\t\t\t// this.$refs.body.classList.add('bounceIn')\r\n\t\t}, 2000)\r\n\t}\r\n}\r\n","<template>\r\n\t<div class=\"wrapper\" ref=\"wrapper\">\r\n\t\t<div class=\"body animate__animated animate__bounce\" ref=\"body\">\r\n\t\t\t<h1 style=\"flex: 1\">{{ titleText }}</h1>\r\n\r\n\t\t\t<div class=\"confirm-area\">\r\n\t\t\t\t<button class=\"no-hover\"></button>\r\n\t\t\t\t<button class=\"btn-red no-hover\"></button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"overlay\"></div>\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n$body-padding: 2rem;\r\n$body-radius: 15px;\r\n\r\n.wrapper {\r\n\tdisplay: grid;\r\n\tplace-items: center;\r\n\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tbottom: 0;\r\n\r\n\tz-index: 1000; // +1 of the sidebar\r\n}\r\n\r\n.body {\r\n\tposition: relative;\r\n\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\r\n\twidth: 50vw;\r\n\theight: 30vh;\r\n\r\n\tborder-radius: $body-radius;\r\n\tpadding: $body-padding;\r\n\tbackground: var(--secondary-background);\r\n\tz-index: 2;\r\n\tbox-shadow: 9px 10px 39px 12px var(--main-background);\r\n}\r\n\r\n.confirm-area {\r\n\tposition: relative;\r\n\r\n\tflex: 1;\r\n\r\n\tdisplay: flex;\r\n\tjustify-content: flex-end;\r\n\talign-items: flex-end;\r\n}\r\n\r\n.overlay {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\tright: 0;\r\n\tbottom: 0;\r\n\r\n\tbackground: var(--secondary-background);\r\n\topacity: 0.75;\r\n\tz-index: 1;\r\n}\r\n</style>\r\n\r\n<script>\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttitleText: 'Are you sure you want to reset settings to default?'\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tsetTimeout(() => {\r\n\t\t\t// this.$refs.wrapper.classList.add('bounceIn')\r\n\t\t\t// this.$refs.body.classList.add('bounceIn')\r\n\t\t}, 2000)\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tappOnline: null,\r\n\t\t\tactiveTheme: 'light',\r\n\t\t\tthemes: ['purple', 'dark', 'light'],\r\n\t\t\tactiveTablink: 'home',\r\n\t\t\tlinks: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_home_tablink',\r\n\t\t\t\t\tname: 'home',\r\n\t\t\t\t\tariaLabel: 'home',\r\n\t\t\t\t\trouterName: 'Home',\r\n\t\t\t\t\ticon: 'home',\r\n\t\t\t\t\tlabel: 'sidebar.home'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_search_tablink',\r\n\t\t\t\t\tname: 'search',\r\n\t\t\t\t\tariaLabel: 'search',\r\n\t\t\t\t\trouterName: 'Search',\r\n\t\t\t\t\ticon: 'search',\r\n\t\t\t\t\tlabel: 'sidebar.search'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_charts_tablink',\r\n\t\t\t\t\tname: 'charts',\r\n\t\t\t\t\tariaLabel: 'charts',\r\n\t\t\t\t\trouterName: 'Charts',\r\n\t\t\t\t\ticon: 'show_chart',\r\n\t\t\t\t\tlabel: 'sidebar.charts'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_favorites_tablink',\r\n\t\t\t\t\tname: 'favorites',\r\n\t\t\t\t\tariaLabel: 'favorites',\r\n\t\t\t\t\trouterName: 'Favorites',\r\n\t\t\t\t\ticon: 'star',\r\n\t\t\t\t\tlabel: 'sidebar.favorites'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_analyzer_tablink',\r\n\t\t\t\t\tname: 'analyzer',\r\n\t\t\t\t\tariaLabel: 'link analyzer',\r\n\t\t\t\t\trouterName: 'Link Analyzer',\r\n\t\t\t\t\ticon: 'link',\r\n\t\t\t\t\tlabel: 'sidebar.linkAnalyzer'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_settings_tablink',\r\n\t\t\t\t\tname: 'settings',\r\n\t\t\t\t\tariaLabel: 'settings',\r\n\t\t\t\t\trouterName: 'Settings',\r\n\t\t\t\t\ticon: 'settings',\r\n\t\t\t\t\tlabel: 'sidebar.settings'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_about_tablink',\r\n\t\t\t\t\tname: 'about',\r\n\t\t\t\t\tariaLabel: 'info',\r\n\t\t\t\t\trouterName: 'About',\r\n\t\t\t\t\ticon: 'info',\r\n\t\t\t\t\tlabel: 'sidebar.about'\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\t/* === Online status handling === */\r\n\t\tthis.appOnline = navigator.onLine\r\n\r\n\t\twindow.addEventListener('online', () => {\r\n\t\t\tthis.appOnline = true\r\n\t\t})\r\n\r\n\t\twindow.addEventListener('offline', () => {\r\n\t\t\tthis.appOnline = false\r\n\t\t})\r\n\r\n\t\t/* === Current theme handling === */\r\n\t\tthis.activeTheme = localStorage.getItem('selectedTheme') || 'light'\r\n\r\n\t\tthis.$router.afterEach((to, from) => {\r\n\t\t\tconst linkInSidebar = this.links.find(link => link.routerName === to.name)\r\n\r\n\t\t\tif (!linkInSidebar) return\r\n\r\n\t\t\tthis.activeTablink = linkInSidebar.name\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\tchangeTheme(newTheme) {\r\n\t\t\tif (newTheme === this.activeTheme) return\r\n\r\n\t\t\tthis.activeTheme = newTheme\r\n\t\t\tdocument.documentElement.setAttribute('data-theme', newTheme)\r\n\t\t\tlocalStorage.setItem('selectedTheme', newTheme)\r\n\r\n\t\t\t// Animating everything to have a smoother theme switch\r\n\t\t\tconst allElements = document.querySelectorAll('*')\r\n\r\n\t\t\tallElements.forEach(el => {\r\n\t\t\t\tel.classList.add('changing-theme')\r\n\t\t\t})\r\n\r\n\t\t\tdocument.documentElement.addEventListener('transitionend', function transitionHandler() {\r\n\t\t\t\tallElements.forEach(el => {\r\n\t\t\t\t\tel.classList.remove('changing-theme')\r\n\t\t\t\t})\r\n\r\n\t\t\t\tdocument.documentElement.removeEventListener('transitionend', transitionHandler)\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<aside id=\"sidebar\" role=\"navigation\" aria-label=\"sidebar\">\r\n\t\t<router-link\r\n\t\t\tv-for=\"link in links\"\r\n\t\t\t:key=\"link.id\"\r\n\t\t\ttag=\"a\"\r\n\t\t\tclass=\"main_tablinks\"\r\n\t\t\t:id=\"link.id\"\r\n\t\t\t:class=\"{ active: activeTablink === link.name }\"\r\n\t\t\t:aria-label=\"link.ariaLabel\"\r\n\t\t\t:to=\"{ name: link.routerName }\"\r\n\t\t\t@click.native=\"activeTablink = link.name\"\r\n\t\t>\r\n\t\t\t<i class=\"material-icons side_icon\">{{ link.icon }}</i>\r\n\t\t\t<span class=\"main_tablinks_text\">{{ $t(link.label) }}</span>\r\n\t\t</router-link>\r\n\r\n\t\t<span id=\"theme_selector\" class=\"main_tablinks\" role=\"link\" aria-label=\"theme selector\">\r\n\t\t\t<i class=\"material-icons side_icon side_icon--theme\">palette</i>\r\n\t\t\t<div id=\"theme_togglers\">\r\n\t\t\t\t<div\r\n\t\t\t\t\tv-for=\"theme of themes\"\r\n\t\t\t\t\t:key=\"theme\"\r\n\t\t\t\t\tclass=\"theme_toggler\"\r\n\t\t\t\t\t:class=\"[{ 'theme_toggler--active': activeTheme === theme }, `theme_toggler--${theme}`]\"\r\n\t\t\t\t\t@click=\"changeTheme(theme)\"\r\n\t\t\t\t></div>\r\n\t\t\t</div>\r\n\t\t</span>\r\n\t\t<div id=\"network-status\" :class=\"{ online: appOnline, offline: !appOnline }\">\r\n\t\t\t<i v-if=\"appOnline\" class=\"material-icons\">wifi</i>\r\n\t\t\t<i v-else class=\"material-icons\">\r\n\t\t\t\t<!-- wifi_off icon not working, maybe need to include it? -->\r\n\t\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n\t\t\t\t\t<path d=\"M24 .01c0-.01 0-.01 0 0L0 0v24h24V.01zM0 0h24v24H0V0zm0 0h24v24H0V0z\" fill=\"none\" />\r\n\t\t\t\t\t<path\r\n\t\t\t\t\t\td=\"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7l2-2zm-4 4c-1.29-1.29-2.84-2.13-4.49-2.56l3.53 3.53.96-.97zM2 3.05L5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24C7.81 10.89 6.27 11.73 5 13v.01L6.99 15c1.36-1.36 3.14-2.04 4.92-2.06L18.98 20l1.27-1.26L3.29 1.79 2 3.05zM9 17l3 3 3-3c-1.65-1.66-4.34-1.66-6 0z\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</svg>\r\n\t\t\t</i>\r\n\t\t</div>\r\n\t</aside>\r\n</template>\r\n\r\n<style scoped>\r\n#network-status {\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\tposition: relative;\r\n\tmargin-top: auto;\r\n\tbottom: 0;\r\n}\r\n\r\n#network-status.online i.material-icons {\r\n\tcolor: hsl(151, 100%, 31%);\r\n}\r\n\r\n#network-status.offline i.material-icons svg {\r\n\tfill: red;\r\n\twidth: 1em;\r\n\theight: 1em;\r\n}\r\n</style>\r\n\r\n<script>\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tappOnline: null,\r\n\t\t\tactiveTheme: 'light',\r\n\t\t\tthemes: ['purple', 'dark', 'light'],\r\n\t\t\tactiveTablink: 'home',\r\n\t\t\tlinks: [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_home_tablink',\r\n\t\t\t\t\tname: 'home',\r\n\t\t\t\t\tariaLabel: 'home',\r\n\t\t\t\t\trouterName: 'Home',\r\n\t\t\t\t\ticon: 'home',\r\n\t\t\t\t\tlabel: 'sidebar.home'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_search_tablink',\r\n\t\t\t\t\tname: 'search',\r\n\t\t\t\t\tariaLabel: 'search',\r\n\t\t\t\t\trouterName: 'Search',\r\n\t\t\t\t\ticon: 'search',\r\n\t\t\t\t\tlabel: 'sidebar.search'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_charts_tablink',\r\n\t\t\t\t\tname: 'charts',\r\n\t\t\t\t\tariaLabel: 'charts',\r\n\t\t\t\t\trouterName: 'Charts',\r\n\t\t\t\t\ticon: 'show_chart',\r\n\t\t\t\t\tlabel: 'sidebar.charts'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_favorites_tablink',\r\n\t\t\t\t\tname: 'favorites',\r\n\t\t\t\t\tariaLabel: 'favorites',\r\n\t\t\t\t\trouterName: 'Favorites',\r\n\t\t\t\t\ticon: 'star',\r\n\t\t\t\t\tlabel: 'sidebar.favorites'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_analyzer_tablink',\r\n\t\t\t\t\tname: 'analyzer',\r\n\t\t\t\t\tariaLabel: 'link analyzer',\r\n\t\t\t\t\trouterName: 'Link Analyzer',\r\n\t\t\t\t\ticon: 'link',\r\n\t\t\t\t\tlabel: 'sidebar.linkAnalyzer'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_settings_tablink',\r\n\t\t\t\t\tname: 'settings',\r\n\t\t\t\t\tariaLabel: 'settings',\r\n\t\t\t\t\trouterName: 'Settings',\r\n\t\t\t\t\ticon: 'settings',\r\n\t\t\t\t\tlabel: 'sidebar.settings'\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 'main_about_tablink',\r\n\t\t\t\t\tname: 'about',\r\n\t\t\t\t\tariaLabel: 'info',\r\n\t\t\t\t\trouterName: 'About',\r\n\t\t\t\t\ticon: 'info',\r\n\t\t\t\t\tlabel: 'sidebar.about'\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\t/* === Online status handling === */\r\n\t\tthis.appOnline = navigator.onLine\r\n\r\n\t\twindow.addEventListener('online', () => {\r\n\t\t\tthis.appOnline = true\r\n\t\t})\r\n\r\n\t\twindow.addEventListener('offline', () => {\r\n\t\t\tthis.appOnline = false\r\n\t\t})\r\n\r\n\t\t/* === Current theme handling === */\r\n\t\tthis.activeTheme = localStorage.getItem('selectedTheme') || 'light'\r\n\r\n\t\tthis.$router.afterEach((to, from) => {\r\n\t\t\tconst linkInSidebar = this.links.find(link => link.routerName === to.name)\r\n\r\n\t\t\tif (!linkInSidebar) return\r\n\r\n\t\t\tthis.activeTablink = linkInSidebar.name\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\tchangeTheme(newTheme) {\r\n\t\t\tif (newTheme === this.activeTheme) return\r\n\r\n\t\t\tthis.activeTheme = newTheme\r\n\t\t\tdocument.documentElement.setAttribute('data-theme', newTheme)\r\n\t\t\tlocalStorage.setItem('selectedTheme', newTheme)\r\n\r\n\t\t\t// Animating everything to have a smoother theme switch\r\n\t\t\tconst allElements = document.querySelectorAll('*')\r\n\r\n\t\t\tallElements.forEach(el => {\r\n\t\t\t\tel.classList.add('changing-theme')\r\n\t\t\t})\r\n\r\n\t\t\tdocument.documentElement.addEventListener('transitionend', function transitionHandler() {\r\n\t\t\t\tallElements.forEach(el => {\r\n\t\t\t\t\tel.classList.remove('changing-theme')\r\n\t\t\t\t})\r\n\r\n\t\t\t\tdocument.documentElement.removeEventListener('transitionend', transitionHandler)\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { isValidURL } from '@/utils/utils'\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport EventBus from '@/utils/EventBus'\r\nimport { socket } from '@/utils/socket'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tlastTextSearch: ''\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\tconst focusSearchBar = keyEvent => {\r\n\t\t\tif (keyEvent.keyCode === 70 && keyEvent.ctrlKey) {\r\n\t\t\t\tkeyEvent.preventDefault()\r\n\t\t\t\tthis.$refs.searchbar.focus()\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst deleteSearchBarContent = keyEvent => {\r\n\t\t\tif (!(keyEvent.key == 'Backspace' && keyEvent.ctrlKey && keyEvent.shiftKey)) return\r\n\r\n\t\t\tthis.$refs.searchbar.value = ''\r\n\t\t\tthis.$refs.searchbar.focus()\r\n\t\t}\r\n\r\n\t\tdocument.addEventListener('keydown', focusSearchBar)\r\n\t\tdocument.addEventListener('keyup', deleteSearchBarContent)\r\n\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tdocument.removeEventListener('keydown', focusSearchBar)\r\n\t\t\tdocument.removeEventListener('keyup', deleteSearchBarContent)\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\ttest() {\r\n\t\t\tconsole.log('test passato')\r\n\t\t},\r\n\t\tasync handleSearchBarKeyup(keyEvent) {\r\n\t\t\tlet isEnterPressed = keyEvent.keyCode === 13\r\n\r\n\t\t\t// If not enter do nothing\r\n\t\t\tif (!isEnterPressed) return\r\n\r\n\t\t\tlet term = this.$refs.searchbar.value\r\n\t\t\tlet isEmptySearch = term === ''\r\n\r\n\t\t\t// If empty do nothing\r\n\t\t\tif (isEmptySearch) return\r\n\r\n\t\t\tlet isSearchingURL = isValidURL(term)\r\n\t\t\tlet isCtrlPressed = keyEvent.ctrlKey\r\n\t\t\tlet isShowingAnalyzer = this.$route.name === 'Link Analyzer'\r\n\t\t\tlet isShowingSearch = this.$route.name === 'Search'\r\n\t\t\tlet sameAsLastSearch = term === this.lastTextSearch\r\n\r\n\t\t\tif (isSearchingURL) {\r\n\t\t\t\tif (isCtrlPressed) {\r\n\t\t\t\t\tthis.$root.$emit('QualityModal:open', term)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (isShowingAnalyzer) {\r\n\t\t\t\t\t\t// EventBus.$emit('linkAnalyzerTab:reset')\r\n\t\t\t\t\t\tsocket.emit('analyzeLink', term)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// ? Open downloads tab ?\r\n\t\t\t\t\t\tsendAddToQueue(term)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (isShowingSearch && sameAsLastSearch) {\r\n\t\t\t\t\tthis.$root.$emit('mainSearch:updateResults', term)\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!isShowingSearch) {\r\n\t\t\t\t\tawait this.$router.push({\r\n\t\t\t\t\t\tname: 'Search'\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!sameAsLastSearch) {\r\n\t\t\t\t\tthis.$root.$emit('updateSearchLoadingState', true)\r\n\t\t\t\t\tthis.lastTextSearch = term\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.$root.$emit('mainSearch:showNewResults', term)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<header id=\"search\" aria-label=\"searchbar\">\r\n\t\t<div class=\"search__icon\">\r\n\t\t\t<i class=\"material-icons\">search</i>\r\n\t\t</div>\r\n\t\t<input\r\n\t\t\tid=\"searchbar\"\r\n\t\t\tautocomplete=\"off\"\r\n\t\t\ttype=\"search\"\r\n\t\t\tname=\"searchbar\"\r\n\t\t\tvalue=\"\"\r\n\t\t\t:placeholder=\"$t('searchbar')\"\r\n\t\t\tautofocus\r\n\t\t\tref=\"searchbar\"\r\n\t\t\t@keyup=\"handleSearchBarKeyup($event)\"\r\n\t\t\tclass=\"p-1 m-4\"\r\n\t\t/>\r\n\t\t<!-- @keyup.enter.exact=\"onEnter\"\r\n\t\t\t@keyup.ctrl.enter=\"onCTRLEnter\" -->\r\n\t</header>\r\n</template>\r\n\r\n<style lang=\"scss\">\r\n$icon-dimension: 2rem;\r\n$searchbar-height: 45px;\r\n\r\n#search {\r\n\tbackground-color: var(--secondary-background);\r\n\tpadding: 0 1em;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tborder: 1px solid transparent;\r\n\ttransition: border 200ms ease-in-out;\r\n\tborder-radius: 15px;\r\n\tmargin: 10px 10px 20px 10px;\r\n\r\n\t&:focus-within {\r\n\t\tborder: 1px solid var(--foreground);\r\n\t}\r\n\r\n\t.search__icon {\r\n\t\twidth: $icon-dimension;\r\n\t\theight: $icon-dimension;\r\n\r\n\t\ti {\r\n\t\t\tfont-size: $icon-dimension;\r\n\t\t\tcolor: var(--foreground);\r\n\t\t}\r\n\t}\r\n\r\n\t#searchbar {\r\n\t\theight: $searchbar-height;\r\n\t\tpadding-left: 0.5em;\r\n\t\tborder: 0px;\r\n\t\tborder-radius: 0px;\r\n\t\tbackground-color: var(--secondary-background);\r\n\t\tcolor: var(--foreground);\r\n\t\tfont-size: 1.2rem;\r\n\t\tfont-family: 'Open Sans';\r\n\t\tfont-weight: 300;\r\n\t\tmargin-bottom: 0;\r\n\r\n\t\t&:focus {\r\n\t\t\toutline: none;\r\n\t\t}\r\n\r\n\t\t// Removing Chrome autofill color\r\n\t\t&:-webkit-autofill,\r\n\t\t&:-webkit-autofill:hover,\r\n\t\t&:-webkit-autofill:focus,\r\n\t\t&:-webkit-autofill:active {\r\n\t\t\t-webkit-box-shadow: 0 0 0 $searchbar-height var(--secondary-background) inset !important;\r\n\t\t\tbox-shadow: 0 0 0 $searchbar-height var(--secondary-background) inset !important;\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { isValidURL } from '@/utils/utils'\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport EventBus from '@/utils/EventBus'\r\nimport { socket } from '@/utils/socket'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tlastTextSearch: ''\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\tconst focusSearchBar = keyEvent => {\r\n\t\t\tif (keyEvent.keyCode === 70 && keyEvent.ctrlKey) {\r\n\t\t\t\tkeyEvent.preventDefault()\r\n\t\t\t\tthis.$refs.searchbar.focus()\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst deleteSearchBarContent = keyEvent => {\r\n\t\t\tif (!(keyEvent.key == 'Backspace' && keyEvent.ctrlKey && keyEvent.shiftKey)) return\r\n\r\n\t\t\tthis.$refs.searchbar.value = ''\r\n\t\t\tthis.$refs.searchbar.focus()\r\n\t\t}\r\n\r\n\t\tdocument.addEventListener('keydown', focusSearchBar)\r\n\t\tdocument.addEventListener('keyup', deleteSearchBarContent)\r\n\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tdocument.removeEventListener('keydown', focusSearchBar)\r\n\t\t\tdocument.removeEventListener('keyup', deleteSearchBarContent)\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\ttest() {\r\n\t\t\tconsole.log('test passato')\r\n\t\t},\r\n\t\tasync handleSearchBarKeyup(keyEvent) {\r\n\t\t\tlet isEnterPressed = keyEvent.keyCode === 13\r\n\r\n\t\t\t// If not enter do nothing\r\n\t\t\tif (!isEnterPressed) return\r\n\r\n\t\t\tlet term = this.$refs.searchbar.value\r\n\t\t\tlet isEmptySearch = term === ''\r\n\r\n\t\t\t// If empty do nothing\r\n\t\t\tif (isEmptySearch) return\r\n\r\n\t\t\tlet isSearchingURL = isValidURL(term)\r\n\t\t\tlet isCtrlPressed = keyEvent.ctrlKey\r\n\t\t\tlet isShowingAnalyzer = this.$route.name === 'Link Analyzer'\r\n\t\t\tlet isShowingSearch = this.$route.name === 'Search'\r\n\t\t\tlet sameAsLastSearch = term === this.lastTextSearch\r\n\r\n\t\t\tif (isSearchingURL) {\r\n\t\t\t\tif (isCtrlPressed) {\r\n\t\t\t\t\tthis.$root.$emit('QualityModal:open', term)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (isShowingAnalyzer) {\r\n\t\t\t\t\t\t// EventBus.$emit('linkAnalyzerTab:reset')\r\n\t\t\t\t\t\tsocket.emit('analyzeLink', term)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// ? Open downloads tab ?\r\n\t\t\t\t\t\tsendAddToQueue(term)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (isShowingSearch && sameAsLastSearch) {\r\n\t\t\t\t\tthis.$root.$emit('mainSearch:updateResults', term)\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!isShowingSearch) {\r\n\t\t\t\t\tawait this.$router.push({\r\n\t\t\t\t\t\tname: 'Search'\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!sameAsLastSearch) {\r\n\t\t\t\t\tthis.$root.$emit('updateSearchLoadingState', true)\r\n\t\t\t\t\tthis.lastTextSearch = term\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.$root.$emit('mainSearch:showNewResults', term)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { debounce } from '@/utils/utils'\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nexport default {\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t},\r\n\tdata: () => ({\r\n\t\tperformScrolledSearch: false,\r\n\t\tloading: false\r\n\t}),\r\n\tmounted() {\r\n\t\tthis.$root.$on('updateSearchLoadingState', loading => {\r\n\t\t\tthis.loading = loading\r\n\t\t})\r\n\r\n\t\tthis.$router.beforeEach((to, from, next) => {\r\n\t\t\tthis.$refs.content.scrollTo(0, 0)\r\n\t\t\tnext()\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\thandleContentScroll: debounce(async function () {\r\n\t\t\tif (this.$refs.content.scrollTop + this.$refs.content.clientHeight < this.$refs.content.scrollHeight) return\r\n\t\t\tthis.performScrolledSearch = true\r\n\r\n\t\t\tawait this.$nextTick()\r\n\r\n\t\t\tthis.performScrolledSearch = false\r\n\t\t}, 100)\r\n\t}\r\n}\r\n","<template>\r\n\t<main\r\n\t\tid=\"content\"\r\n\t\t@scroll=\"$route.name === 'Search' ? handleContentScroll($event) : null\"\r\n\t\tref=\"content\"\r\n\t\taria-label=\"main content\"\r\n\t>\r\n\t\t<div id=\"container\">\r\n\t\t\t<BaseLoadingPlaceholder id=\"search_placeholder\" text=\"Searching...\" :hidden=\"!loading\" />\r\n\r\n\t\t\t<keep-alive>\r\n\t\t\t\t<router-view\r\n\t\t\t\t\tv-if=\"!$route.meta.notKeepAlive\"\r\n\t\t\t\t\tv-show=\"!loading\"\r\n\t\t\t\t\t:key=\"$route.fullPath\"\r\n\t\t\t\t\t:perform-scrolled-search=\"performScrolledSearch\"\r\n\t\t\t\t\texclude=\"\"\r\n\t\t\t\t></router-view>\r\n\t\t\t</keep-alive>\r\n\r\n\t\t\t<router-view\r\n\t\t\t\tv-if=\"$route.meta.notKeepAlive\"\r\n\t\t\t\tv-show=\"!loading\"\r\n\t\t\t\t:key=\"$route.fullPath\"\r\n\t\t\t\t:perform-scrolled-search=\"performScrolledSearch\"\r\n\t\t\t\texclude=\"\"\r\n\t\t\t></router-view>\r\n\t\t</div>\r\n\t</main>\r\n</template>\r\n\r\n<style lang=\"scss\">\r\n#container {\r\n\tmargin: 0 auto;\r\n\tmax-width: 1280px;\r\n\twidth: var(--container-width);\r\n}\r\n\r\nmain {\r\n\tbackground-color: var(--main-background);\r\n\tpadding-right: 5px;\r\n\twidth: 100%;\r\n\theight: calc(100vh - 93px);\r\n\toverflow-y: scroll;\r\n\toverflow-x: hidden;\r\n\r\n\t&::-webkit-scrollbar {\r\n\t\twidth: 10px;\r\n\t}\r\n\r\n\t&::-webkit-scrollbar-track {\r\n\t\tbackground: var(--main-background);\r\n\t}\r\n\r\n\t&::-webkit-scrollbar-thumb {\r\n\t\tbackground: var(--main-scroll);\r\n\t\tborder-radius: 4px;\r\n\t\twidth: 6px;\r\n\t\tpadding: 0px 2px;\r\n\t}\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { debounce } from '@/utils/utils'\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nexport default {\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t},\r\n\tdata: () => ({\r\n\t\tperformScrolledSearch: false,\r\n\t\tloading: false\r\n\t}),\r\n\tmounted() {\r\n\t\tthis.$root.$on('updateSearchLoadingState', loading => {\r\n\t\t\tthis.loading = loading\r\n\t\t})\r\n\r\n\t\tthis.$router.beforeEach((to, from, next) => {\r\n\t\t\tthis.$refs.content.scrollTo(0, 0)\r\n\t\t\tnext()\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\thandleContentScroll: debounce(async function () {\r\n\t\t\tif (this.$refs.content.scrollTop + this.$refs.content.clientHeight < this.$refs.content.scrollHeight) return\r\n\t\t\tthis.performScrolledSearch = true\r\n\r\n\t\t\tawait this.$nextTick()\r\n\r\n\t\t\tthis.performScrolledSearch = false\r\n\t\t}, 100)\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport TheDownloadBar from '@components/downloads/TheDownloadBar.vue'\r\n\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\nimport TheContextMenu from '@components/globals/TheContextMenu.vue'\r\nimport TheTrackPreview from '@components/globals/TheTrackPreview.vue'\r\nimport TheQualityModal from '@components/globals/TheQualityModal.vue'\r\nimport ConfirmModal from '@components/globals/ConfirmModal.vue'\r\n\r\nimport TheSidebar from '@components/TheSidebar.vue'\r\nimport TheSearchBar from '@components/TheSearchBar.vue'\r\nimport TheContent from '@components/TheContent.vue'\r\n\r\nexport default {\r\n\tcomponents: {\r\n\t\tTheSidebar,\r\n\t\tTheSearchBar,\r\n\t\tTheDownloadBar,\r\n\t\tTheTrackPreview,\r\n\t\tTheQualityModal,\r\n\t\tBaseLoadingPlaceholder,\r\n\t\tTheContextMenu,\r\n\t\tTheContent,\r\n\t\tConfirmModal\r\n\t}\r\n}\r\n","<template>\r\n\t<div>\r\n\t\t<TheSidebar />\r\n\r\n\t\t<div class=\"app-container\">\r\n\t\t\t<div class=\"content-container\">\r\n\t\t\t\t<TheSearchBar />\r\n\t\t\t\t<TheContent />\r\n\t\t\t</div>\r\n\t\t\t<TheDownloadBar />\r\n\t\t</div>\r\n\r\n\t\t<BaseLoadingPlaceholder id=\"start_app_placeholder\" text=\"Connecting to the server...\" />\r\n\r\n\t\t<TheTrackPreview />\r\n\t\t<TheQualityModal />\r\n\t\t<!-- <ConfirmModal /> -->\r\n\r\n\t\t<TheContextMenu />\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\">\r\n.app-container {\r\n\tdisplay: flex;\r\n}\r\n\r\n.content-container {\r\n\twidth: 100%;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tmargin-left: 48px;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport TheDownloadBar from '@components/downloads/TheDownloadBar.vue'\r\n\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\nimport TheContextMenu from '@components/globals/TheContextMenu.vue'\r\nimport TheTrackPreview from '@components/globals/TheTrackPreview.vue'\r\nimport TheQualityModal from '@components/globals/TheQualityModal.vue'\r\nimport ConfirmModal from '@components/globals/ConfirmModal.vue'\r\n\r\nimport TheSidebar from '@components/TheSidebar.vue'\r\nimport TheSearchBar from '@components/TheSearchBar.vue'\r\nimport TheContent from '@components/TheContent.vue'\r\n\r\nexport default {\r\n\tcomponents: {\r\n\t\tTheSidebar,\r\n\t\tTheSearchBar,\r\n\t\tTheDownloadBar,\r\n\t\tTheTrackPreview,\r\n\t\tTheQualityModal,\r\n\t\tBaseLoadingPlaceholder,\r\n\t\tTheContextMenu,\r\n\t\tTheContent,\r\n\t\tConfirmModal\r\n\t}\r\n}\r\n</script>\r\n","/*!\n * vue-i18n v8.18.2 \n * (c) 2020 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'style',\n 'currency',\n 'currencyDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'localeMatcher',\n 'formatMatcher',\n 'unit'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction 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]) || Array.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]) || Array.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.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\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 = Array.isArray(a);\n var isArrayB = Array.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\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\nvar mixin = {\n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages = {};\n options.__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.__i18n) {\n try {\n var localeMessages$1 = {};\n options.__i18n.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.__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 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\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean],\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],\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) {\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(mixin);\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) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|.]+|\\([\\w\\-_|.]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = [];\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\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 } };\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 (Array.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 '<i18n>' 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 });\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.push(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var self = this;\n return this._vm.$watch('$data', function () {\n var i = self._dataListeners.length;\n while (i--) {\n Vue.nextTick(function () {\n self._dataListeners[i] && self._dataListeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale () {\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};\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\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (Array.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)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string!\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(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!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (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 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 Array.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._render = function _render (message, interpolateMode, values, path) {\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 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({}, this._vm.messages[locale] || {}, message));\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 for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n var id = _locale + \"__\" + key;\n var formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n return new Intl.DateTimeFormat(locale).format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n 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.18.2';\n\nexport default VueI18n;\n","const it = {\r\n\tglobals: {\r\n\t\twelcome: 'Benvenuto su deemix',\r\n\t\tback: 'indietro',\r\n\t\tloading: 'caricamento',\r\n\t\tdownload: 'Scarica {thing}',\r\n\t\tdownloadAll: 'Scarica ogni {thing}',\r\n\t\tby: 'di {artist}',\r\n\t\tin: 'in {album}',\r\n\t\tdownload_hint: 'Scarica',\r\n\t\tplay_hint: 'Riproduci',\r\n\t\ttoggle_download_tab_hint: 'Espandi/Riduci',\r\n\t\tclean_queue_hint: 'Pulisci Lista',\r\n\t\tcancel_queue_hint: 'Cancella tutti i download',\r\n\t\topen_downloads_folder: 'Apri la cartella di download',\r\n\t\tcut: 'taglia',\r\n\t\tcopy: 'copia',\r\n\t\tcopyLink: 'copia link',\r\n\t\tcopyImageLink: 'copia link immagine',\r\n\t\tcopyDeezerLink: 'copia link deezer',\r\n\t\tpaste: 'incolla',\r\n\t\tlistTabs: {\r\n\t\t\tall: 'tutto',\r\n\t\t\ttop_result: 'miglior risultato',\r\n\t\t\talbum: 'album',\r\n\t\t\tartist: 'artista | artisti',\r\n\t\t\tsingle: 'singolo | singoli',\r\n\t\t\ttitle: 'titolo | titoli',\r\n\t\t\ttrack: 'brano | brani',\r\n\t\t\ttrackN: '0 brani | {n} brano | {n} brani',\r\n\t\t\treleaseN: '0 dischi | {n} disco | {n} dischi',\r\n\t\t\tplaylist: 'playlist',\r\n\t\t\tcompile: 'compilation',\r\n\t\t\tbundle: 'collezione | collezioni',\r\n\t\t\tep: 'ep',\r\n\t\t\tmore: 'Altri album',\r\n\t\t\tfeatured: 'Compare in',\r\n\t\t\tspotifyPlaylist: 'playlist spotify',\r\n\t\t\treleaseDate: 'data di uscita',\r\n\t\t\terror: 'errore',\r\n\t\t\tempty: ''\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\tupdates: {\r\n\t\t\tcurrentVersion: 'Versione corrente',\r\n\t\t\tversionNotAvailable: 'N/A',\r\n\t\t\tupdateAvailable: `Non stai usando l'ultima versione disponibile: {version}`,\r\n\t\t\tdeemixVersion: 'Versione libreria deemix'\r\n\t\t},\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Link Utili',\r\n\t\t\tbugReports: 'Segnalazione di bug',\r\n\t\t\tcontributing: 'Contribuire al progetto',\r\n\t\t\tdonations: 'Donazioni',\r\n\t\t\tlicense: 'Licenza'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"C'è qualcosa di deemix che non funziona? Faccelo sapere!\",\r\n\t\t\tcontributing: 'Vuoi contribuire a questo progetto? Puoi farlo in più modi!',\r\n\t\t\tdonations: 'Vuoi dare una mano economicamente? Puoi fare una donazione!'\r\n\t\t},\r\n\t\tusesLibrary:\r\n\t\t\t'Questa app utilizza la libreria <strong>deemix</strong>, che puoi utilizzare per creare la tua Interfaccia Utente per deemix.',\r\n\t\tthanks: `Un ringraziamento a <strong>rtonno</strong>, <strong>uhwot</strong> e <strong>lollilol</strong> per l'aiuto che mi stanno dando in questo progetto e a <strong>BasCurtiz</strong> e <strong>scarvimane</strong> per aver creato l'icona.`,\r\n\t\tupToDate: `Rimani al passo con gli ultimi aggiornamenti seguendo il <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">canale delle news</a> su Telegram.`,\r\n\t\tofficialWebsite: 'Sito Ufficiale',\r\n\t\tofficialRepo: 'Repository Ufficiale della Libreria',\r\n\t\tofficialWebuiRepo: `Repository Ufficiale dell'Interfaccia Web`,\r\n\t\tofficialSubreddit: 'Subreddit Ufficiale',\r\n\t\tnewsChannel: 'Canale delle news',\r\n\t\tquestions: `Se dovessi avere domande o problemi con l'app, cerca prima una soluzione nel <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit ufficiale</a>. Se non trovi nulla, puoi postare li il tuo problema.`,\r\n\t\tbeforeReporting: `Prima di segnalare un problema controlla che quella che stai usando sia l'ultima versione dell'app e che ciò che vuoi segnalare sia effettivamente un problema e non qualcosa che non funziona solamente a te.`,\r\n\t\tbeSure: `Assicurati che il problema sia riproducibile su altri PC e <strong>NON</strong> segnalare un problema che è già stato segnalato.`,\r\n\t\tduplicateReports: 'Le segnalazioni doppie verranno chiuse, tienilo presente.',\r\n\t\tdontOpenIssues: `<strong>NON</strong> aprire issues per porre domande, per quello esiste un subreddit.`,\r\n\t\tnewUI: `Se te la cavi in python puoi provare a creare una nuova Interfaccia Utente per l'app usando la libreria base, oppure puoi correggere dei problemi nella libreria con una pull request nella <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repo</a>.`,\r\n\t\tacceptFeatures: `Accetto anche funzionalità, ma non cose complesse, dato che possono essere implementate direttamente nell'app invece che nella libreria.`,\r\n\t\totherLanguages: `Se te la cavi in altri linguaggi di programmazione, puoi provare a scrivere deemix in quei linguaggi!`,\r\n\t\tunderstandingCode: `Serve aiuto per capire il codice? Scrivi a RemixDev su Telegram o Reddit`,\r\n\t\tcontributeWebUI: `Se te la cavi con Vue.js (JavaScript), HTML o CSS, puoi contribuire alla <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: `Ricordati che <strong>questo è un progetto gratuito</strong> e che <strong>dovresti supportare gli artisti che ami</strong> prima di supportare gli sviluppatori.`,\r\n\t\tnotObligated: `Non sentirti obbligato a donare, mi stai simpatico lo stesso!`,\r\n\t\tlincensedUnder: `Questo lavoro è sotto la licenza\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\"\r\n\t\t\t\t>GNU General Public License 3.0</a\r\n\t\t\t>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Classifiche',\r\n\t\tchangeCountry: 'Cambia Paese',\r\n\t\tdownload: 'Scarica Classifica'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Errori riguardanti {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'URL non riconosciuto',\r\n\t\t\tunsupportedURL: 'URL non ancora supportato',\r\n\t\t\tISRCnotOnDeezer: 'Questo ISRC non è disponibile su Deezer',\r\n\t\t\tnotYourPrivatePlaylist: 'Non puoi scaricare le playlist private degli altri.',\r\n\t\t\tspotifyDisabled: 'Spotify Features non è impostato correttamente.',\r\n\t\t\ttrackNotOnDeezer: 'Brano non trovato su Deezer!',\r\n\t\t\talbumNotOnDeezer: 'Album non trovato su Deezer!',\r\n\t\t\tnotOnDeezer: 'Brano non disponibile su Deezer!',\r\n\t\t\tnotEncoded: 'Brano non ancora codificato!',\r\n\t\t\tnotEncodedNoAlternative: 'Brano non ancora codificato e nessuna alternativa trovata!',\r\n\t\t\twrongBitrate: 'Brano non trovato con il bitrate specificato.',\r\n\t\t\twrongBitrateNoAlternative: 'Brano non trovato con il bitrate specificato e nessuna alternativa trovata!',\r\n\t\t\tno360RA: 'Brano non disponibile in Reality Audio 360.',\r\n\t\t\tnotAvailable: 'Brano non presente sui server di Deezer!',\r\n\t\t\tnotAvailableNoAlternative: 'Brano non presente sui server di Deezer e nessuna alternativa trovata!',\r\n\t\t\tnoSpaceLeft: 'Spazio su disco esaurito!',\r\n\t\t\talbumDoesntExists: 'Il brano non ha nessun album, impossibile ottenere informazioni'\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Preferiti',\r\n\t\tnoPlaylists: 'Nessuna Playlist preferita trovata',\r\n\t\tnoAlbums: 'Nessun Album preferito trovato',\r\n\t\tnoArtists: 'Nessun Artista preferito trovato',\r\n\t\tnoTracks: 'Nessun Brano preferito trovato'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Devi accedere al tuo account Deezer, fino a quel momento non potrai scaricare nulla.',\r\n\t\topenSettings: 'Apri le impostazioni',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Playlist Popolari',\r\n\t\t\tpopularAlbums: 'Album più riprodotti'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo:\r\n\t\t\t'Puoi utilizzare questa sezione per avere più informazioni riguardanti il link che stai cercando di scaricare.',\r\n\t\tuseful:\r\n\t\t\t'Ciò può esserti utile se stai cercando di scaricare brani che non sono disponibili nel tuo Paese e vuoi sapere in quale Paese sono invece disponibili, per esempio.',\r\n\t\tlinkNotSupported: 'Questo link non è ancora supportato',\r\n\t\tlinkNotSupportedYet: 'Sembra che questo link non sia ancora supportato, prova ad analizzarne un altro.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Durata',\r\n\t\t\tdiskNumber: 'Numero Disco',\r\n\t\t\ttrackNumber: 'Numero Traccia',\r\n\t\t\treleaseDate: 'Data di uscita',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Etichetta',\r\n\t\t\trecordType: 'Tipologia di registrazione',\r\n\t\t\tgenres: 'Generi',\r\n\t\t\ttracklist: 'Lista tracce'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Inizia a cercare!',\r\n\t\tdescription:\r\n\t\t\t'Puoi cercare un brano, un intero album, un artista, una playlist.... quello che vuoi! Puoi anche incollare un link di Deezer',\r\n\t\tfans: '{n} fan',\r\n\t\tnoResults: 'Nessun risultato',\r\n\t\tnoResultsTrack: 'Nessun brano trovato',\r\n\t\tnoResultsAlbum: 'Nessun album trovato',\r\n\t\tnoResultsArtist: 'Nessun artista trovato',\r\n\t\tnoResultsPlaylist: 'Nessuna playlist trovata'\r\n\t},\r\n\tsearchbar: 'Cerca qualsiasi cosa (o incolla semplicemente un link)',\r\n\tdownloads: 'download',\r\n\ttoasts: {\r\n\t\trestoringQueue: 'Ripristinando la coda di download...',\r\n\t\tqueueRestored: 'Coda di download ripristinata!',\r\n\t\taddedToQueue: '{item} aggiunto alla coda',\r\n\t\taddedMoreToQueue: '{n} oggetti aggiunti alla coda',\r\n\t\talreadyInQueue: '{item} è già nella coda!',\r\n\t\tfinishDownload: '{item} ha finito di scaricarsi.',\r\n\t\tallDownloaded: 'Tutti i download completati!',\r\n\t\trefreshFavs: 'Preferiti ricaricati!',\r\n\t\tloggingIn: 'Effettuando il login...',\r\n\t\tloggedIn: 'Login effettuato',\r\n\t\talreadyLogged: 'Sei già loggato',\r\n\t\tloginFailed: 'Impossibile loggarsi',\r\n\t\tloggedOut: 'Disconnesso',\r\n\t\tcancellingCurrentItem: 'Cancellando download corrente.',\r\n\t\tcurrentItemCancelled: 'Download corrente cancellato.',\r\n\t\tstartAddingArtist: 'Aggiungendo gli album di {artist} alla coda',\r\n\t\tfinishAddingArtist: 'Aggiunto gli album di {artist} alla coda',\r\n\t\tstartConvertingSpotifyPlaylist: 'Convertendo i brani da spotify a deezer',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Playlist di spotify convertita',\r\n\t\tloginNeededToDownload: 'Devi accedere prima di poter scaricare brani!',\r\n\t\tdeezerNotAvailable: 'Deezer non è disponibile nel tuo paese. Dovresti usare una VPN.'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Impostazioni',\r\n\t\tlanguages: 'Lingue',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Login',\r\n\t\t\tloggedIn: 'Sei loggato come {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'Come ottengo il mio ARL?',\r\n\t\t\t\tupdate: 'Aggiorna ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Disconnettiti',\r\n\t\t\tlogin: 'Accedi tramite deezer.com'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Aspetto',\r\n\t\t\tslimDownloadTab: 'Tab dei download slim'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Cartella di download'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Template',\r\n\t\t\ttracknameTemplate: 'Template nome brano',\r\n\t\t\talbumTracknameTemplate: 'Template nome brano negli Album',\r\n\t\t\tplaylistTracknameTemplate: 'Template nome brano nelle Playlist'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Cartelle',\r\n\t\t\tcreatePlaylistFolder: 'Crea cartelle per le Playlist',\r\n\t\t\tplaylistNameTemplate: 'Template nome della cartella Playlist',\r\n\t\t\tcreateArtistFolder: 'Crea cartelle per gli Artisti',\r\n\t\t\tartistNameTemplate: 'Template nome della cartella Artista',\r\n\t\t\tcreateAlbumFolder: 'Crea cartelle per gli Album',\r\n\t\t\talbumNameTemplate: 'Template nome della cartella Album',\r\n\t\t\tcreateCDFolder: 'Crea cartelle per i CD',\r\n\t\t\tcreateStructurePlaylist: 'Crea la struttura di cartelle per le Playlist',\r\n\t\t\tcreateSingleFolder: 'Crea la struttura di cartelle per i brani singoli'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Titoli brani',\r\n\t\t\tpadTracks: 'Aggiungi zeri ai numeri di traccia',\r\n\t\t\tpaddingSize: 'Sovrascrivi il numero di zeri da aggiungere',\r\n\t\t\tillegalCharacterReplacer: 'Rimpiazza caratteri illegali con'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Download',\r\n\t\t\tqueueConcurrency: 'Download simultanei',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Bitrate preferito',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Dovrei sovrascrivere i file già scaricati?',\r\n\t\t\t\ty: 'Si, sovrascrivi i file',\r\n\t\t\t\tn: 'No, non sovrascrivere i file',\r\n\t\t\t\tt: 'Sovrascrivi solo i tag',\r\n\t\t\t\tb: 'No, mantieni entrambi i file e aggiungi un numero al duplicato',\r\n\t\t\t\te: 'No, e non tener conto della estensione del file'\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Utilizza bitrate più bassi se il bitrate preferito non è disponibile',\r\n\t\t\tfallbackSearch: 'Cerca il brano se il link originale non è disponibile',\r\n\t\t\tlogErrors: 'Crea file di log per gli errori',\r\n\t\t\tlogSearched: 'Crea file di log per le alternative cercate',\r\n\t\t\tsyncedLyrics: 'Crea i file .lyr (Testi Sincronizzati)',\r\n\t\t\tcreateM3U8File: 'Crea i file playlist',\r\n\t\t\tplaylistFilenameTemplate: 'Template nome del file playlist',\r\n\t\t\tsaveDownloadQueue: \"Salva la coda di download quando chiudi l'app\"\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Copertine',\r\n\t\t\tsaveArtwork: 'Salva copertina album',\r\n\t\t\tcoverImageTemplate: 'Template nome copertina album',\r\n\t\t\tsaveArtworkArtist: 'Salva copertina artista',\r\n\t\t\tartistImageTemplate: 'Template nome copertina artista',\r\n\t\t\tlocalArtworkSize: 'Dimensioni copertine locali',\r\n\t\t\tembeddedArtworkSize: 'Dimensioni copertine incorporate',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'Come vuoi salvare le copertine locali?',\r\n\t\t\t\tjpg: 'In jpeg',\r\n\t\t\t\tpng: 'In png',\r\n\t\t\t\tboth: 'Sia in jpeg che in png'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'Qualità immagine JPEG',\r\n\t\t\tembeddedArtworkPNG: 'Salva copertina incorporata come PNG',\r\n\t\t\tembeddedPNGWarning: 'Le immagini PNG non sono usate ufficialmente da Deezer e potrebbero dare problemi',\r\n\t\t\timageSizeWarning:\r\n\t\t\t\t'Dimensioni maggiori di x1200 non sono usate ufficialmente da Deezer, potresti incontrare problemi',\r\n\t\t\tcoverDescriptionUTF8: 'Salva la descrizione della copertina in UTF8 (iTunes Cover Fix)'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Quali tag salvare',\r\n\t\t\ttitle: 'Titolo',\r\n\t\t\tartist: 'Artista',\r\n\t\t\talbum: 'Album',\r\n\t\t\tcover: 'Copertina',\r\n\t\t\ttrackNumber: 'Numero Traccia',\r\n\t\t\ttrackTotal: 'Tracce Totali',\r\n\t\t\tdiscNumber: 'Numero Disco',\r\n\t\t\tdiscTotal: 'Dischi Totali',\r\n\t\t\talbumArtist: \"Artista dell'album\",\r\n\t\t\tgenre: 'Genere',\r\n\t\t\tyear: 'Anno',\r\n\t\t\tdate: 'Data',\r\n\t\t\texplicit: 'Testo Esplicito',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Durata Traccia',\r\n\t\t\tbarcode: \"Barcode dell'album (UPC)\",\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Replay gain',\r\n\t\t\tlabel: 'Casa Discografica',\r\n\t\t\tlyrics: 'Testo non Sincronizzato',\r\n\t\t\tsyncedLyrics: 'Testo Sincronizzato',\r\n\t\t\tcopyright: 'Copyright',\r\n\t\t\tcomposer: 'Compositori',\r\n\t\t\tinvolvedPeople: 'Persone Coinvolte'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Altro',\r\n\t\t\tsavePlaylistAsCompilation: 'Salva le playlist come Compilation',\r\n\t\t\tuseNullSeparator: 'Usa il carattere NULL come separatore',\r\n\t\t\tsaveID3v1: \"Salva anche l'ID3v1\",\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Come vuoi separare gli artisti?',\r\n\t\t\t\tnothing: \"Salva solo l'artista principale\",\r\n\t\t\t\tdefault: 'Usando la specificazione standard',\r\n\t\t\t\tandFeat: 'Usando & e feat.',\r\n\t\t\t\tusing: 'Usando \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: \"Salva solo l'artista dell'album principale\",\r\n\t\t\talbumVariousArtists: 'Lascia \"Artisti Vari\" negli artisti dell\\'album',\r\n\t\t\tremoveAlbumVersion: 'Rimuovi \"Album Version\" dal titolo del brano',\r\n\t\t\tremoveDuplicateArtists: 'Rimuovi le combinazioni di artisti',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Formato della data per i file FLAC',\r\n\t\t\t\tyear: 'AAAA',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'GG'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'Cosa dovrei fare con i feat?',\r\n\t\t\t\t0: 'Niente',\r\n\t\t\t\t1: 'Rimuovili dal titolo',\r\n\t\t\t\t3: \"Rimuovili dal titolo e dal nome dell'album\",\r\n\t\t\t\t2: 'Spostali sul titolo'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Formato testo dei titoli',\r\n\t\t\tartistCasing: 'Formato testo degli artisti',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Non cambiare',\r\n\t\t\t\tupper: 'TUTTO MAIUSCOLO',\r\n\t\t\t\tlower: 'tutto minuscolo',\r\n\t\t\t\tstart: 'Prima Lettera Maiuscola',\r\n\t\t\t\tsentence: 'Come una frase'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Volume Anteprime',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Comando da eseguire dopo il download',\r\n\t\t\t\tdescription: 'Lascia vuoto per nessuna azione'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Spotify Features',\r\n\t\t\tclientID: 'Spotify clientID',\r\n\t\t\tclientSecret: 'Spotify Client Secret',\r\n\t\t\tusername: 'Spotify username',\r\n\t\t\tquestion: 'Come attivo le Spotify Features?'\r\n\t\t},\r\n\t\treset: 'Reimposta Default',\r\n\t\tsave: 'Salva',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Impostazioni caricate!',\r\n\t\t\tupdate: 'Impostazioni aggiornate!',\r\n\t\t\tARLcopied: 'ARL copiato negli appunti'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'home',\r\n\t\tsearch: 'ricerca',\r\n\t\tcharts: 'classifiche',\r\n\t\tfavorites: 'preferiti',\r\n\t\tlinkAnalyzer: 'analizza link',\r\n\t\tsettings: 'impostazioni',\r\n\t\tabout: 'info'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Scarica selezionati'\r\n\t}\r\n}\r\n\r\nexport default it\r\n","const en = {\r\n\tglobals: {\r\n\t\twelcome: 'Welcome to deemix',\r\n\t\tback: 'back',\r\n\t\tloading: 'loading',\r\n\t\tdownload: 'Download {thing}',\r\n\t\tdownloadAll: 'Download all {thing}',\r\n\t\tby: 'by {artist}',\r\n\t\tin: 'in {album}',\r\n\t\tdownload_hint: 'Download',\r\n\t\tplay_hint: 'Play',\r\n\t\ttoggle_download_tab_hint: 'Expand/Collapse',\r\n\t\tclean_queue_hint: 'Clear Finished',\r\n\t\tcancel_queue_hint: 'Cancel All',\r\n\t\topen_downloads_folder: 'Open Downloads Folder',\r\n\t\tcut: 'cut',\r\n\t\tcopy: 'copy',\r\n\t\tcopyLink: 'copy link',\r\n\t\tcopyImageLink: 'copy image link',\r\n\t\tcopyDeezerLink: 'copy deezer link',\r\n\t\tpaste: 'paste',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'all',\r\n\t\t\ttop_result: 'top result',\r\n\t\t\talbum: 'album | albums',\r\n\t\t\tartist: 'artist | artists',\r\n\t\t\tsingle: 'single | singles',\r\n\t\t\ttitle: 'title | titles',\r\n\t\t\ttrack: 'track | tracks',\r\n\t\t\ttrackN: '0 tracks | {n} track | {n} tracks',\r\n\t\t\treleaseN: '0 releases | {n} release | {n} releases',\r\n\t\t\tplaylist: 'playlist | playlists',\r\n\t\t\tcompile: 'compilation | compilations',\r\n\t\t\tep: 'ep | eps',\r\n\t\t\tbundle: 'bundle | bundles',\r\n\t\t\tmore: 'More albums',\r\n\t\t\tfeatured: 'Featured in',\r\n\t\t\tspotifyPlaylist: 'spotify playlist | spotify playlists',\r\n\t\t\treleaseDate: 'release date',\r\n\t\t\terror: 'error'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\tupdates: {\r\n\t\t\tcurrentVersion: 'Current Version',\r\n\t\t\tversionNotAvailable: 'N/A',\r\n\t\t\tupdateAvailable: `You're not running the latest version available: {version}`,\r\n\t\t\tdeemixVersion: 'deemix lib version'\r\n\t\t},\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Useful Links',\r\n\t\t\tbugReports: 'Bug Reports',\r\n\t\t\tcontributing: 'Contributing',\r\n\t\t\tdonations: 'Donations',\r\n\t\t\tlicense: 'License'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"Is there something that isn't working in deemix? Tell us!\",\r\n\t\t\tcontributing: 'You want to contribute to this project? You can do it in different ways!',\r\n\t\t\tdonations: 'You want to contribute monetarily? You could make a donation!'\r\n\t\t},\r\n\t\tusesLibrary: 'This app uses the <strong>deemix</strong> library, which you can use to make your own UI for deemix.',\r\n\t\tthanks: `Thanks to <strong>rtonno</strong>, <strong>uhwot</strong> and <strong>lollilol</strong> for helping me with this project and to <strong>BasCurtiz</strong> and <strong>scarvimane</strong> for making the icon.`,\r\n\t\tupToDate: `Stay up to date with the updates by following the <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">news channel</a> on Telegram.`,\r\n\t\tofficialWebsite: 'Official Website',\r\n\t\tofficialRepo: 'Official Library Repository',\r\n\t\tofficialWebuiRepo: 'Official WebUI Repository',\r\n\t\tofficialSubreddit: 'Official Subreddit',\r\n\t\tnewsChannel: 'News Channel',\r\n\t\tquestions: `If you have questions or problems with the app, search for a solution on the <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a> first. Then, if you don't find anything you can make a post with your issue on the subreddit.`,\r\n\t\tbeforeReporting: `Before reporting a bug make sure you're running the latest version of the app and that what you want to report is actually a bug and not something that's wrong only on your end.`,\r\n\t\tbeSure: `Make sure the bug is reproducible on other machines and also <strong>DO NOT</strong> report a bug if it's already been reported.`,\r\n\t\tduplicateReports: 'Duplicate bug reports will be closed, so keep an eye out on that.',\r\n\t\tdontOpenIssues: `<strong>DO NOT</strong> open issues for asking questions, there is a subreddit for that.`,\r\n\t\tnewUI: `If you're fluent in python you could try to make a new UI for the app using the base library, or fix bugs in the library with a pull request on the <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repo</a>.`,\r\n\t\tacceptFeatures: `I accept features as well, but no complex things, as they can be implementend directly in the app and not the library.`,\r\n\t\totherLanguages: `If you're fluent in another programming language you could try to port deemix into other programming languages!`,\r\n\t\tunderstandingCode: `You need help understanding the code? Just hit RemixDev up on Telegram or Reddit.`,\r\n\t\tcontributeWebUI: `If you know Vue.js (JavaScript), HTML or CSS you could contribute to the <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: `You should remember that <strong>this is a free project</strong> and <strong>you should support the artists you love</strong> before supporting the developers.`,\r\n\t\tnotObligated: `Don't feel obligated to donate, I appreciate you anyway!`,\r\n\t\tlincensedUnder: `This work is licensed under the\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">GNU General Public License 3.0</a>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Charts',\r\n\t\tchangeCountry: 'Change Country',\r\n\t\tdownload: 'Download Chart'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Errors for {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'URL not recognized',\r\n\t\t\tunsupportedURL: 'URL not supported yet',\r\n\t\t\tISRCnotOnDeezer: 'Track ISRC is not available on Deezer',\r\n\t\t\tnotYourPrivatePlaylist: \"You can't download others private playlists.\",\r\n\t\t\tspotifyDisabled: 'Spotify Features is not setted up correctly.',\r\n\t\t\ttrackNotOnDeezer: 'Track not found on Deezer!',\r\n\t\t\talbumNotOnDeezer: 'Album not found on Deezer!',\r\n\t\t\tnotOnDeezer: 'Track not available on Deezer!',\r\n\t\t\tnotEncoded: 'Track not yet encoded!',\r\n\t\t\tnotEncodedNoAlternative: 'Track not yet encoded and no alternative found!',\r\n\t\t\twrongBitrate: 'Track not found at desired bitrate.',\r\n\t\t\twrongBitrateNoAlternative: 'Track not found at desired bitrate and no alternative found!',\r\n\t\t\tno360RA: 'Track is not available in Reality Audio 360.',\r\n\t\t\tnotAvailable: \"Track not available on Deezer's servers!\",\r\n\t\t\tnotAvailableNoAlternative: \"Track not available on Deezer's servers and no alternative found!\",\r\n\t\t\tnoSpaceLeft: 'No space left on the device!',\r\n\t\t\talbumDoesntExists: \"Track's album doesn't exist, failed to gather info\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Favorites',\r\n\t\tnoPlaylists: 'No Playlists found',\r\n\t\tnoAlbums: 'No Favorite Albums found',\r\n\t\tnoArtists: 'No Favorite Artists found',\r\n\t\tnoTracks: 'No Favorite Tracks found'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'You need to log into your Deezer account before you can start downloading.',\r\n\t\topenSettings: 'Open Settings',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Popular playlists',\r\n\t\t\tpopularAlbums: 'Most streamed albums'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'You can use this section to find more information about the link you are trying to download.',\r\n\t\tuseful:\r\n\t\t\t\"This is useful if you're trying to download some tracks that are not available in your country and want to know where they are available, for instance.\",\r\n\t\tlinkNotSupported: 'This link is not yet supported',\r\n\t\tlinkNotSupportedYet: 'Seems like this link is not yet supported, try analyzing another one.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Duration',\r\n\t\t\tdiskNumber: 'Disk Number',\r\n\t\t\ttrackNumber: 'Track Number',\r\n\t\t\treleaseDate: 'Release Date',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Label',\r\n\t\t\trecordType: 'Record Type',\r\n\t\t\tgenres: 'Genres',\r\n\t\t\ttracklist: 'Tracklist'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Start searching!',\r\n\t\tdescription:\r\n\t\t\t'You can search a track, a whole album, an artist, a playlist.... everything! You can also paste a Deezer link',\r\n\t\tfans: '{n} fans',\r\n\t\tnoResults: 'No results',\r\n\t\tnoResultsTrack: 'No Tracks found',\r\n\t\tnoResultsAlbum: 'No Albums found',\r\n\t\tnoResultsArtist: 'No Artists found',\r\n\t\tnoResultsPlaylist: 'No Playlists found'\r\n\t},\r\n\tsearchbar: 'Search anything you want (or just paste a link)',\r\n\tdownloads: 'downloads',\r\n\ttoasts: {\r\n\t\trestoringQueue: 'Restoring download queue...',\r\n\t\tqueueRestored: 'Download queue restored!',\r\n\t\taddedToQueue: '{item} added to queue',\r\n\t\taddedMoreToQueue: '{n} items added to queue',\r\n\t\talreadyInQueue: '{item} is already in queue!',\r\n\t\tfinishDownload: '{item} finished downloading.',\r\n\t\tallDownloaded: 'All downloads completed!',\r\n\t\trefreshFavs: 'Refresh completed!',\r\n\t\tloggingIn: 'Logging in...',\r\n\t\tloggedIn: 'Logged in',\r\n\t\talreadyLogged: 'Already logged in',\r\n\t\tloginFailed: \"Couldn't log in\",\r\n\t\tloggedOut: 'Logged out',\r\n\t\tcancellingCurrentItem: 'Cancelling current item.',\r\n\t\tcurrentItemCancelled: 'Current item cancelled.',\r\n\t\tstartAddingArtist: 'Adding {artist} albums to queue',\r\n\t\tfinishAddingArtist: 'Added {artist} albums to queue',\r\n\t\tstartConvertingSpotifyPlaylist: 'Converting spotify tracks to Deezer tracks',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Spotify playlist converted',\r\n\t\tloginNeededToDownload: 'You need to log in to download tracks!',\r\n\t\tdeezerNotAvailable: 'Deezer is not available in your country. You should use a VPN.'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Settings',\r\n\t\tlanguages: 'Languages',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Login',\r\n\t\t\tloggedIn: 'You are logged in as {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'How do I get my own ARL?',\r\n\t\t\t\tupdate: 'Update ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Logout',\r\n\t\t\tlogin: 'Login via deezer.com'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Appearance',\r\n\t\t\tslimDownloadTab: 'Slim download tab'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Download Path'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Templates',\r\n\t\t\ttracknameTemplate: 'Trackname template',\r\n\t\t\talbumTracknameTemplate: 'Album track template',\r\n\t\t\tplaylistTracknameTemplate: 'Playlist track template'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Folders',\r\n\t\t\tcreatePlaylistFolder: 'Create folder for playlists',\r\n\t\t\tplaylistNameTemplate: 'Playlist folder template',\r\n\t\t\tcreateArtistFolder: 'Create folder for artist',\r\n\t\t\tartistNameTemplate: 'Artist folder template',\r\n\t\t\tcreateAlbumFolder: 'Create folder for album',\r\n\t\t\talbumNameTemplate: 'Album folder template',\r\n\t\t\tcreateCDFolder: 'Create folder for CDs',\r\n\t\t\tcreateStructurePlaylist: 'Create folder structure for playlists',\r\n\t\t\tcreateSingleFolder: 'Create folder structure for singles'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Track titles',\r\n\t\t\tpadTracks: 'Pad tracks',\r\n\t\t\tpaddingSize: 'Overwrite padding size',\r\n\t\t\tillegalCharacterReplacer: 'Illegal Character replacer'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Downloads',\r\n\t\t\tqueueConcurrency: 'Concurrent Downloads',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Preferred Bitrate',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Should I overwrite the files?',\r\n\t\t\t\ty: 'Yes, overwrite the file',\r\n\t\t\t\tn: \"No, don't overwrite the file\",\r\n\t\t\t\tt: 'Overwrite only the tags',\r\n\t\t\t\tb: 'No, keep both files and add a number to the duplicate',\r\n\t\t\t\te: \"No, and don't look at the extensions\"\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Bitrate fallback',\r\n\t\t\tfallbackSearch: 'Search fallback',\r\n\t\t\tlogErrors: 'Create log files for errors',\r\n\t\t\tlogSearched: 'Create log files for searched tracks',\r\n\t\t\tcreateM3U8File: 'Create playlist file',\r\n\t\t\tsyncedLyrics: 'Create .lyr files (Sync Lyrics)',\r\n\t\t\tplaylistFilenameTemplate: 'Playlist filename template',\r\n\t\t\tsaveDownloadQueue: 'Save download queue when closing the app'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Album covers',\r\n\t\t\tsaveArtwork: 'Save Covers',\r\n\t\t\tcoverImageTemplate: 'Cover name template',\r\n\t\t\tsaveArtworkArtist: 'Save artist image',\r\n\t\t\tartistImageTemplate: 'Artist image template',\r\n\t\t\tlocalArtworkSize: 'Local artwork size',\r\n\t\t\tembeddedArtworkSize: 'Embedded artwork size',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'What format do you want the local artwork to be?',\r\n\t\t\t\tjpg: 'A jpeg image',\r\n\t\t\t\tpng: 'A png image',\r\n\t\t\t\tboth: 'Both a jpeg and a png'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'JPEG image quality',\r\n\t\t\tembeddedArtworkPNG: 'Save embedded artwork as PNG',\r\n\t\t\tembeddedPNGWarning: 'PNGs are not officialy supported by Deezer and can be buggy',\r\n\t\t\timageSizeWarning: 'Anything above x1200 is not officialy used by Deezer, you may encounter issues',\r\n\t\t\tcoverDescriptionUTF8: 'Save cover description using UTF8 (iTunes Cover Fix)'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Which tags to save',\r\n\t\t\ttitle: 'Title',\r\n\t\t\tartist: 'Artist',\r\n\t\t\talbum: 'Album',\r\n\t\t\tcover: 'Cover',\r\n\t\t\ttrackNumber: 'Track Number',\r\n\t\t\ttrackTotal: 'Track Total',\r\n\t\t\tdiscNumber: 'Disc Number',\r\n\t\t\tdiscTotal: 'Disc Total',\r\n\t\t\talbumArtist: 'Album Artist',\r\n\t\t\tgenre: 'Genre',\r\n\t\t\tyear: 'Year',\r\n\t\t\tdate: 'Date',\r\n\t\t\texplicit: 'Explicit Lyrics',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Track Length',\r\n\t\t\tbarcode: 'Album Barcode (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Replay Gain',\r\n\t\t\tlabel: 'Album Label',\r\n\t\t\tlyrics: 'Unsynchronized Lyrics',\r\n\t\t\tsyncedLyrics: 'Synchronized Lyrics',\r\n\t\t\tcopyright: 'Copyright',\r\n\t\t\tcomposer: 'Composer',\r\n\t\t\tinvolvedPeople: 'Involved People'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Other',\r\n\t\t\tsavePlaylistAsCompilation: 'Save playlists as compilation',\r\n\t\t\tuseNullSeparator: 'Use null separator',\r\n\t\t\tsaveID3v1: 'Save ID3v1 as well',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'How would you like to separate your artists?',\r\n\t\t\t\tnothing: 'Save only the main artist',\r\n\t\t\t\tdefault: 'Using standard specification',\r\n\t\t\t\tandFeat: 'Using & and feat.',\r\n\t\t\t\tusing: 'Using \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'Save only the main album artist',\r\n\t\t\talbumVariousArtists: 'Keep \"Various Artists\" in the Album Artists',\r\n\t\t\tremoveAlbumVersion: 'Remove \"Album Version\" from track title',\r\n\t\t\tremoveDuplicateArtists: 'Remove combinations of artists',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Date format for FLAC files',\r\n\t\t\t\tyear: 'YYYY',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'DD'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'What should I do with featured artists?',\r\n\t\t\t\t0: 'Nothing',\r\n\t\t\t\t1: 'Remove it from the title',\r\n\t\t\t\t3: 'Remove it from the title and the album title',\r\n\t\t\t\t2: 'Move it to the title'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Title casing',\r\n\t\t\tartistCasing: 'Artist casing',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Keep unchanged',\r\n\t\t\t\tlower: 'lowercase',\r\n\t\t\t\tupper: 'UPPERCASE',\r\n\t\t\t\tstart: 'Start Of Each Word',\r\n\t\t\t\tsentence: 'Like a sentence'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Preview Volume',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Command to execute after download',\r\n\t\t\t\tdescription: 'Leave blank for no action'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Spotify Features',\r\n\t\t\tclientID: 'Spotify ClientID',\r\n\t\t\tclientSecret: 'Spotify Client Secret',\r\n\t\t\tusername: 'Spotify Username',\r\n\t\t\tquestion: 'How do I enable Spotify Features?'\r\n\t\t},\r\n\t\treset: 'Reset to Default',\r\n\t\tsave: 'Save',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Settings loaded!',\r\n\t\t\tupdate: 'Settings updated!',\r\n\t\t\tARLcopied: 'ARL copied to clipboard'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'home',\r\n\t\tsearch: 'search',\r\n\t\tcharts: 'charts',\r\n\t\tfavorites: 'favorites',\r\n\t\tlinkAnalyzer: 'link analyzer',\r\n\t\tsettings: 'settings',\r\n\t\tabout: 'about'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Download selection'\r\n\t}\r\n}\r\n\r\nexport default en\r\n","const es = {\r\n\tglobals: {\r\n\t\twelcome: 'Bienvenido a deemix',\r\n\t\tback: 'atrás',\r\n\t\tloading: 'cargando',\r\n\t\tdownload: 'Descarga {thing}',\r\n\t\tby: 'por {artist}',\r\n\t\tin: 'en {album}',\r\n\t\tdownload_hint: 'Descargar',\r\n\t\tplay_hint: 'Reproducir',\r\n\t\ttoggle_download_tab_hint: 'Expandir/Colapsar',\r\n\t\tclean_queue_hint: 'Limpiar terminados',\r\n\t\tcancel_queue_hint: 'Cancelar todos',\r\n\t\topen_downloads_folder: 'Abrir carpeta de descargas',\r\n\t\tcut: 'cortar',\r\n\t\tcopy: 'copiar',\r\n\t\tcopyLink: 'copiar link',\r\n\t\tcopyImageLink: 'copiar link de la imagen',\r\n\t\tcopyDeezerLink: 'copiar link de Deezer',\r\n\t\tpaste: 'pegar',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'todos',\r\n\t\t\ttop_result: 'mejores resultados',\r\n\t\t\talbum: 'álbum | álbumes',\r\n\t\t\tartist: 'artista | artistas',\r\n\t\t\tsingle: 'sencillo | sencillos',\r\n\t\t\ttitle: 'título | títulos',\r\n\t\t\ttrack: 'pista | pistas',\r\n\t\t\ttrackN: '0 pistas | {n} pista | {n} pistas',\r\n\t\t\treleaseN: '0 entregas | {n} entrega | {n} entregas',\r\n\t\t\tplaylist: 'lista de reproducción | listas de reproducción',\r\n\t\t\tcompile: 'compilación | compilaciones',\r\n\t\t\tep: 'ep | eps',\r\n\t\t\tmore: 'Más álbumes',\r\n\t\t\tfeatured: 'Apareció en',\r\n\t\t\tspotifyPlaylist: 'lista de reproducción spotify | listas de reproducción spotify',\r\n\t\t\treleaseDate: 'fecha de publicación',\r\n\t\t\terror: 'error'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\tupdates: {\r\n\t\t\tcurrentVersion: 'Versión actual',\r\n\t\t\tversionNotAvailable: 'N/D',\r\n\t\t\tupdateAvailable: `No estás ejecutando la última versión disponible: {versión}`,\r\n\t\t\tdeemixVersion: 'versión de la biblioteca deemix'\r\n\t\t},\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Enlaces útiles',\r\n\t\t\tbugReports: 'Reportar fallos',\r\n\t\t\tcontributing: 'Contribuye',\r\n\t\t\tdonations: 'Donaciones',\r\n\t\t\tlicense: 'Licencia'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: '¿Hay algo que no funcione en Deemix? ¡Díganoslo!',\r\n\t\t\tcontributing: '¿Quieres contribuir a este proyecto? ¡Puedes hacerlo de diferentes maneras!',\r\n\t\t\tdonations: '¿Quiere contribuir monetariamente? ¡Podrías hacer una donación!'\r\n\t\t},\r\n\t\tusesLibrary: 'Esta aplicación usa la biblioteca <strong>deemix</strong>, que puedes usar para hacer tu propia interfaz de usuario para deemix.',\r\n\t\tthanks: `Gracias a <strong>rtonno</strong>, <strong>uhwot</strong> y <strong>lollilol</strong> por ayudarme con este proyecto, a <strong>BasCurtiz</strong> y <strong>scarvimane</strong> por hacer el icono.`,\r\n\t\tupToDate: `Mantente al día con las actualizaciones siguiendo el <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">canal de noticias</a> en Telegram.`,\r\n\t\tofficialWebsite: 'Página web oficial',\r\n\t\tofficialRepo: 'Repositorio de la biblioteca oficial',\r\n\t\tofficialWebuiRepo: 'Repositorio oficial de WebUI',\r\n\t\tofficialSubreddit: 'Subreddit oficial',\r\n\t\tnewsChannel: 'Canal de noticias',\r\n\t\tquestions: `Si tienes preguntas o problemas con la aplicación, busca una solución en el <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a> primero. Luego, si no encuentras nada puedes hacer un post con tu problema en el subreddit.`,\r\n\t\tbeforeReporting: 'Antes de informar de un error asegúrese de que está ejecutando la última versión de la aplicación y que lo que quiere informar es en realidad un error y no algo que está mal sólo en su extremo.',\r\n\t\tbeSure: 'Asegúrate de que el fallo es reproducible en otras máquinas y también <strong>NO</strong> reporte un fallo si ya ha sido reportado.',\r\n\t\tduplicateReports: 'Los informes de errores duplicados se cerrarán, así que manténgase al tanto de eso.',\r\n\t\tdontOpenIssues: '<strong>NO</strong> abra problemas para hacer preguntas, hay un subreddit para eso.',\r\n\t\tnewUI: `Si tienes fluidez en Python podrías intentar hacer una nueva interfaz de usuario para la aplicación usando la biblioteca base, o arreglar los errores de la biblioteca con una petición pull en el <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repo</a>.`,\r\n\t\tacceptFeatures: 'También acepto características, pero no cosas complejas, ya que se pueden implementar directamente en la aplicación y no en la biblioteca.',\r\n\t\totherLanguages: '¡Si dominas otro lenguaje de programación podrías intentar portar Deemix a otros lenguajes de programación!',\r\n\t\tunderstandingCode: '¿Necesitas ayuda para entender el código? Sólo tienes que poner RemixDev en Telegram o Reddit.',\r\n\t\tcontributeWebUI: `Si conoces Vue.js (JavaScript), HTML o CSS podrías contribuir a la <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: 'Debes recordar que <strong>este es un proyecto libre</strong> y <strong>debes apoyar a los artistas que amas</strong> antes de apoyar a los desarrolladores.',\r\n\t\tnotObligated: 'No te sientas obligado a donar, ¡te aprecio de todas formas!',\r\n\t\tlincensedUnder: `Esta obra está autorizada bajo una <a rel=\"licencia\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">GNU Licencia Pública General 3.0</a>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Tablas',\r\n\t\tchangeCountry: 'Cambiar país',\r\n\t\tdownload: 'Descargar la tabla'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Errores para {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'No se reconoce la URL',\r\n\t\t\tunsupportedURL: 'La URL no está soportada aún',\r\n\t\t\tISRCnotOnDeezer: 'Pista ISRC no está disponible en Deezer',\r\n\t\t\tnotYourPrivatePlaylist: 'No puedes descargar otras listas de reproducción privadas.',\r\n\t\t\tspotifyDisabled: 'Funciones de Spotify no está configurado correctamente.',\r\n\t\t\ttrackNotOnDeezer: '¡No se encontró la pista en Deezer!',\r\n\t\t\talbumNotOnDeezer: '¡El álbum no se encuentra en Deezer!',\r\n\t\t\tnotOnDeezer: '¡Pista no disponible en Deezer!',\r\n\t\t\tnotEncoded: '¡Pista aún no codificada!',\r\n\t\t\tnotEncodedNoAlternative: '¡Pista aún no codificada y no se ha encontrado ninguna alternativa!',\r\n\t\t\twrongBitrate: 'La pista no se encuentra a la velocidad de bitrate deseada.',\r\n\t\t\twrongBitrateNoAlternative: '¡Pista no encontrada a la tasa de bits deseada y no se ha encontrado ninguna alternativa!',\r\n\t\t\tno360RA: 'La pista no está disponible en Reality Audio 360.',\r\n\t\t\tnotAvailable: '¡La pista no está disponible en los servidores de Deezer!',\r\n\t\t\tnotAvailableNoAlternative: '¡La pista no está disponible en los servidores de Deezer y no se ha encontrado ninguna alternativa!',\r\n\t\t\tnoSpaceLeft: '¡No queda espacio en el dispositivo!'\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Favoritos',\r\n\t\tnoPlaylists: 'No se han encontrado listas de reproducción',\r\n\t\tnoAlbums: 'No se han encontrado álbumes favoritos',\r\n\t\tnoArtists: 'No se han encontrado artistas favoritos',\r\n\t\tnoTracks: 'No se han encontrado pistas favoritas'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Necesitas entrar en tu cuenta de Deezer antes de poder empezar a descargar.',\r\n\t\topenSettings: 'Abrir la configuración',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Listas de reproducción populares',\r\n\t\t\tpopularAlbums: 'Los álbumes más transmitidos'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'Puedes usar esta sección para encontrar más información sobre el enlace que estás tratando de descargar.',\r\n\t\tuseful: 'Esto es útil si está tratando de descargar algunas pistas que no están disponibles en su país y quiere saber dónde están disponibles, por ejemplo.',\r\n\t\tlinkNotSupported: 'Este enlace aún no está soportado',\r\n\t\tlinkNotSupportedYet: 'Parece que este enlace aún no está soportado, intenta analizar otro.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Duración',\r\n\t\t\tdiskNumber: 'Número del disco',\r\n\t\t\ttrackNumber: 'Número de la pista',\r\n\t\t\treleaseDate: 'Fecha de lanzamiento',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Etiqueta',\r\n\t\t\trecordType: 'Tipo de grabación',\r\n\t\t\tgenres: 'Géneros',\r\n\t\t\ttracklist: 'Lista de pista'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: '¡Comienza a buscar!',\r\n\t\tdescription: 'Puedes buscar un tema, un álbum entero, un artista, una lista de reproducción... ¡todo! También puedes pegar un enlace de Deezer',\r\n\t\tfans: '{n} fanáticos',\r\n\t\tnoResults: 'No hay resultados',\r\n\t\tnoResultsTrack: 'No se encontraron pistas',\r\n\t\tnoResultsAlbum: 'No se encontraron álbumes',\r\n\t\tnoResultsArtist: 'No se encontraron artistas',\r\n\t\tnoResultsPlaylist: 'No se encontraron listas de reproducción'\r\n\t},\r\n\tsearchbar: 'Busca lo que quieras (o simplemente pega un enlace)',\r\n\tdownloads: 'descargas',\r\n\ttoasts: {\r\n\t\trestoringQueue: 'Restaurando cola de descarga...',\r\n\t\tqueueRestored: '¡Cola de descarga restaurada!',\r\n\t\taddedToQueue: '{item} añadidos a la cola',\r\n\t\taddedMoreToQueue: '{n} elementos añadidos a la cola',\r\n\t\talreadyInQueue: '¡{item} ya está en la cola!',\r\n\t\tfinishDownload: '{item} terminado de descargar.',\r\n\t\tallDownloaded: '¡Todas las descargas se han completado!',\r\n\t\trefreshFavs: '¡Actualización completada!',\r\n\t\tloggingIn: 'Conectando...',\r\n\t\tloggedIn: 'Conectado',\r\n\t\talreadyLogged: 'Ya está conectado',\r\n\t\tloginFailed: 'No se puede conectar',\r\n\t\tloggedOut: 'Desconectado',\r\n\t\tcancellingCurrentItem: 'Cancelando el elemento actual.',\r\n\t\tcurrentItemCancelled: 'El elemento actual se ha cancelado.',\r\n\t\tstartAddingArtist: 'Añadiendo {artist} álbumes a la cola',\r\n\t\tfinishAddingArtist: 'Añadido {artist} álbumes a la cola',\r\n\t\tstartConvertingSpotifyPlaylist: 'Convertir las pistas de Spotify en pistas de Deezer',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Lista de reproducción de Spotify convertida',\r\n\t\tloginNeededToDownload: '¡Necesitas iniciar sesión para descargar títulos!',\r\n\t\tdeezerNotAvailable: 'Deezer no está disponible en su país. Deberías usar una VPN.'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Configuración',\r\n\t\tlanguages: 'Idiomas',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Ingresa',\r\n\t\t\tloggedIn: 'Usted está conectado como {nombre de usuario}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: '¿Cómo consigo mi propio ARL?',\r\n\t\t\t\tupdate: 'Actualiza la ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Cerrar sesión',\r\n\t\t\tlogin: 'Ingresa a través de deezer.com'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Apariencia',\r\n\t\t\tslimDownloadTab: 'Pestaña de descargas delgada'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Ruta de descarga'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Plantillas',\r\n\t\t\ttracknameTemplate: 'Plantilla de nombres de pista',\r\n\t\t\talbumTracknameTemplate: 'Plantilla de pista del álbum',\r\n\t\t\tplaylistTracknameTemplate: 'Plantilla de pista de la lista de reproducción'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Carpetas',\r\n\t\t\tcreatePlaylistFolder: 'Crear una carpeta para las listas de reproducción',\r\n\t\t\tplaylistNameTemplate: 'Plantilla de la carpeta de la lista de reproducción',\r\n\t\t\tcreateArtistFolder: 'Crear carpeta para el artista',\r\n\t\t\tartistNameTemplate: 'Plantilla de la carpeta del artista',\r\n\t\t\tcreateAlbumFolder: 'Crear carpeta para el álbum',\r\n\t\t\talbumNameTemplate: 'Plantilla de la carpeta del álbum',\r\n\t\t\tcreateCDFolder: 'Crear una carpeta para los CDs',\r\n\t\t\tcreateStructurePlaylist: 'Crear una estructura de carpetas para las listas de reproducción',\r\n\t\t\tcreateSingleFolder: 'Crear una estructura de carpetas para individuales'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Títulos de las pistas',\r\n\t\t\tpadTracks: 'Pad de pistas',\r\n\t\t\tpaddingSize: 'Sobrescribir el tamaño del pad',\r\n\t\t\tillegalCharacterReplacer: 'Reemplazo del carácter ilegal'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Descargas',\r\n\t\t\tqueueConcurrency: 'Descargas simultáneas',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Tasa de bits preferida',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: '¿Desea que sobreescriba los archivos?',\r\n\t\t\t\ty: 'Sí, sobrescribir el archivo',\r\n\t\t\t\tn: 'No, no sobrescribir el archivo',\r\n\t\t\t\tt: 'Sobrescribir sólo las etiquetas',\r\n\t\t\t\tb: 'No, mantener los dos archivos y agrega un número al archivo duplicado',\r\n\t\t\t\te: 'No, y no mirar las extensiones'\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'La solución alternativa de bitrate',\r\n\t\t\tfallbackSearch: 'Búsqueda de la segunda opción',\r\n\t\t\tlogErrors: 'Crear archivos de registro de errores',\r\n\t\t\tlogSearched: 'Crear archivos de registro para las pistas buscadas',\r\n\t\t\tcreateM3U8File: 'Crear archivo de la lista de reproducción',\r\n\t\t\tsyncedLyrics: 'Crear archivos .lyr (letras sincronizadas)',\r\n\t\t\tplaylistFilenameTemplate: 'Plantilla de nombres de archivos de la lista de reproducción',\r\n\t\t\tsaveDownloadQueue: 'Guardar la cola de descarga al cerrar la aplicación'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Cubiertas de álbumes',\r\n\t\t\tsaveArtwork: 'Guardar las cubiertas',\r\n\t\t\tcoverImageTemplate: 'Plantilla de nombres de portada',\r\n\t\t\tsaveArtworkArtist: 'Guardar imagen de artista',\r\n\t\t\tartistImageTemplate: 'Plantilla de imagen de artista',\r\n\t\t\tlocalArtworkSize: 'El tamaño de la imagen local',\r\n\t\t\tembeddedArtworkSize: 'El tamaño de la imagen incorporada',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: '¿Qué formato quieres que tenga la imagen de arte local?',\r\n\t\t\t\tjpg: 'Una imagen jpeg',\r\n\t\t\t\tpng: 'Una imagen png',\r\n\t\t\t\tboth: 'Ambos, jpeg y png'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'Calidad de la imagen JPEG',\r\n\t\t\tembeddedArtworkPNG: 'Guardar las imágenes incrustadas como PNG',\r\n\t\t\tembeddedPNGWarning: 'Las PNG no están oficialmente soportadas por Deezer y puede encontrar errores.',\r\n\t\t\timageSizeWarning: 'Nada por encima de x1200 no es usado oficialmente por Deezer, tú podrías encontrar inconvenientes',\r\n\t\t\tcoverDescriptionUTF8: 'Guardar la descripción de la portada usando UTF8 (arregla la portada de iTunes)'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: '¿Qué etiquetas guardar?',\r\n\t\t\ttitle: 'Título',\r\n\t\t\tartist: 'Artista',\r\n\t\t\talbum: 'Álbum',\r\n\t\t\tcover: 'Portada',\r\n\t\t\ttrackNumber: 'Número de pista',\r\n\t\t\ttrackTotal: 'Total de pistas',\r\n\t\t\tdiscNumber: 'Número del disco',\r\n\t\t\tdiscTotal: 'Discos totales',\r\n\t\t\talbumArtist: 'Artista del álbum',\r\n\t\t\tgenre: 'Género',\r\n\t\t\tyear: 'Año',\r\n\t\t\tdate: 'Fecha',\r\n\t\t\texplicit: 'Letras explícitas',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Longitud de la pista',\r\n\t\t\tbarcode: 'Código de barras del álbum (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Ganancia de la reproducción',\r\n\t\t\tlabel: 'Etiqueta del álbum',\r\n\t\t\tlyrics: 'Letras no sincronizadas',\r\n\t\t\tsyncedLyrics: 'Letra sincronizada',\r\n\t\t\tcopyright: 'Derechos de autor',\r\n\t\t\tcomposer: 'Compositor',\r\n\t\t\tinvolvedPeople: 'Personas involucradas'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Otros',\r\n\t\t\tsavePlaylistAsCompilation: 'Guardar las listas de reproducción como una compilación',\r\n\t\t\tuseNullSeparator: 'Usar separador nulo',\r\n\t\t\tsaveID3v1: 'Guarda ID3v1 también',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: '¿Cómo le gustaría separar a sus artistas?',\r\n\t\t\t\tnothing: 'Guardar sólo el artista principal',\r\n\t\t\t\tdefault: 'Usar la especificación estándar',\r\n\t\t\t\tandFeat: 'Usar & y feat.',\r\n\t\t\t\tusing: 'Usar \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'Guardar sólo el artista principal del álbum',\r\n\t\t\talbumVariousArtists: 'Mantén \"Various Artists\" en los artistas del álbum',\r\n\t\t\tremoveAlbumVersion: 'Eliminar \"Album Version\" del título de la pista',\r\n\t\t\tremoveDuplicateArtists: 'Eliminar las combinaciones de artistas',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Formato de fecha para los archivos FLAC',\r\n\t\t\t\tyear: 'AAAA',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'DD'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: '¿Qué debo hacer con los artistas destacados?',\r\n\t\t\t\t0: 'Nada',\r\n\t\t\t\t1: 'Quítalo del título',\r\n\t\t\t\t3: 'Quítalo del título y del título del álbum',\r\n\t\t\t\t2: 'Muévalo al título'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Capitalizar título',\r\n\t\t\tartistCasing: 'Capitalizar artista',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Manténgase sin cambios',\r\n\t\t\t\tlower: 'minúsculas',\r\n\t\t\t\tupper: 'MAYÚSCULAS',\r\n\t\t\t\tstart: 'Al Principio De Cada Palabra',\r\n\t\t\t\tsentence: 'Como una oración'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Volumen de previsualización',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Comando a ejecutar después de la descarga',\r\n\t\t\t\tdescription: 'Deje en blanco para no hacer nada'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Funciones de Spotify',\r\n\t\t\tclientID: 'ID del cliente de Spotify',\r\n\t\t\tclientSecret: 'Cliente secreto de Spotify',\r\n\t\t\tusername: 'Nombre de usuario de Spotify'\r\n\t\t},\r\n\t\treset: 'Restablecer el valor por defecto',\r\n\t\tsave: 'Guardar',\r\n\t\ttoasts: {\r\n\t\t\tinit: '¡Configuraciones cargadas!',\r\n\t\t\tupdate: '¡Ajustes actualizados!',\r\n\t\t\tARLcopied: 'ARL copiado al portapapeles'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'inicio',\r\n\t\tsearch: 'buscar',\r\n\t\tcharts: 'charts',\r\n\t\tfavorites: 'favoritos',\r\n\t\tlinkAnalyzer: 'analizar enlaces',\r\n\t\tsettings: 'ajustes',\r\n\t\tabout: 'acerca de'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Descargar selección'\r\n\t}\r\n}\r\n\r\nexport default es","const de = {\r\n\tglobals: {\r\n\t\twelcome: 'Willkommen bei deemix',\r\n\t\tback: 'zurück',\r\n\t\tloading: 'lädt',\r\n\t\tdownload: 'Download {thing}',\r\n\t\tby: 'von {artist}',\r\n\t\tin: 'in {album}',\r\n\t\tdownload_hint: 'Download',\r\n\t\tplay_hint: 'Play',\r\n\t\ttoggle_download_tab_hint: 'Erweitern/Minimieren',\r\n\t\tclean_queue_hint: 'Entferne vollständige',\r\n\t\tcancel_queue_hint: 'Alle abbrechen',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'alle',\r\n\t\t\ttop_result: 'Top Ergebnis',\r\n\t\t\talbum: 'Album | Alben',\r\n\t\t\tartist: 'Künstler | Künstler',\r\n\t\t\tsingle: 'Single | Singles',\r\n\t\t\ttitle: 'Titel | Titel',\r\n\t\t\ttrack: 'Track | Tracks',\r\n\t\t\ttrackN: '0 Tracks | {n} Track | {n} Tracks',\r\n\t\t\treleaseN: '0 Releases | {n} Release | {n} Releases',\r\n\t\t\tplaylist: 'Playlist | Playlists',\r\n\t\t\tcompile: 'Sammlung | Sammlungen',\r\n\t\t\tep: 'EP | EPs',\r\n\t\t\tspotifyPlaylist: 'Spotify Playlist | Spotify Playlists',\r\n\t\t\treleaseDate: 'Veröffentlichungsdatum',\r\n\t\t\terror: 'Fehler'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Nützliche Links',\r\n\t\t\tbugReports: 'Fehlermeldung',\r\n\t\t\tcontributing: 'Mitwirkende',\r\n\t\t\tdonations: 'Spenden',\r\n\t\t\tlicense: 'Lizenz'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: 'Funktioniert etwas in Deemix nicht? Sag uns bescheid!',\r\n\t\t\tcontributing: 'Du möchtest bei dem Projekt helfen? Das kannst du auf verschiedene Arten machen!',\r\n\t\t\tdonations: 'Du möchtest deemix finanziell unterstützen? Dann lasse eine kleine Spende da!'\r\n\t\t},\r\n\t\tusesLibrary: 'Dieses Programm nutzt die <strong>deemix</strong> Bibliothek, die du dazu nutzen kannst deine eigene deemix UI zu erstellen.',\r\n\t\tthanks: 'Ein Dankeschön geht an <strong>rtonno</strong>, <strong>uhwot</strong> and <strong>lollilol</strong> für die Hilfe bei diesem Projekt und an <strong>BasCurtiz</strong> and <strong>scarvimane</strong> für die Erstellung des Logos.',\r\n\t\tupToDate: 'Bleib auf dem Laufenden mit den Updates indem du dem <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">News Channel</a> auf Telegram folgst.',\r\n\t\tofficialWebsite: 'Offizielle Website',\r\n\t\tofficialRepo: 'Offizielle Library Repository',\r\n\t\tofficialWebuiRepo: 'Offizielle WebUI Repository',\r\n\t\tofficialSubreddit: 'Offizieller Subreddit',\r\n\t\tnewsChannel: 'News Channel',\r\n\t\tquestions: 'Bei Fragen oder Problemen mit der App, suche als erstes nach einer Lösung im <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">Subreddit</a>. Wenn du da nichts findest, kannst du einen Beitrag mit deinen Problem auf dem Subreddit verfassen.',\r\n\t\tbeforeReporting: 'Bevor du einen Bug meldest, stelle sicher, dass du die neueste Version der App hast und dass das, was du melden möchtest, tatsächlich ein Bug ist und nicht nur bei dir falsch ist.',\r\n\t\tbeSure: 'Stelle sicher, dass der Bug auf anderen Computern auch vorhanden ist <strong>MELDEN NICHT</strong> einen Bug, wenn er schon gemeldet worden ist.',\r\n\t\tduplicateReports: 'Doppelte Fehlerberichte werden geschlossen, achte darauf.',\r\n\t\tdontOpenIssues: '<strong>ERSTELLE KEINE</strong> Fehlermeldungen um Fragen zu stellen, es gibt einen Subreddit dafür.',\r\n\t\tnewUI: 'Wenn du Python fließend beherrschst, kannst du versuchen, mit hilfe der base library eine neue Benutzeroberfläche für die App zu erstellen oder Fehler in der Bibliothek mit einem Pull-Request in der <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">deemix Repo</a> zu beheben.',\r\n\t\tacceptFeatures: 'Ich akzeptiere auch Funktionen, aber keine komplexen Dinge, da sie direkt in der App und nicht in der Bibliothek implementiert werden können.',\r\n\t\totherLanguages: 'Wenn du eine andere Programmiersprache fließend beherrschst, kannst du versuchen, deemix in andere Programmiersprachen zu portieren!',\r\n\t\tunderstandingCode: 'Du benötigst Hilfe beim verstehen des Codes? Frag einfach RemixDev auf Telegram oder Reddit.',\r\n\t\tcontributeWebUI: 'Wenn du Vue.js (JavaScript) oder HTML und CSS kennst, könntest du etwas zum <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a> beitragen.',\r\n\t\titsFree: 'Du solltest im Kopf behalten das <strong>dies ein kostenloses Projekt ist</strong> und <strong>Du solltest die Künstler unterstützen, die du magst </strong> bevor du die Entwickler unterstützt.',\r\n\t\tnotObligated: 'Fühle dich nicht gezwungen zu spenden, danke, dass du deemix verwendest!',\r\n\t\tlincensedUnder: 'Diese Arbeit ist lizensiert unter der <a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">GNU General Public License 3.0</a>.'\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Charts',\r\n\t\tchangeCountry: 'Land wechseln',\r\n\t\tdownload: 'Download Chart'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Errors für {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'URL nicht erkannt',\r\n\t\t\tunsupportedURL: 'URL noch nicht unterstützt',\r\n\t\t\tISRCnotOnDeezer: 'Track ISRC ist auf deezer nicht verfügbar',\r\n\t\t\tnotYourPrivatePlaylist: \"Du kannst keine privaten Playlisten anderer herunterladen.\",\r\n\t\t\tspotifyDisabled: 'Spotify-Funktionen sind nicht richtig eingerichtet',\r\n\t\t\ttrackNotOnDeezer: 'Track ist nicht verfügbar auf Deezer!',\r\n\t\t\talbumNotOnDeezer: 'Album auf Deezer nicht gefunden!',\r\n\t\t\tnotOnDeezer: 'Track auf Deezer nicht verfügbar!',\r\n\t\t\tnotEncoded: 'Track noch nicht codiert!',\r\n\t\t\tnotEncodedNoAlternative: 'Track noch nicht codiert und keine Alternative gefunden!',\r\n\t\t\twrongBitrate: 'Track mit gewünschter Bitrate nicht gefunden.',\r\n\t\t\twrongBitrateNoAlternative: 'Track mit gewünschter Bitrate nicht gefunden und keine Alternative gefunden!',\r\n\t\t\tno360RA: 'Track ist nicht verfügbar in Reality Audio 360.',\r\n\t\t\tnotAvailable: \"Track ist noch nicht verfügbar auf den Servern von Deezer!\",\r\n\t\t\tnotAvailableNoAlternative: \"Track ist noch nicht verfügbar auf den Servern von Deezer und keine Alternativen gefunden!!\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Favoriten',\r\n\t\tnoPlaylists: 'Keine Playlist gefunden',\r\n\t\tnoAlbums: 'Keine favorisierten Alben gefunden',\r\n\t\tnoArtists: 'Keine favorisierten Künstler gefunden',\r\n\t\tnoTracks: 'Keine favorisierten Tracks gefunden'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Du musst dich in deinem Deezer-Account anmelden bevor du mit dem Download starten kannst.',\r\n\t\topenSettings: 'Einstellungen öffnen',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Beliebte Playlists',\r\n\t\t\tpopularAlbums: 'Meistgestreamte Alben'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'Diesen Abschnitt kannst du nutzen, um weitere Informationen über den gewünschten Link zu erhalten, den du herunterladen möchtest.',\r\n\t\tuseful: \"Dies ist z.B. nützlich, wenn du versuchst einige Titel herunterzuladen, welche in deinem Land nicht verfügbar sind, und du wissen möchtest, wo sie verfügbar sind.\",\r\n\t\tlinkNotSupported: 'Dieser Link wird noch nicht unterstützt',\r\n\t\tlinkNotSupportedYet: 'Es scheint so, als ob dieser Link noch nicht unterstützt wird. Versuche einen anderen Link zu analysieren.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Dauer',\r\n\t\t\tdiskNumber: 'CD Nummer',\r\n\t\t\ttrackNumber: 'Track Nummer',\r\n\t\t\treleaseDate: 'Veröffentlichungsdatum',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Label',\r\n\t\t\trecordType: 'Art der Aufnahme',\r\n\t\t\tgenres: 'Genres',\r\n\t\t\ttracklist: 'Trackliste'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Suche starten!',\r\n\t\tdescription: 'Du kannst einen Titel, ein ganzes Album, einen Künstler, eine Playlist suchen ... alles! Du kannst auch einen Deezer-Link einfügen',\r\n\t\tfans: '{n} Fans',\r\n\t\tnoResults: 'Keine Ergebnisse',\r\n\t\tnoResultsTrack: 'Keine Tracks gefunden',\r\n\t\tnoResultsAlbum: 'Keine Alben gefunden',\r\n\t\tnoResultsArtist: 'Keinen Künstler gefunden',\r\n\t\tnoResultsPlaylist: 'Keine Playlist gefunden'\r\n\t},\r\n\tsearchbar: 'Suche nach allem, was dir gefällt (oder füge einfach einen Link ein)',\r\n\tdownloads: 'Downloads',\r\n\ttoasts: {\r\n\t\taddedToQueue: '{item} zur Warteschlange hinzugefügt',\r\n\t\talreadyInQueue: '{item} ist bereits in der Warteschlange!',\r\n\t\tfinishDownload: '{item} vollständig heruntergeladen.',\r\n\t\tallDownloaded: 'Alle Downloads abgeschlossen!',\r\n\t\trefreshFavs: 'Abgeschlossene Downloads neu laden!',\r\n\t\tloggingIn: 'Einloggen',\r\n\t\tloggedIn: 'Eingeloggt',\r\n\t\talreadyLogged: 'Bereits eingeloggt',\r\n\t\tloginFailed: \"Login fehlgeschlagen\",\r\n\t\tloggedOut: 'Ausgeloggt',\r\n\t\tcancellingCurrentItem: 'Aktuelle Auswahl abbrechen.',\r\n\t\tcurrentItemCancelled: 'Aktuelle Auswahl wurde abgebrochen',\r\n\t\tstartAddingArtist: '{artist} Alben werden hinzugefügt',\r\n\t\tfinishAddingArtist: '{artist} Alben wurden hinzugefügt',\r\n\t\tstartConvertingSpotifyPlaylist: 'Konvertierern von Spotify-Tracks zu Deezer-Tracks',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Spotify Playlist convertiert'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Einstellungen',\r\n\t\tlanguages: 'Sprachen',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Login',\r\n\t\t\tloggedIn: 'Du bist eingeloggt als {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'Wie bekomme ich meine eigene ARL?',\r\n\t\t\t\tupdate: 'Update ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Logout'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Design',\r\n\t\t\tslimDownloadTab: 'schmaler Download-Tab'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Download Pfad'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Vorlagen',\r\n\t\t\ttracknameTemplate: 'Vorlage für den Tracknamen',\r\n\t\t\talbumTracknameTemplate: 'Vorlage für Tracks in einem Album',\r\n\t\t\tplaylistTracknameTemplate: 'Vorlage für Tracks in einer Playlist'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Folders',\r\n\t\t\tcreatePlaylistFolder: 'Ordner für Playlist erstellen',\r\n\t\t\tplaylistNameTemplate: 'Vorlage für Playlist-Ordner',\r\n\t\t\tcreateArtistFolder: 'Ordner für Künstler erstellen',\r\n\t\t\tartistNameTemplate: 'Vorlage für Künstler-Ordner',\r\n\t\t\tcreateAlbumFolder: 'Ordner für Album erstellen',\r\n\t\t\talbumNameTemplate: 'Vorlage für Album-Ordner',\r\n\t\t\tcreateCDFolder: 'Ordner für CDs erstellen',\r\n\t\t\tcreateStructurePlaylist: 'Erstellen von Künstler-, Alben- und CD-Ordnern auch für Playlists',\r\n\t\t\tcreateSingleFolder: 'Ordner für einzelne Titel erstellen'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Songtitel',\r\n\t\t\tpadTracks: 'Einheitliche Länge der Titelnummern (voranstehende Nullen werden ergänzt)',\r\n\t\t\tpaddingSize: 'Innenabstand überschreiben',\r\n\t\t\tillegalCharacterReplacer: 'Unzulässige Zeichen ersetzen'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Downloads',\r\n\t\t\tqueueConcurrency: 'Gleichzeitige Downloads',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Bevorzugte Bitrate',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Soll ich die Dateien überchreiben?',\r\n\t\t\t\ty: 'Ja überschreibe die Dateien',\r\n\t\t\t\tn: 'Nein überschreibe die Dateien nicht',\r\n\t\t\t\tt: 'Überschreibe nur die Tags',\r\n\t\t\t\tb: 'Nein, behalte beide Dateien und füge der Kopie eine Nummer hinzu'\r\n\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Falls gewünschte Bitrate nicht verfügbar, auf niedrigere Bitrate zurückgreifen',\r\n\t\t\tfallbackSearch: 'Zur Suche zurückkehren, wenn der Song nicht verfügbar ist',\r\n\t\t\tlogErrors: 'Protokolldatei für Fehler im Download-Ordner erstellen',\r\n\t\t\tlogSearched: 'Protokolldatei für gesuchte Titel erstellen',\r\n\t\t\tcreateM3U8File: 'Erstelle Playlist-Datei (M3U8)',\r\n\t\t\tsyncedLyrics: 'Erstelle synchrone Lyrics-Datei (.lyr)',\r\n\t\t\tplaylistFilenameTemplate: 'Vorlage für den Namen der Playlist',\r\n\t\t\tsaveDownloadQueue: 'Download-Warteschlange beim Schließen der App speichern'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Album Cover',\r\n\t\t\tsaveArtwork: 'Cover speichern',\r\n\t\t\tcoverImageTemplate: 'Vorlage für den Covernamen',\r\n\t\t\tsaveArtworkArtist: 'Speichere das Künstlerbild',\r\n\t\t\tartistImageTemplate: 'Vorlage des Künstlerbildes',\r\n\t\t\tlocalArtworkSize: 'Lokale Grafikgröße',\r\n\t\t\tembeddedArtworkSize: 'Eingebettete Grafikgröße',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'Welches Datei-Format soll das Cover haben?',\r\n\t\t\t\tjpg: 'Ein jpg Bild',\r\n\t\t\t\tpng: 'Ein png Bild',\r\n\t\t\t\tboth: 'Beides (jpg + png)'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'JPEG Qualität'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Welche Tags sollen gespeichert werden?',\r\n\t\t\ttitle: 'Titel',\r\n\t\t\tartist: 'Künstler',\r\n\t\t\talbum: 'Album',\r\n\t\t\tcover: 'Cover',\r\n\t\t\ttrackNumber: 'Titelnummer',\r\n\t\t\ttrackTotal: 'Titelanzahl',\r\n\t\t\tdiscNumber: 'CD Nummer',\r\n\t\t\tdiscTotal: 'CDs insgesamt',\r\n\t\t\talbumArtist: 'Album Künstler',\r\n\t\t\tgenre: 'Genre',\r\n\t\t\tyear: 'Jahr',\r\n\t\t\tdate: 'Datum',\r\n\t\t\texplicit: 'Explizite Lyrics',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Titel Länge',\r\n\t\t\tbarcode: 'Album Barcode (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Wiedergabe Lautstärke',\r\n\t\t\tlabel: 'Album Plattenlabel',\r\n\t\t\tlyrics: 'Nicht synchronisierte Texte',\r\n\t\t\tcopyright: 'Copyright',\r\n\t\t\tcomposer: 'Komponist',\r\n\t\t\tinvolvedPeople: 'Mitwirkende Personen'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Sonsitge',\r\n\t\t\tsavePlaylistAsCompilation: 'Speichere Playlist als Zusammenstellung',\r\n\t\t\tuseNullSeparator: 'Verwende Nulltrennzeichen',\r\n\t\t\tsaveID3v1: 'Speichere ID3v1 ebenfalls',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Wie möchtest du die Künstler trennen?',\r\n\t\t\t\tnothing: 'Speichere nur den Hauptkünstler',\r\n\t\t\t\tdefault: 'Verwende Standard Spezifikationen',\r\n\t\t\t\tandFeat: 'Verwende & und feat.',\r\n\t\t\t\tusing: 'Verwende \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'Nur den Hauptkünstler speichern',\r\n\t\t\talbumVariousArtists: 'Verschiedene Künstler\" im Album Künstler Tag behalten',\r\n\t\t\tremoveAlbumVersion: 'Entferne die \"Album Version\" vom Songtitel',\r\n\t\t\tremoveDuplicateArtists: 'Kombinationen von Künstlern entfernen',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Datumsformatierung für FLAC Dateien',\r\n\t\t\t\tyear: 'JJJJ',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'TT'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'Was soll ich mit featured Artists machen?',\r\n\t\t\t\t0: 'Nichts',\r\n\t\t\t\t1: 'Vom Titel entfernen',\r\n\t\t\t\t3: 'Vom Titel und Albumtitel entfernen',\r\n\t\t\t\t2: 'Zu dem Titel hinzufügen'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Titel-Schreibweise',\r\n\t\t\tartistCasing: 'Künstler-Schreibweise',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Unbearbeitet lassen',\r\n\t\t\t\tlower: 'klein',\r\n\t\t\t\tupper: 'GROSS',\r\n\t\t\t\tstart: 'Wortanfang Gross',\r\n\t\t\t\tsentence: 'Satzanfang gross'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Vorschau der Lautstärke',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Befehl, der nach dem Download ausgeführt werden soll',\r\n\t\t\t\tdescription: 'Leer lassen ohne Aktion'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Spotify Features',\r\n\t\t\tclientID: 'Spotify Client ID',\r\n\t\t\tclientSecret: 'Spotify Client Secret',\r\n\t\t\tusername: 'Spotify Benutzername'\r\n\t\t},\r\n\t\treset: 'Auf Standardwerte zurücksetzen',\r\n\t\tsave: 'Speichern',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Einstellungen geladen!',\r\n\t\t\tupdate: 'Einstellungen aktualisiert!',\r\n\t\t\tARLcopied: 'ARL wurde in die Zwischenablage kopiert'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'Home',\r\n\t\tsearch: 'Suche',\r\n\t\tcharts: 'Charts',\r\n\t\tfavorites: 'Favoriten',\r\n\t\tlinkAnalyzer: 'Link Analyse',\r\n\t\tsettings: 'Einstellungen',\r\n\t\tabout: 'Info'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Downloads'\r\n\t}\r\n}\r\n\r\nexport default de\r\n","const fr = {\r\n\tglobals: {\r\n\t\twelcome: 'Bienvenue dans deemix',\r\n\t\tback: 'retour',\r\n\t\tloading: 'chargement en cours',\r\n\t\tdownload: 'Télécharger {thing}',\r\n\t\tby: 'par {artist}',\r\n\t\tin: 'dans {album}',\r\n\t\tdownload_hint: 'Télécharger',\r\n\t\tplay_hint: 'Lire',\r\n\t\ttoggle_download_tab_hint: 'Développer/Réduire',\r\n\t\tclean_queue_hint: 'Retirer Les Tâches Terminées',\r\n\t\tcancel_queue_hint: 'Tout Annuler',\r\n\t\topen_downloads_folder: 'Ouvrir Le Dossier De Téléchargements',\r\n\t\tcut: 'couper',\r\n\t\tcopy: 'copier',\r\n\t\tcopyLink: 'copier le lien',\r\n\t\tcopyImageLink: \"copier le lien de l'image\",\r\n\t\tcopyDeezerLink: 'copier le lien deezer',\r\n\t\tpaste: 'coller',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'tout',\r\n\t\t\ttop_result: 'meilleur résultat',\r\n\t\t\talbum: 'album | albums',\r\n\t\t\tartist: 'artiste | artistes',\r\n\t\t\tsingle: 'single | singles',\r\n\t\t\ttitle: 'titre | titres',\r\n\t\t\ttrack: 'piste | pistes',\r\n\t\t\ttrackN: '0 piste | {n} piste | {n} pistes',\r\n\t\t\treleaseN: '0 sortie | {n} sortie | {n} sorties',\r\n\t\t\tplaylist: 'playlist | playlists',\r\n\t\t\tcompile: 'compilation | compilations',\r\n\t\t\tep: 'ep | eps',\r\n\t\t\tbundle: 'bundle | bundles',\r\n\t\t\tmore: \"Plus d'albums\",\r\n\t\t\tfeatured: 'Apparaît dans',\r\n\t\t\tspotifyPlaylist: 'playlist spotify | playlists spotify',\r\n\t\t\treleaseDate: 'date de sortie',\r\n\t\t\terror: 'erreur'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\tupdates: {\r\n\t\t\tcurrentVersion: 'Version Actuelle',\r\n\t\t\tversionNotAvailable: 'N/A',\r\n\t\t\tupdateAvailable: \"Vous n'utilisez pas la dernière version disponible : {version}\",\r\n\t\t\tdeemixVersion: 'Version de la bibliothèque deemix'\r\n\t\t},\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Liens Utiles',\r\n\t\t\tbugReports: 'Rapports De Bug',\r\n\t\t\tcontributing: 'Contribution',\r\n\t\t\tdonations: 'Dons',\r\n\t\t\tlicense: 'Licence'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: 'Quelque chose ne fonctionne pas dans deemix ? Contactez-nous !',\r\n\t\t\tcontributing: 'Vous souhaitez contribuer à ce projet ? Vous pouvez le faire de différentes manières !',\r\n\t\t\tdonations: 'Vous souhaitez contribuer financièrement ? Vous pouvez faire un don !'\r\n\t\t},\r\n\t\tusesLibrary: 'Cette application utilise la bibliothèque <strong>deemix</strong>, que vous pouvez exploiter afin de créer votre propre interface utilisateur pour deemix.',\r\n\t\tthanks: \"Merci à <strong>rtonno</strong>, <strong>uhwot</strong> et <strong>lollilol</strong> de m'avoir aidé dans ce projet ainsi qu'à <strong>BasCurtiz</strong> et <strong>scarvimane</strong> pour la création de l'icône.\",\r\n\t\tupToDate: `Restez informé des mises à jour en suivant le <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">canal d'informations</a> sur Telegram.`,\r\n\t\tofficialWebsite: 'Site Officiel',\r\n\t\tofficialRepo: 'Répertoire De Dépôt Officiel De La Bibliothèque',\r\n\t\tofficialWebuiRepo: 'Répertoire De Dépôt Officiel De La WebUI',\r\n\t\tofficialSubreddit: 'Subreddit Officiel',\r\n\t\tnewsChannel: \"Canal d'Informations\",\r\n\t\tquestions: `Si vous avez des questions ou des problèmes avec l'application, cherchez d'abord une solution dans le <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a>. Ensuite, si la solution ne s'y trouve pas, vous pouvez publier un message dans le subreddit en décrivant votre problème.`,\r\n\t\tbeforeReporting: \"Avant de signaler un bug, assurez-vous que vous utilisez la version la plus récente de l'application. Vérifiez que vous souhaitez nous rapporter un bug et non quelque chose qui ne fonctionne pas uniquement de votre côté.\",\r\n\t\tbeSure: \"Assurez-vous que le bug soit reproductible sur d'autres appareils mais aussi de <strong>NE PAS</strong> signaler un bug si celui-ci a déjà été recensé.\",\r\n\t\tduplicateReports: \"Les rapports de bug répétitifs seront supprimés, merci d'en prendre bonne note.\",\r\n\t\tdontOpenIssues: \"<strong>NE PAS</strong> rapporter de problème s'il ne s'agit que de simples questions. Un subreddit existe pour ces questions.\",\r\n\t\tnewUI: `Si vous maîtrisez python, vous pouvez essayer de créer une nouvelle interface utilisateur pour l'application à l'aide de la bibliothèque de base, ou corriger des bugs dans la bibliothèque à l'aide d'une demande de fusion de branches (pull request) sur le <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">répertoire de dépôt</a>.`,\r\n\t\tacceptFeatures: \"J'accepte également les nouvelles fonctionnalités, mais pas de choses complexes, dans la mesure où elles peuvent être implémentées directement dans l'application et non dans la bibliothèque.\",\r\n\t\totherLanguages: \"Si vous maîtrisez un autre langage de programmation, vous pouvez essayer de transposer deemix dans ce dernier !\",\r\n\t\tunderstandingCode: \"Vous avez besoin d'aide pour comprendre le code ? Il suffit de contacter RemixDev sur Telegram ou Reddit.\",\r\n\t\tcontributeWebUI: `Si vous vous y connaissez en Vue.js (JavaScript), HTML ou CSS, vous pouvez contribuer à la <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: \"N'oubliez pas que <strong>ce projet est libre</strong> et qu'il est important de <strong>soutenir vos artistes préférés</strong> avant de supporter les développeurs.\",\r\n\t\tnotObligated: \"Ne vous sentez pas obligé de faire un don, vous êtes tout de même apprécié !\",\r\n\t\tlincensedUnder: `Ce projet s'inscrit dans le cadre de la\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">Licence publique générale GNU, version 3</a>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Classements',\r\n\t\tchangeCountry: 'Changer De Pays',\r\n\t\tdownload: 'Télécharger Le Classement'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Erreurs pour {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: \"Cette URL n'est pas reconnue\",\r\n\t\t\tunsupportedURL: \"Cette URL n'est actuellement pas supportée\",\r\n\t\t\tISRCnotOnDeezer: \"L'ISRC de la piste est indisponible sur Deezer\",\r\n\t\t\tnotYourPrivatePlaylist: \"Vous n'êtes pas autorisé à télécharger les playlists privées de quelqu'un d'autre.\",\r\n\t\t\tspotifyDisabled: 'Les Fonctionnalités Spotify ne sont pas configurées correctement.',\r\n\t\t\ttrackNotOnDeezer: 'La piste est introuvable sur Deezer !',\r\n\t\t\talbumNotOnDeezer: \"L'album est introuvable sur Deezer !\",\r\n\t\t\tnotOnDeezer: 'La piste est indisponible sur Deezer !',\r\n\t\t\tnotEncoded: \"La piste n'a pas encore été encodée !\",\r\n\t\t\tnotEncodedNoAlternative: \"La piste n'a pas encore été encodée et aucune alternative n'a été trouvée !\",\r\n\t\t\twrongBitrate: 'La piste est introuvable au débit souhaité.',\r\n\t\t\twrongBitrateNoAlternative: \"La piste est introuvable au débit souhaité et aucune alternative n'a été trouvée !\",\r\n\t\t\tno360RA: 'La piste est indisponible au format Reality Audio 360.',\r\n\t\t\tnotAvailable: 'La piste est indisponible sur les serveurs de Deezer !',\r\n\t\t\tnotAvailableNoAlternative: \"La piste est indisponible sur les serveurs de Deezer et aucune alternative n'a été trouvée !\",\r\n\t\t\tnoSpaceLeft: \"L'espace disponible sur cet appareil est insuffisant !\",\r\n\t\t\talbumDoesntExists: \"Aucun album n'existe pour cette piste, impossible de collecter les informations nécessaires\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Favoris',\r\n\t\tnoPlaylists: \"Aucune Playlist n'a été trouvée\",\r\n\t\tnoAlbums: \"Aucun Album Favori n'a été trouvé\",\r\n\t\tnoArtists: \"Aucun Artiste Favori n'a été trouvé\",\r\n\t\tnoTracks: \"Aucune Piste Favorite n'a été trouvée\"\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Vous devez vous connecter à votre compte Deezer avant de pouvoir démarrer un téléchargement.',\r\n\t\topenSettings: 'Ouvrir Les Paramètres',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Playlists les plus écoutées',\r\n\t\t\tpopularAlbums: 'Albums les plus écoutés'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: \"Vous pouvez utiliser cette section pour obtenir davantage d'informations sur le lien que vous essayez de télécharger.\",\r\n\t\tuseful: \"C'est utile si vous essayez, par exemple, de télécharger des pistes indisponibles dans votre pays et que vous souhaitez savoir où elles sont disponibles.\",\r\n\t\tlinkNotSupported: \"Ce lien n'est pas encore pris en charge\",\r\n\t\tlinkNotSupportedYet: \"Il semble que ce lien ne soit pas encore pris en charge, essayez d'en analyser un autre.\",\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Durée',\r\n\t\t\tdiskNumber: 'Numéro De Disque',\r\n\t\t\ttrackNumber: 'Numéro De Piste',\r\n\t\t\treleaseDate: 'Date De Sortie',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Label',\r\n\t\t\trecordType: \"Type d'Enregistrement\",\r\n\t\t\tgenres: 'Genres',\r\n\t\t\ttracklist: 'Liste Des Pistes'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Démarrer une recherche !',\r\n\t\tdescription: 'Vous pouvez rechercher une piste, un album entier, un artiste, une playlist... tout ce que vous voulez ! Vous pouvez également coller un lien Deezer.',\r\n\t\tfans: '{n} fans',\r\n\t\tnoResults: 'Aucun résultat',\r\n\t\tnoResultsTrack: \"Aucune piste n'a été trouvée\",\r\n\t\tnoResultsAlbum: \"Aucun album n'a été trouvé\",\r\n\t\tnoResultsArtist: \"Aucun artiste n'a été trouvé\",\r\n\t\tnoResultsPlaylist: \"Aucune playlist n'a été trouvée\"\r\n\t},\r\n\tsearchbar: 'Saisissez une requête (ou collez simplement un lien)',\r\n\tdownloads: 'téléchargements',\r\n\ttoasts: {\r\n\t\trestoringQueue: \"Restauration de la file d'attente de téléchargement...\",\r\n\t\tqueueRestored: \"La file d'attente de téléchargement a été restaurée !\",\r\n\t\taddedToQueue: \"{item} ajouté à la file d'attente\",\r\n\t\taddedMoreToQueue: \"{n} éléments ajoutés à la file d'attente\",\r\n\t\talreadyInQueue: \"{item} est déjà dans la file d'attente !\",\r\n\t\tfinishDownload: '{item} a été téléchargé.',\r\n\t\tallDownloaded: 'Tous les téléchargements sont terminés !',\r\n\t\trefreshFavs: 'Actualisation terminée !',\r\n\t\tloggingIn: 'Connexion en cours...',\r\n\t\tloggedIn: 'Connecté',\r\n\t\talreadyLogged: 'Déjà connecté',\r\n\t\tloginFailed: 'Connexion impossible',\r\n\t\tloggedOut: 'Déconnecté',\r\n\t\tcancellingCurrentItem: \"Annulation de l'élément actuel.\",\r\n\t\tcurrentItemCancelled: 'Élément actuel annulé.',\r\n\t\tstartAddingArtist: \"Ajout des albums de {artist} à la file d'attente\",\r\n\t\tfinishAddingArtist: \"Les albums de {artist} ont été ajoutés à la file d'attente\",\r\n\t\tstartConvertingSpotifyPlaylist: 'Conversion de pistes Spotify en équivalents Deezer',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Playlist Spotify convertie',\r\n\t\tloginNeededToDownload: 'Vous devez vous connecter pour pouvoir télécharger des pistes !',\r\n\t\tdeezerNotAvailable: \"Deezer est indisponible dans votre pays. Vous devez utiliser un VPN.\"\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Paramètres',\r\n\t\tlanguages: 'Langues',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Connexion',\r\n\t\t\tloggedIn: 'Vous êtes connecté en tant que {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'Comment obtenir mon ARL personnel ?',\r\n\t\t\t\tupdate: \"Mettre à jour l'ARL\"\r\n\t\t\t},\r\n\t\t\tlogout: 'Déconnexion',\r\n\t\t\tlogin: 'Connexion via deezer.com'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Apparence',\r\n\t\t\tslimDownloadTab: 'Onglet de téléchargement compact'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Emplacement De Téléchargement'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Modèles',\r\n\t\t\ttracknameTemplate: 'Modèle pour le nom de piste',\r\n\t\t\talbumTracknameTemplate: \"Modèle pour le nom de piste de l'album\",\r\n\t\t\tplaylistTracknameTemplate: 'Modèle pour le nom de piste de la playlist'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Dossiers',\r\n\t\t\tcreatePlaylistFolder: 'Générer des dossiers par playlist',\r\n\t\t\tplaylistNameTemplate: 'Modèle pour le nom du dossier de playlist',\r\n\t\t\tcreateArtistFolder: 'Générer des dossiers par artiste',\r\n\t\t\tartistNameTemplate: \"Modèle pour le nom du dossier d'artiste\",\r\n\t\t\tcreateAlbumFolder: 'Générer des dossiers par album',\r\n\t\t\talbumNameTemplate: \"Modèle pour le nom du dossier d'album\",\r\n\t\t\tcreateCDFolder: 'Générer des dossiers par CD',\r\n\t\t\tcreateStructurePlaylist: 'Générer une structure de dossiers pour les playlists',\r\n\t\t\tcreateSingleFolder: 'Générer une structure de dossiers pour les singles'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Titres des pistes',\r\n\t\t\tpadTracks: \"Longueur uniforme des numéros de piste (ajoute automatiquement des zéros devant le numéro initial de la piste)\",\r\n\t\t\tpaddingSize: 'Nombre de zéros à ajouter en permanence devant le numéro initial de la piste',\r\n\t\t\tillegalCharacterReplacer: \"Substitut aux caractères non autorisés (dans les noms de fichiers et de dossiers)\"\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Téléchargements',\r\n\t\t\tqueueConcurrency: 'Téléchargements Simultanés',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Débit Préféré',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Les fichiers doivent-ils être écrasés ?',\r\n\t\t\t\ty: 'Oui, écraser le fichier',\r\n\t\t\t\tn: 'Non, ne pas écraser le fichier',\r\n\t\t\t\tt: 'Écraser uniquement les métadonnées',\r\n\t\t\t\tb: 'Non, conserver les deux fichiers et ajouter un numéro au doublon',\r\n\t\t\t\te: \"Non, et ne pas tenir compte de l'extension du fichier\"\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: \"Recourir à un débit plus faible si le débit préféré n'est pas disponible\",\r\n\t\t\tfallbackSearch: \"Rechercher la piste si le lien original n'est pas disponible\",\r\n\t\t\tlogErrors: \"Créer un fichier journal d'erreurs\",\r\n\t\t\tlogSearched: 'Créer un fichier journal des pistes recherchées',\r\n\t\t\tcreateM3U8File: 'Créer un fichier de playlist',\r\n\t\t\tsyncedLyrics: 'Créer des fichiers .lyr (Paroles Synchronisées)',\r\n\t\t\tplaylistFilenameTemplate: 'Modèle du nom de fichier de la playlist',\r\n\t\t\tsaveDownloadQueue: \"Enregistrer la file d'attente de téléchargement à la fermeture de l'application\"\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: \"Pochettes d'albums\",\r\n\t\t\tsaveArtwork: 'Enregistrer Les Pochettes',\r\n\t\t\tcoverImageTemplate: 'Modèle pour le nom de la pochette',\r\n\t\t\tsaveArtworkArtist: \"Enregistrer l'image de l'artiste\",\r\n\t\t\tartistImageTemplate: \"Modèle pour le nom de l'image de l'artiste\",\r\n\t\t\tlocalArtworkSize: \"Taille de l'illustration locale\",\r\n\t\t\tembeddedArtworkSize: \"Taille de l'illustration incorporée aux fichiers audio\",\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: \"Dans quel format souhaitez-vous l'illustration locale ?\",\r\n\t\t\t\tjpg: 'Une image jpeg',\r\n\t\t\t\tpng: 'Une image png',\r\n\t\t\t\tboth: 'À la fois jpeg et png'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: \"Qualité de l'image JPEG\",\r\n\t\t\tembeddedArtworkPNG: \"Enregistrer l'illustration incorporée aux fichiers audio en tant que PNG\",\r\n\t\t\tembeddedPNGWarning: 'Les images PNG ne sont pas officiellement utilisées par Deezer et pourraient causer des problèmes.',\r\n\t\t\timageSizeWarning: \"Toute valeur supérieure à x1200 n'est pas officiellement supportée par Deezer, vous pourriez donc rencontrer des problèmes.\",\r\n\t\t\tcoverDescriptionUTF8: 'Enregistrer la description de la pochette au format UTF8 (iTunes Cover Fix)'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Métadonnées à sauvegarder',\r\n\t\t\ttitle: 'Titre',\r\n\t\t\tartist: 'Artiste',\r\n\t\t\talbum: 'Album',\r\n\t\t\tcover: 'Pochette',\r\n\t\t\ttrackNumber: 'Numéro De Piste',\r\n\t\t\ttrackTotal: 'Nombre De Pistes',\r\n\t\t\tdiscNumber: 'Numéro Du Disque',\r\n\t\t\tdiscTotal: 'Nombre De Disques',\r\n\t\t\talbumArtist: \"Artiste De l'Album\",\r\n\t\t\tgenre: 'Genre',\r\n\t\t\tyear: 'Année',\r\n\t\t\tdate: 'Date',\r\n\t\t\texplicit: 'Paroles Explicites',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Longueur De La Piste',\r\n\t\t\tbarcode: \"Code-Barres De l'Album (UPC)\",\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Gain En Relecture (Replay Gain)',\r\n\t\t\tlabel: \"Label De l'Album\",\r\n\t\t\tlyrics: 'Paroles Non-Synchronisées',\r\n\t\t\tsyncedLyrics: 'Paroles Synchronisées',\r\n\t\t\tcopyright: \"Droits d'Auteur (Copyright)\",\r\n\t\t\tcomposer: 'Compositeur',\r\n\t\t\tinvolvedPeople: 'Personnes Impliquées'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Autre',\r\n\t\t\tsavePlaylistAsCompilation: 'Enregistrer les playlists en tant que compilation',\r\n\t\t\tuseNullSeparator: 'Utiliser le caractère NULL comme séparateur',\r\n\t\t\tsaveID3v1: 'Enregistrer également les métadonnées ID3v1',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Comment aimeriez-vous séparer les artistes ?',\r\n\t\t\t\tnothing: \"Enregistrer uniquement l'artiste principal\",\r\n\t\t\t\tdefault: 'En utilisant la spécification standard',\r\n\t\t\t\tandFeat: 'En utilisant & et feat.',\r\n\t\t\t\tusing: 'En utilisant \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: \"Enregistrer uniquement l'artiste principal de l'album\",\r\n\t\t\talbumVariousArtists: `Conserver \"Various Artists\" dans les Artistes de l'Album`,\r\n\t\t\tremoveAlbumVersion: `Supprimer \"Album Version\" du titre de la piste`,\r\n\t\t\tremoveDuplicateArtists: \"Supprimer les combinaisons d'artistes\",\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Format de date pour les fichiers FLAC',\r\n\t\t\t\tyear: 'AAAA',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'JJ'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'Que faire des artistes participants (featuring) ?',\r\n\t\t\t\t0: 'Ne rien faire',\r\n\t\t\t\t1: 'Les retirer du titre de la piste',\r\n\t\t\t\t3: \"Les supprimer du titre de la piste et du titre de l'album\",\r\n\t\t\t\t2: 'Les déplacer vers le titre de la piste'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Casse pour le titre',\r\n\t\t\tartistCasing: \"Casse pour l'artiste\",\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Conserver inchangé',\r\n\t\t\t\tlower: 'minuscules',\r\n\t\t\t\tupper: 'MAJUSCULES',\r\n\t\t\t\tstart: 'Majuscule Au Début De Chaque Mot',\r\n\t\t\t\tsentence: 'Majuscule seulement au début de la phrase'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Volume sonore des aperçus de pistes',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Commande à exécuter après le téléchargement',\r\n\t\t\t\tdescription: \"Laisser vide pour qu'aucune action n'ait lieu\"\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Fonctionnalités Spotify',\r\n\t\t\tclientID: 'clientID Spotify',\r\n\t\t\tclientSecret: 'Client Secret Spotify',\r\n\t\t\tusername: \"Nom d'utilisateur Spotify\",\r\n\t\t\tquestion: 'Comment activer les Fonctionnalités Spotify ?'\r\n\t\t},\r\n\t\treset: 'Rétablir les valeurs par défaut',\r\n\t\tsave: 'Sauvegarder',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Paramètres chargés !',\r\n\t\t\tupdate: 'Paramètres mis à jour !',\r\n\t\t\tARLcopied: 'ARL copié dans le presse-papier'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'accueil',\r\n\t\tsearch: 'recherche',\r\n\t\tcharts: 'classements',\r\n\t\tfavorites: 'favoris',\r\n\t\tlinkAnalyzer: 'analyseur de lien',\r\n\t\tsettings: 'paramètres',\r\n\t\tabout: 'à propos'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Télécharger la sélection'\r\n\t}\r\n}\r\n\r\nexport default fr\r\n","const id = {\r\n\tglobals: {\r\n\t\twelcome: 'Selamat datang di deemix',\r\n\t\tback: 'kembali',\r\n\t\tloading: 'memuat',\r\n\t\tdownload: 'Mengunduh {thing}',\r\n\t\tby: 'oleh {artist}',\r\n\t\tin: 'di {album}',\r\n\t\tdownload_hint: 'Unduh',\r\n\t\tplay_hint: 'Putar',\r\n\t\ttoggle_download_tab_hint: 'Buka/Tutup',\r\n\t\tclean_queue_hint: 'Berhasil Mengosongkan',\r\n\t\tcancel_queue_hint: 'Batalkan Semua',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'semua',\r\n\t\t\ttop_result: 'hasil teratas',\r\n\t\t\talbum: 'album | album',\r\n\t\t\tartist: 'artis | artis',\r\n\t\t\tsingle: 'singel | singel',\r\n\t\t\ttitle: 'judul | judul',\r\n\t\t\ttrack: 'lagu | lagu',\r\n\t\t\ttrackN: '0 lagu | {n} lagu | {n} lagu',\r\n\t\t\treleaseN: '0 rilis | {n} rilis | {n} rilis',\r\n\t\t\tplaylist: 'daftar putar | daftar putar',\r\n\t\t\tcompile: 'kompilasi | kompilasi',\r\n\t\t\tep: 'ep | ep',\r\n\t\t\tspotifyPlaylist: 'daftar putar spotify | daftar putar spotify',\r\n\t\t\treleaseDate: 'tanggal rilis',\r\n\t\t\terror: 'galat'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Tautan Berguna',\r\n\t\t\tbugReports: 'Laporan Kesalahan',\r\n\t\t\tcontributing: 'Kontirbutor',\r\n\t\t\tdonations: 'Donasi',\r\n\t\t\tlicense: 'Lisensi'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"Ada yang tidak bekerja dengan baik di deemix? Beri tahu kami!\",\r\n\t\t\tcontributing: 'Mau kontribusi dalam proyek ini? Kamu bisa lakukan dengan banyak hal!',\r\n\t\t\tdonations: 'Mau kontribusi secara finansial? Kamu bisa beri donasi!'\r\n\t\t},\r\n\t\tusesLibrary: 'Aplikasi ini menggunakan pustaka <strong>deemix</strong>, yang bisa kamu gunakan untuk membuat UI deemix milikmu sendiri.',\r\n\t\tthanks: `Terima kasih kepada <strong>rtonno</strong>, <strong>uhwot</strong> dan <strong>lollilol</strong> yang telah membantuku dalam proyek ini, serta kepada <strong>BasCurtiz</strong> dan <strong>scarvimane</strong> yang telah membuat ikon.`,\r\n\t\tupToDate: `Ikuti <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">kanal berita deemix</a> di Telegram agar tidak ketinggalan berita terbaru.`,\r\n\t\tofficialWebsite: 'Situs Web Resmi',\r\n\t\tofficialRepo: 'Repositori Pustaka Resmi',\r\n\t\tofficialWebuiRepo: 'Repositori WebUI Resmi',\r\n\t\tofficialSubreddit: 'Subreddit Resmi',\r\n\t\tnewsChannel: 'Kanal Berita',\r\n\t\tquestions: `Kalau kamu punya pertanyaan atau masalah dengan aplikasi ini, tolong cari solusinya di <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a> kami terlebih dahulu. Kalau memang tidak ada, silakan buat pos baru berisikan persoalan tersebut.`,\r\n\t\tbeforeReporting: `Sebelum melaporkan masalah, pastikan kamu sudah memakai versi aplikasi terbaru dan hal yang akan kamu laporkan memang bukan kesalahan dari pihak kamu sendiri.`,\r\n\t\tbeSure: `Pastikan masalah tersebut bisa diemulasikan di mesin lain, dan juga <strong>JANGAN</strong> laporkan masalah yang sudah dilaporkan sebelumnya.`,\r\n\t\tduplicateReports: 'Laporan duplikat akan kami tutup, jadi perhatikan baik-baik.',\r\n\t\tdontOpenIssues: `<strong>JANGAN</strong> buka issue baru untuk mengirimkan pertanyaan, silakan lakukan di subreddit.`,\r\n\t\tnewUI: `Kalau kamu mahir pada python, kamu bisa coba membuat UI baru untuk aplikasi ini menggunakan pustaka dasar, atau membenarkan masalah di pustaka kami dengan melakukan pull request pada <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repo</a> kami.`,\r\n\t\tacceptFeatures: `Kami juga menerima fitur baru, tapi jangan yang terlalu kompleks, karena hal itu lebih baik diimplementasikan langsung di aplikasi daripada di pustaka.`,\r\n\t\totherLanguages: `Kalau kamu mahir dengan bahasa pemrograman lain, kamu bisa coba mentransfer deemix ke bahasa tersebut!`,\r\n\t\tunderstandingCode: `Butuh bantuan untuk memahami kode deemix? Kontak RemixDev di Telegram atau Reddit.`,\r\n\t\tcontributeWebUI: `Kalau kamu paham Vue.js (JavaScript), HTML, atau CSS, kamu bisa berkontribusi pada <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: `Perlu diingat bahwa <strong>ini adalah proyek gratis</strong> dan <strong>dukung artis idolamu terlebih dahulu</strong> sebelum mendukung kami sebagai pengembang aplikasi.`,\r\n\t\tnotObligated: `Jangan merasa terpaksa untuk menyumbang, kami tetap menghargai kamu!`,\r\n\t\tlincensedUnder: `Pekerjaan ini ada di bawah lisensi\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\"\r\n\t\t\t\t>GNU General Public License 3.0</a\r\n\t\t\t>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Tangga Lagu',\r\n\t\tchangeCountry: 'Ubah Negara',\r\n\t\tdownload: 'Unduh Tangga Lagu'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Galat untuk {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'URL tidak dikenal',\r\n\t\t\tunsupportedURL: 'URL belum didukung',\r\n\t\t\tISRCnotOnDeezer: 'Lagu ISRC tidak tersedia di deezer',\r\n\t\t\tnotYourPrivatePlaylist: \"Kamu tidak bisa mengunduh daftar putar privat orang lain.\",\r\n\t\t\tspotifyDisabled: 'Fitur Spotify tidak diatur dengan benar.',\r\n\t\t\ttrackNotOnDeezer: 'Lagu tidak ditemukan di deezer!',\r\n\t\t\talbumNotOnDeezer: 'Album tidak ditemukan di deezer!',\r\n\t\t\tnotOnDeezer: 'Lagu tidak ada di Deezer!',\r\n\t\t\tnotEncoded: 'Lagu belum di-encode!',\r\n\t\t\tnotEncodedNoAlternative: 'Lagu belum di-encode dan tidak ada alternatif lain!',\r\n\t\t\twrongBitrate: 'Lagu tidak tersedia pada bitrate yang diinginkan.',\r\n\t\t\twrongBitrateNoAlternative: 'Lagu tidak tersedia pada bitrate yang diinginkan dan tidak ada alternatif lain!',\r\n\t\t\tno360RA: 'Lagu tidak tersedia pada Reality Audio 360.',\r\n\t\t\tnotAvailable: \"Lagu tidak tersedia pada server deezer!\",\r\n\t\t\tnotAvailableNoAlternative: \"Lagu tidak tersedia pada server deezer dan tidak ada alternatif lain!\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Favorit',\r\n\t\tnoPlaylists: 'Daftar Putar kosong',\r\n\t\tnoAlbums: 'Album Favorit kosong',\r\n\t\tnoArtists: 'Artis Favorit kosong',\r\n\t\tnoTracks: 'Lagu Favorit kosong'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Kamu harus masuk ke akun Deezer kamu sebelum bisa memulai pengunduhan.',\r\n\t\topenSettings: 'Buka Pengaturan',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Daftar putar populer',\r\n\t\t\tpopularAlbums: 'Album paling banyak diputar'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'Di sini, kamu bisa mencari informasi lebih lanjut tentang tautan yang ingin kamu unduh.',\r\n\t\tuseful:\r\n\t\t\t\"Contohnya, ini dapat berguna jika kamu ingin mengunduh lagu yang tidak tersedia di negaramu dan ingin tahu di negara mana lagu itu tersedia.\",\r\n\t\tlinkNotSupported: 'Tautan seperti ini belum didukung',\r\n\t\tlinkNotSupportedYet: 'Sepertinya tautan ini belum didukung, silakan coba analisa tautan lain.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Durasi',\r\n\t\t\tdiskNumber: 'Nomor Disk',\r\n\t\t\ttrackNumber: 'Nomor Lagu',\r\n\t\t\treleaseDate: 'Tanggal Rilis',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Label',\r\n\t\t\trecordType: 'Tipe Rekaman',\r\n\t\t\tgenres: 'Genre',\r\n\t\t\ttracklist: 'Daftar Lagu'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Mulai cari!',\r\n\t\tdescription:\r\n\t\t\t'Kamu bisa mencari lagu, album, artis, daftar putar.... apa pun! Kamu juga bisa memberikan tautan Deezer',\r\n\t\tfans: '{n} fan',\r\n\t\tnoResults: 'Tak ada hasil',\r\n\t\tnoResultsTrack: 'Lagu tidak ditemukan',\r\n\t\tnoResultsAlbum: 'Album tidak ditemukan',\r\n\t\tnoResultsArtist: 'Artis tidak ditemukan',\r\n\t\tnoResultsPlaylist: 'Daftar putar tidak ditemukan'\r\n\t},\r\n\tsearchbar: 'Cari apa pun yang kamu mau (atau berikan tautannya saja)',\r\n\tdownloads: 'unduhan',\r\n\ttoasts: {\r\n\t\taddedToQueue: '{item} ditambah ke antrian',\r\n\t\talreadyInQueue: '{item} sudah ada di antrian!',\r\n\t\tfinishDownload: '{item} selesai diunduh.',\r\n\t\tallDownloaded: 'Seluruh unduhan selesai!',\r\n\t\trefreshFavs: 'Penyegaran selesai!',\r\n\t\tloggingIn: 'Masuk',\r\n\t\tloggedIn: 'Telah masuk',\r\n\t\talreadyLogged: 'Telah masuk',\r\n\t\tloginFailed: \"Tidak bisa masuk\",\r\n\t\tloggedOut: 'Belum masuk',\r\n\t\tcancellingCurrentItem: 'Membatalkan item.',\r\n\t\tcurrentItemCancelled: 'Item telah dibatalan.',\r\n\t\tstartAddingArtist: 'Menambahkan {artist} album ke antrian',\r\n\t\tfinishAddingArtist: '{artist} album telah ditambahkan ke antrian',\r\n\t\tstartConvertingSpotifyPlaylist: 'Mengonversi lagu spotify ke deezer',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Daftar putar Spotify selesai dikonversi'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Pengaturan',\r\n\t\tlanguages: 'Bahasa',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Masuk',\r\n\t\t\tloggedIn: 'Kamu telah masuk sebagai {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'Bagaimana cara mendapat ARL?',\r\n\t\t\t\tupdate: 'Perbarui ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Keluar'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Tampilan',\r\n\t\t\tslimDownloadTab: 'Tab unduhan ramping'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Direktori Unduhan'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Templat',\r\n\t\t\ttracknameTemplate: 'Templat judul lagu',\r\n\t\t\talbumTracknameTemplate: 'Templat judul album',\r\n\t\t\tplaylistTracknameTemplate: 'Templat judul daftar putar'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Folders',\r\n\t\t\tcreatePlaylistFolder: 'Buat folder untuk daftar putar',\r\n\t\t\tplaylistNameTemplate: 'Templat folder daftar putar',\r\n\t\t\tcreateArtistFolder: 'Buat folder untuk artis',\r\n\t\t\tartistNameTemplate: 'Templat folder artis',\r\n\t\t\tcreateAlbumFolder: 'Buat folder untuk album',\r\n\t\t\talbumNameTemplate: 'Templat folder album',\r\n\t\t\tcreateCDFolder: 'Buat folder untuk CD',\r\n\t\t\tcreateStructurePlaylist: 'Buat struktur folder untuk daftar putar',\r\n\t\t\tcreateSingleFolder: 'Buat struktur folder untuk singel'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Judul lagu',\r\n\t\t\tpadTracks: 'Judul pad',\r\n\t\t\tpaddingSize: 'Timpa ukuran padding',\r\n\t\t\tillegalCharacterReplacer: 'Pengubah Simbol Tak Terdukung'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Unduhan',\r\n\t\t\tqueueConcurrency: 'Unduhan Bersamaan',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Bitrate Prioritas',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Apakah file mau ditimpa?',\r\n\t\t\t\ty: 'Ya, silakan',\r\n\t\t\t\tn: \"Tidak, jangan ditimpa\",\r\n\t\t\t\tt: 'Timpa tag-nya saja'\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Rendahkan bitrate',\r\n\t\t\tfallbackSearch: 'Cari bitrate lebih rendah',\r\n\t\t\tlogErrors: 'Buat file log untuk galat',\r\n\t\t\tlogSearched: 'Buat file log untuk lagu yang dicari',\r\n\t\t\tcreateM3U8File: 'Buat file daftar putar',\r\n\t\t\tsyncedLyrics: 'Buat file .lyr (Sinkronisasikan Lirik)',\r\n\t\t\tplaylistFilenameTemplate: 'Templat nama file untuk daftar putar',\r\n\t\t\tsaveDownloadQueue: 'Simpan antrian pengunduhan saat menutup aplikasi'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Sampul album',\r\n\t\t\tsaveArtwork: 'Simpan Sampul',\r\n\t\t\tcoverImageTemplate: 'Templat nama sampul',\r\n\t\t\tsaveArtworkArtist: 'Simpan gambar artis',\r\n\t\t\tartistImageTemplate: 'Templat gambar artis',\r\n\t\t\tlocalArtworkSize: 'Ukuran sampul lokal',\r\n\t\t\tembeddedArtworkSize: 'Ukuran sampul tertanam',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'Format gambar apa yang kamu mau untuk sampul lokal?',\r\n\t\t\t\tjpg: 'Gambar JPEG',\r\n\t\t\t\tpng: 'Gambar PNG',\r\n\t\t\t\tboth: 'Keduanya'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'Kualitas gambar JPEG'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Tag apa saja yang disimpan?',\r\n\t\t\ttitle: 'Judul',\r\n\t\t\tartist: 'Artis',\r\n\t\t\talbum: 'Album',\r\n\t\t\tcover: 'Sampul',\r\n\t\t\ttrackNumber: 'Nomor Lagu',\r\n\t\t\ttrackTotal: 'Jumlah Lagu',\r\n\t\t\tdiscNumber: 'Nomor Disk',\r\n\t\t\tdiscTotal: 'Jumlah Disk',\r\n\t\t\talbumArtist: 'Artis pada Album',\r\n\t\t\tgenre: 'Genre',\r\n\t\t\tyear: 'Tahun',\r\n\t\t\tdate: 'Tanggal',\r\n\t\t\texplicit: 'Lirik Eksplisit',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Durasi',\r\n\t\t\tbarcode: 'Barcode Album (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Replay Gain',\r\n\t\t\tlabel: 'Label Album',\r\n\t\t\tlyrics: 'Lirik Tak Tersinkronisasi',\r\n\t\t\tcopyright: 'Hak Cipta',\r\n\t\t\tcomposer: 'Komposer',\r\n\t\t\tinvolvedPeople: 'Orang-Orang Terlibat'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Lainnya',\r\n\t\t\tsavePlaylistAsCompilation: 'Simpan daftar putar sebagai kompilasi',\r\n\t\t\tuseNullSeparator: 'Gunakan separator null',\r\n\t\t\tsaveID3v1: 'Simpan juga ID3v1',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Bagaimana kamu mau memisahkan nama artis?',\r\n\t\t\t\tnothing: 'Simpan artis utamanya saja',\r\n\t\t\t\tdefault: 'Gunakan spesifikasi standard',\r\n\t\t\t\tandFeat: 'Gunakan & dan feat.',\r\n\t\t\t\tusing: 'Gunakan \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'Simpan artis utama saja',\r\n\t\t\talbumVariousArtists: 'Simpan \"Various Artists\" sebagai artis',\r\n\t\t\tremoveAlbumVersion: 'Hapus \"Versi Album\" dari judul lagu',\r\n\t\t\tremoveDuplicateArtists: 'Hapus kombinasi artis',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Format tanggal untuk file FLAC',\r\n\t\t\t\tyear: 'YYYY',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'DD'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'Apa yang harus dilakukan jika ada artis kedua?',\r\n\t\t\t\t0: 'Biarkan saja',\r\n\t\t\t\t1: 'Hapus dari judul lagu',\r\n\t\t\t\t3: 'Hapus dari judul lagu dan judul album',\r\n\t\t\t\t2: 'Pindahkan ke judul lagu'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Kapitalisasi judul',\r\n\t\t\tartistCasing: 'Kapitalisasi album',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Biarkan seadanya',\r\n\t\t\t\tlower: 'huruf kecil',\r\n\t\t\t\tupper: 'HURUF KAPITAL',\r\n\t\t\t\tstart: 'Setiap Awal Kata',\r\n\t\t\t\tsentence: 'Huruf pertama saja'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Pratinjau volume',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Perintah yang dijalankan setelah pengunduhan',\r\n\t\t\t\tdescription: 'Biarkan kosong jika tidak ada'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Fitur Spotify',\r\n\t\t\tclientID: 'clientID Spotify ',\r\n\t\t\tclientSecret: 'Client Secret Spotify ',\r\n\t\t\tusername: 'Username Spotify'\r\n\t\t},\r\n\t\treset: 'Kembalikan ke Awal',\r\n\t\tsave: 'Simpan',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Pengaturan dimuat!',\r\n\t\t\tupdate: 'Pengaturan diperbarui!',\r\n\t\t\tARLcopied: 'ARL tersalin ke papan klip'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'utama',\r\n\t\tsearch: 'cari',\r\n\t\tcharts: 'tangga lagu',\r\n\t\tfavorites: 'favorit',\r\n\t\tlinkAnalyzer: 'penganalisa tautan',\r\n\t\tsettings: 'pengaturan',\r\n\t\tabout: 'tentang'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Seleksi unduhan'\r\n\t}\r\n}\r\n\r\nexport default id\r\n","const pt = {\r\n globals: {\r\n welcome: 'Bem-vindo ao deemix',\r\n back: 'voltar',\r\n loading: 'A carregar',\r\n download: 'Transferir {thing}',\r\n by: 'por {artist}',\r\n in: 'em {album}',\r\n download_hint: 'Transferir',\r\n play_hint: 'Tocar',\r\n toggle_download_tab_hint: 'Expandir/Recolher',\r\n clean_queue_hint: 'Limpar Finalizados',\r\n cancel_queue_hint: 'Cancelar Tudo',\r\n listTabs: {\r\n empty: '',\r\n all: 'Tudo',\r\n top_result: 'melhor resultado',\r\n album: 'álbum | álbums',\r\n artist: 'artista | artistas',\r\n single: 'single | singles',\r\n title: 'título | títulos',\r\n track: 'faixa | faixas',\r\n trackN: '0 faixas | {n} faixa | {n} faixas',\r\n releaseN: '0 lançamentos | {n} lançamento | {n} lançamento',\r\n playlist: 'lista de reprodução | listas de reprodução',\r\n compile: 'compilação | compilações',\r\n ep: 'ep | eps',\r\n spotifyPlaylist: 'lista de reprodução spotify | listas de reprodução spotify',\r\n releaseDate: 'data de lançamento',\r\n error: 'erro'\r\n }\r\n },\r\n about: {\r\n titles: {\r\n usefulLinks: 'Links Úteis',\r\n bugReports: 'Relatório de erros',\r\n contributing: 'Contribuir',\r\n donations: 'Doações',\r\n license: 'Licenças'\r\n },\r\n subtitles: {\r\n bugReports: 'Existe alguma coisa que não funciona no deemix? Informa-nos!',\r\n contributing: 'Queres contribuir para o projecto? Podes fazê-lo de diferentes formas!',\r\n donations: 'Desejas contribuir monetariamente? Faz uma doação!'\r\n },\r\n usesLibrary: 'Esta aplicação usa a biblioteca <strong>deemix</strong>, que poderás usar para desenvolver o teu proprio UI para o deemix.',\r\n thanks: `Agradeço a <strong>rtonno</strong>, <strong>uhwot</strong> and <strong>lollilol</strong> por me ajudarem neste projeto e a <strong>BasCurtiz</strong> and <strong>scarvimane</strong> por elaborarem o ícone.`,\r\n upToDate: `Mantem-te atualizado seguindo o <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">canal de notícias</a> no Telegram.`,\r\n officialWebsite: 'Site Oficial',\r\n officialRepo: 'Repositório Oficial da Biblioteca',\r\n officialWebuiRepo: 'Repositório Oficial WebUI',\r\n officialSubreddit: 'Subreddit Oficial',\r\n newsChannel: 'Canal de Notícias',\r\n questions: `Caso tenhas alguma duvida ou problema com a app, primeiro procura por uma solução no <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a>. Caso não encontres nada podes criar um post com a tua questão no subreddit.`,\r\n beforeReporting: `Antes de reportares um bug certifica-te que estás a correr a versão mais recente e que o que queres reportar é mesmo um bug e não algo que apenas não funciona do teu lado.`,\r\n beSure: `Certifica-te que o erro é reprodutivel noutros dispositivos e <strong>NÃO</strong> reportes um bug que já tenha sido reportado.`,\r\n duplicateReports: 'Bug reports duplicados serão fechados, mantém-te atento a isso.',\r\n dontOpenIssues: `<strong>NÃO</strong> abras issues para colocar questões, existe um subreddit para isso.`,\r\n newUI: `Caso sejas fluente em python podes tentar criar um novo UI para a aplicação recorrendo à biblioteca base , ou corrigir erros na biblioteca com um pull request no <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repositório</a>.`,\r\n acceptFeatures: `Também aceito funcionalidades não complexas caso possam ser implementadas directamente na app e não na biblioteca.`,\r\n otherLanguages: `Caso sejas fluente noutra linguagem de programação podes tentar migrar o deemix para outra linguagem de programação!`,\r\n understandingCode: `Precisas de ajuda a entender o código? Acede a RemixDev no Telegram ou no Reddit.`,\r\n contributeWebUI: `Caso saibas Vue.js (JavaScript), HTML ou CSS podes contribuir para o <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n itsFree: `Deves ter em conta que <strong>que este projecto é gratuito</strong> e <strong>deverás apoiar os artistas que aprecias</strong> antes de apoiares os programadores.`,\r\n notObligated: `Não te sintas obrigado a doar, agradeço-te na mesma!`,\r\n lincensedUnder: `Este trabalho esta licenciado sobre a\r\n <a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\"\r\n >GNU Licença publica geral 3.0</a\r\n >.`\r\n },\r\n charts: {\r\n title: 'Tabelas',\r\n changeCountry: 'Alterar país',\r\n download: 'Transferir tabela'\r\n },\r\n errors: {\r\n title: 'Erros para {name}',\r\n ids: {\r\n invalidURL: 'URL não reconhecido',\r\n unsupportedURL: 'URL ainda não suportado',\r\n ISRCnotOnDeezer: 'Faixa ISRC não disponível no deezer',\r\n notYourPrivatePlaylist: \"Nao podes baixar listas de reprodução privadas de outros.\",\r\n spotifyDisabled: 'Funcionalidades do Spotify não estão definidas corretamente.',\r\n trackNotOnDeezer: 'Faixa não encontrada no deezer!',\r\n albumNotOnDeezer: 'Álbum não encontrado no deezer!',\r\n notOnDeezer: 'Faixa não encontrada no Deezer!',\r\n notEncoded: 'Faixa ainda não codificada!',\r\n notEncodedNoAlternative: 'Faixa ainda não codificada e não foi encontrada alternativa!',\r\n wrongBitrate: 'Faixa não encontrada no bitrate desejado.',\r\n wrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e não foi encontrada alternativa!',\r\n no360RA: 'Faixa não disponível em Reality Audio 360.',\r\n notAvailable: 'Faixa não disponível nos servidores do deezer!',\r\n notAvailableNoAlternative: 'Faixa não disponível nos servidores do deezer e não foi encontrada alternativa!'\r\n }\r\n },\r\n favorites: {\r\n title: 'Favoritos',\r\n noPlaylists: 'Listas de reprodução não encontradas',\r\n noAlbums: 'Álbuns favoritos não encontrados',\r\n noArtists: 'Artistas favoritos não encontrados',\r\n noTracks: 'Faixas favoritas não encontradas'\r\n },\r\n home: {\r\n needTologin: 'Antes de iniciar transferências é necessário efectuar autenticação na conta Deezer.',\r\n openSettings: 'Abrir Definições',\r\n sections: {\r\n popularPlaylists: 'Listas de reprodução populares',\r\n popularAlbums: 'Álbuns mais ouvidos'\r\n }\r\n },\r\n linkAnalyzer: {\r\n info: 'Podes usar esta secção para obteres mais informação sobre o link que estás a tentar transferir.',\r\n useful: 'Isto é útil caso estejas a tentar transferir faixas que não estão disponíveis no teu país e queres saber onde estão disponíveis, por exemplo.',\r\n linkNotSupported: 'Este link ainda não é suportado',\r\n linkNotSupportedYet: 'Parece que este link ainda não é suportado, tenta analisar outro.',\r\n table: {\r\n id: 'ID',\r\n isrc: 'ISRC',\r\n upc: 'UPC',\r\n duration: 'Duração',\r\n diskNumber: 'Número do disco',\r\n trackNumber: 'Número da faixa',\r\n releaseDate: 'Data de lançamento',\r\n bpm: 'BPM',\r\n label: 'Editora',\r\n recordType: 'Tipo de Disco',\r\n genres: 'Géneros',\r\n tracklist: 'Lista de faixas'\r\n }\r\n },\r\n search: {\r\n startSearching: 'Começa a pesquisar!',\r\n description: 'Podes perquisar uma música, um álbum inteiro, um artista, uma lista de reprodução... tudo! Também podes colar um link do Deezer',\r\n fans: '{n} fãs',\r\n noResults: 'Sem resultados',\r\n noResultsTrack: 'Faixa não encontrada',\r\n noResultsAlbum: 'Álbum não encontrado',\r\n noResultsArtist: 'Artista não encontrado',\r\n noResultsPlaylist: 'Lista de reprodução não encontrada'\r\n },\r\n searchbar: 'Pesquisa o que quiseres (ou cola um link)',\r\n downloads: 'transferências',\r\n toasts: {\r\n addedToQueue: '{item} adicionados à fila',\r\n alreadyInQueue: '{item} já está na fila!',\r\n finishDownload: '{item} foi transferido.',\r\n allDownloaded: 'Todas as transferências terminadas!',\r\n refreshFavs: 'Actualizar terminados!',\r\n loggingIn: 'A autenticar',\r\n loggedIn: 'Autenticado',\r\n alreadyLogged: 'Já estás autenticado',\r\n loginFailed: \"Nao foi possivel iniciar sessão\",\r\n loggedOut: 'Desconectado',\r\n cancellingCurrentItem: 'A cancelar item actual.',\r\n currentItemCancelled: 'Item actual cancelado.',\r\n startAddingArtist: 'A adicionar {artist} álbuns à fila',\r\n finishAddingArtist: 'Adicionados {artist} álbuns à fila',\r\n startConvertingSpotifyPlaylist: 'A converter faixas do spotify em faixas do deezer',\r\n finishConvertingSpotifyPlaylist: 'Lista de reprodução do Spotify convertida.'\r\n },\r\n settings: {\r\n title: 'Definições',\r\n languages: 'Idioma',\r\n login: {\r\n title: 'Inicio de Sessão',\r\n loggedIn: 'Estás autenticado como {username}',\r\n arl: {\r\n question: 'Como obter o meu ARL?',\r\n update: 'Actualizar ARL'\r\n },\r\n logout: 'Sair'\r\n },\r\n appearance: {\r\n title: 'Aspecto',\r\n slimDownloadTab: 'Aba de transferências estreita'\r\n },\r\n downloadPath: {\r\n title: 'Caminho das transferências'\r\n },\r\n templates: {\r\n title: 'Formatos',\r\n tracknameTemplate: 'Formato do nome de faixa',\r\n albumTracknameTemplate: 'Formato do nome de Álbum',\r\n playlistTracknameTemplate: 'Formato do nome de lista de reprodução'\r\n },\r\n folders: {\r\n title: 'Pastas',\r\n createPlaylistFolder: 'Criar pasta para lista de reprodução',\r\n playlistNameTemplate: 'Formato da pasta de lista de reprodução',\r\n createArtistFolder: 'Criar pasta para artista',\r\n artistNameTemplate: 'Formato da pasta de artista',\r\n createAlbumFolder: 'Criar pasta para álbum',\r\n albumNameTemplate: 'Formato da pasta de álbum',\r\n createCDFolder: 'Criar pasta para CDs',\r\n createStructurePlaylist: 'Criar estrutura de pastas para listas reprodução',\r\n createSingleFolder: 'Criar estrutura de pastas para singles'\r\n },\r\n trackTitles: {\r\n title: 'Título',\r\n padTracks: 'Bloco de Faixas',\r\n paddingSize: 'Substituir tamanho do preenchimento',\r\n illegalCharacterReplacer: 'Substituir caractere inválido'\r\n },\r\n downloads: {\r\n title: 'Transferências',\r\n queueConcurrency: 'Transferências concorrentes',\r\n maxBitrate: {\r\n title: 'Bitrate preferencial',\r\n 9: 'FLAC 1411kbps',\r\n 3: 'MP3 320kbps',\r\n 1: 'MP3 128kbps'\r\n },\r\n overwriteFile: {\r\n title: 'Ficheiros existentes. Substituir?',\r\n y: 'Sim, substituir o ficheiro',\r\n n: 'Não substituir o ficheiro',\r\n t: 'Subescrever apenas as etiquetas'\r\n },\r\n fallbackBitrate: 'Bitrate fallback',\r\n fallbackSearch: 'Fallback de pesquisa',\r\n logErrors: 'Criar histórico para erros',\r\n logSearched: 'Criar histórico para faixas pesquisadas',\r\n createM3U8File: 'Criar ficheiro de lista de reprodução',\r\n syncedLyrics: 'Criar ficheiro .lyr (Letra Sincronizada)',\r\n playlistFilenameTemplate: 'Formato do nome de ficheiro da lista de reprodução',\r\n saveDownloadQueue: 'Guardar fila de transferências ao fechar a aplicação'\r\n },\r\n covers: {\r\n title: 'Capas do Álbum',\r\n saveArtwork: 'Guardar capas',\r\n coverImageTemplate: 'Modelo do nome da capa',\r\n saveArtworkArtist: 'Salvar imagem do artista',\r\n artistImageTemplate: 'Modelo de imagem do artista',\r\n localArtworkSize: 'Tamanho do trabalho artístico local',\r\n embeddedArtworkSize: 'Tamanho do trabalho artístico incorporado',\r\n localArtworkFormat: {\r\n title: 'Em que formato desejas o trabalho artístico local?',\r\n jpg: 'Em imagem jpeg',\r\n png: 'Em imagem png',\r\n both: 'Em jpeg e em png'\r\n },\r\n jpegImageQuality: 'Qualidade de imagem JPEG'\r\n },\r\n tags: {\r\n head: 'Etiquetas a guardar',\r\n title: 'Título',\r\n artist: 'Artista',\r\n album: 'Álbum',\r\n cover: 'Capa',\r\n trackNumber: 'Número de faixa',\r\n trackTotal: 'Total de faixas',\r\n discNumber: 'Número do Disco',\r\n discTotal: 'Total de Discos',\r\n albumArtist: 'Artista do Álbum',\r\n genre: 'Género',\r\n year: 'Ano',\r\n date: 'Data',\r\n explicit: 'Letra Explícita',\r\n isrc: 'ISRC',\r\n length: 'Duração da faixa',\r\n barcode: 'Código de barras do álbum (UPC)',\r\n bpm: 'BPM',\r\n replayGain: 'ReplayGain',\r\n label: 'Editora do álbum',\r\n lyrics: 'Letra da música não sincronizada',\r\n copyright: 'Direitos de Autor',\r\n composer: 'Compositor',\r\n involvedPeople: 'Pessoas envolvidas'\r\n },\r\n other: {\r\n title: 'Outros',\r\n savePlaylistAsCompilation: 'Guardar listas de reprodução como compilação',\r\n useNullSeparator: 'Usar separador nulo',\r\n saveID3v1: 'Também guardar ID3v1',\r\n multiArtistSeparator: {\r\n title: 'Como queres separarar os artistas?',\r\n nothing: 'Guardar apenas o artista principal',\r\n default: 'Usar especificação padrão',\r\n andFeat: 'Usar & e feat.',\r\n using: 'Usar \"{separator}\"'\r\n },\r\n singleAlbumArtist: 'Guardar apenas o artista principal do álbum',\r\n albumVariousArtists: 'Manter \"Various Artists\" nos Artistas do Álbum',\r\n removeAlbumVersion: 'Remover \"Album Version\" do título da faixa',\r\n removeDuplicateArtists: 'Remover combinação de artistas',\r\n dateFormat: {\r\n title: 'Formato de data nos ficheiros FLAC',\r\n year: 'AAAA',\r\n month: 'MM',\r\n day: 'DD'\r\n },\r\n featuredToTitle: {\r\n title: 'O que devo fazer com artistas convidados/participações?',\r\n 0: 'Nada',\r\n 1: 'Remover do título',\r\n 3: 'Remover do título e do título do album',\r\n 2: 'Movê-lo para o título'\r\n },\r\n titleCasing: 'Caixa do Título',\r\n artistCasing: 'Caixa do Artista',\r\n casing: {\r\n nothing: 'Manter inalterado',\r\n lower: 'minusculas',\r\n upper: 'MAIÚSCULAS',\r\n start: 'Início De Cada Palavra',\r\n sentence: 'Como uma frase'\r\n },\r\n previewVolume: 'Volume de Pré-visualização',\r\n executeCommand: {\r\n title: 'Comando a executar após transferir',\r\n description: 'Deixar em branco para nenhuma acção'\r\n }\r\n },\r\n spotify: {\r\n title: 'Funcionalidades Spotify',\r\n clientID: 'Spotify clientID',\r\n clientSecret: 'Spotify Client Secret',\r\n username: 'nome de utilizador Spotify'\r\n },\r\n reset: 'Repor configurações padrão',\r\n save: 'Guardar',\r\n toasts: {\r\n init: 'Configurações carregadas!',\r\n update: 'Configurações actualizadas',\r\n ARLcopied: 'ARL copiado para area de transferencia'\r\n }\r\n },\r\n sidebar: {\r\n home: 'início',\r\n search: 'pesquisa',\r\n charts: 'tabelas',\r\n favorites: 'favoritos',\r\n linkAnalyzer: 'analizador de links',\r\n settings: 'definições',\r\n about: 'sobre'\r\n },\r\n tracklist: {\r\n downloadSelection: 'Transferir seleccionados'\r\n }\r\n}\r\n\r\nexport default pt\r\n","const pt_br = {\r\n\tglobals: {\r\n\t\twelcome: 'bem vindo ao deemix',\r\n\t\tback: 'voltar',\r\n\t\tloading: 'carregando',\r\n\t\tdownload: 'Baixar {thing}',\r\n\t\tby: 'por {artist}',\r\n\t\tin: 'em {album}',\r\n\t\tdownload_hint: 'Baixar',\r\n\t\tplay_hint: 'Reproduzir',\r\n\t\ttoggle_download_tab_hint: 'Expandir/Diminuir',\r\n\t\tclean_queue_hint: 'Limpar',\r\n\t\tcancel_queue_hint: 'Cancelar Todos',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'todos',\r\n\t\t\ttop_result: 'resultado principal',\r\n\t\t\talbum: 'álbum | álbuns',\r\n\t\t\tartist: 'artista | artistas',\r\n\t\t\tsingle: 'single | singles',\r\n\t\t\ttitle: 'título | títulos',\r\n\t\t\ttrack: 'faixa | faixas',\r\n\t\t\ttrackN: '0 faixas | {n} faixa | {n} faixas',\r\n\t\t\treleaseN: '0 lançamento | {n} lançamento | {n} lançamentos',\r\n\t\t\tplaylist: 'playlist | playlists',\r\n\t\t\tcompile: 'compilação | compilações',\r\n\t\t\tep: 'ep | eps',\r\n\t\t\tspotifyPlaylist: 'playlist do spotify | playlists do spotify',\r\n\t\t\treleaseDate: 'data de lançamento',\r\n\t\t\terror: 'erro'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Links Úteis',\r\n\t\t\tbugReports: 'Relatar Bugs',\r\n\t\t\tcontributing: 'Contribuições',\r\n\t\t\tdonations: 'Doações',\r\n\t\t\tlicense: 'Licença'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: 'Há algo não funcionando no deemix? Nos diga!',\r\n\t\t\tcontributing: 'Você quer contribuir para este projeto? Você pode fazer isso de diferentes maneiras!',\r\n\t\t\tdonations: 'Você quer contribuir monetariamente? Você pode fazer uma doação!'\r\n\t\t},\r\n\t\tusesLibrary:\r\n\t\t\t'Esse app usa a biblioteca do <strong>deemix</strong>, no qual você pode usar para criar sua própria UI para o deemix',\r\n\t\tthanks: `Agradecimentos para <strong>rtonno</strong>, <strong>uhwot</strong> e <strong>lollilol</strong> por ajudar neste projeto, e para <strong>BasCurtiz</strong> e <strong>scarvimane</strong> por fazerem o ícone`,\r\n\t\tupToDate: `Para mais novidades siga o <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">news channel</a> no Telegram.`,\r\n\t\tofficialWebsite: 'Site Oficial',\r\n\t\tofficialRepo: 'Repositório da Biblioteca Oficial',\r\n\t\tofficialWebuiRepo: 'Repositório da WebUI Oficial',\r\n\t\tofficialSubreddit: 'Subreddit Oficial',\r\n\t\tnewsChannel: 'Canal de Notícias',\r\n\t\tquestions: `Se você tiver dúvidas ou problemas com o app, procure uma solução em <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a> primeiro. Caso você não encontre, você pode fazer um post explicando seu problema no subreddit. `,\r\n\t\tbeforeReporting: `Antes de reportar um bug, tenha certeza que você está rodando a versão mais recente do app, e o que você quer reportar seja realmente um bug e não algo que esteja acontecendo especialmente com você.`,\r\n\t\tbeSure: `Certifique-se que o bug é reproduzivel em outras máquinas e também <strong>NÃO</strong> reporte um bug se ele já foi reportado.`,\r\n\t\tduplicateReports: 'Reportes de bugs duplicados serão fechados, então fique atento a isso.',\r\n\t\tdontOpenIssues: `<strong>NÃO</strong> abra tópicos para fazer perguntas, há o subreddit para isso.`,\r\n\t\tnewUI: `Se você é fluente em Phython, você pode tentar fazer uma nova UI para o app usando a biblioteca base, ou consertar bugs da biblioteca com um pull request em <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repo</a>.`,\r\n\t\tacceptFeatures: `Eu aceito funcionalidades extras também, mas nada de coisas complexas, desde que ela possa ser implementada no app, e não na biblioteca.`,\r\n\t\totherLanguages: `Se você for fluente em outra linguagem de programação, você pode tentar portar o deemix para outra linguagem!`,\r\n\t\tunderstandingCode: `Você precisa de ajuda para entender o código? Mande mensagem no RemixDex pelo Telegram ou pelo Reddit.`,\r\n\t\tcontributeWebUI: `Se você souber Vue.js (JavaScript), HTML ou CSS você pode contribuir para o <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: `Lembre-se que <strong>este projeto é livre</strong> e <strong>você deve dar suporte aos artistas que você ama</strong> antes de dar suporte aos desenvolvedores.`,\r\n\t\tnotObligated: `Não se sinta na obrigação de doar, eu agradeço de qualquer maneira!`,\r\n\t\tlincensedUnder: `Esse é um projeto licenciado através da\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\"\r\n\t\t\t\t>GNU General Public License 3.0</a\r\n\t\t\t>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Charts',\r\n\t\tchangeCountry: 'Mudar País',\r\n\t\tdownload: 'Download Chart'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Erros para {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'URL inválida',\r\n\t\t\tunsupportedURL: 'URL não suportada ainda',\r\n\t\t\tISRCnotOnDeezer: 'Faixa ISRC não está disponível ainda no deezer',\r\n\t\t\tnotYourPrivatePlaylist: 'Você não pode baixar playlists privadas.',\r\n\t\t\tspotifyDisabled: 'Os Recursos do Spotify não foram configurados corretamente.',\r\n\t\t\ttrackNotOnDeezer: 'Faixa não encontrada no deezer!',\r\n\t\t\talbumNotOnDeezer: 'Album not found on deezer! Álbum não encontrado no deezer!',\r\n\t\t\tnotOnDeezer: 'Faixa indisponível no deezer!',\r\n\t\t\tnotEncoded: 'Faixa ainda não codificada!',\r\n\t\t\tnotEncodedNoAlternative: 'Faixa ainda não codificada e sem alternativas encontradas!',\r\n\t\t\twrongBitrate: 'Faixa não encontrada no bitrate desejado.',\r\n\t\t\twrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e nenhuma outra alternativa encontrada!',\r\n\t\t\tno360RA: 'Faixa não disponível na qualidade Reality Audio 360.',\r\n\t\t\tnotAvailable: 'Faixa não disponível nos servidores do deezer!',\r\n\t\t\tnotAvailableNoAlternative: 'Faixa não disponível nos servidores do deezer e nenhuma outra alternativa encontrada!'\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Favoritos',\r\n\t\tnoPlaylists: 'Nenhuma Playlist encontrada',\r\n\t\tnoAlbums: 'Nenhum Álbum Favorito encontrado',\r\n\t\tnoArtists: 'Nenhum Artista Favorito encontrado',\r\n\t\tnoTracks: 'Nenhuma Faixa Favorita encontrada'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Você precisa logar na sua conta do deezer antes de começar a baixar músicas.',\r\n\t\topenSettings: 'Abrir Configurações',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Playlists Populares',\r\n\t\t\tpopularAlbums: 'Álbuns mais ouvidos'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'Você pode usar essa seção para encontrar mais informações sobre o link que você quer baixar.',\r\n\t\tuseful:\r\n\t\t\t'Isso é útil se você está tentando baixar algumas faixas que não estão disponíveis no seu país, e quer saber onde elas estão disponíveis, por exemplo.',\r\n\t\tlinkNotSupported: 'Esse link não é suportado ainda',\r\n\t\tlinkNotSupportedYet: 'Parece que esse link não é suportado ainda, tente analizar outro.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Duração',\r\n\t\t\tdiskNumber: 'Número do Disco',\r\n\t\t\ttrackNumber: 'Número da Faixa',\r\n\t\t\treleaseDate: 'Data de Lançamento',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Gravadora',\r\n\t\t\trecordType: 'Tipo de Gravação',\r\n\t\t\tgenres: 'Gêneros',\r\n\t\t\ttracklist: 'Tracklist'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Comece pesquisando!',\r\n\t\tdescription:\r\n\t\t\t'Você pode pesquisar uma música, um álbum, um artista, uma playlist.... tudo! Você também pode colar um link do Deezer',\r\n\t\tfans: '{n} fãs',\r\n\t\tnoResults: 'Sem resultados',\r\n\t\tnoResultsTrack: 'Nenhuma Faixa encontrada',\r\n\t\tnoResultsAlbum: 'Nenhum Álbum encontrado',\r\n\t\tnoResultsArtist: 'Nenhum Artista encontrado',\r\n\t\tnoResultsPlaylist: 'Nenhuma Playlist encontrada'\r\n\t},\r\n\tsearchbar: 'Pesquise algo (ou apenas cole um link)',\r\n\tdownloads: 'downloads',\r\n\ttoasts: {\r\n\t\taddedToQueue: '{item} adicionado à fila',\r\n\t\talreadyInQueue: '{item} já está na fila!',\r\n\t\tfinishDownload: '{item} download terminado.',\r\n\t\tallDownloaded: 'Todos os downloads foram feitos!',\r\n\t\trefreshFavs: 'Atualização completa!',\r\n\t\tloggingIn: 'Logando',\r\n\t\tloggedIn: 'Logado',\r\n\t\talreadyLogged: 'Você já está logado',\r\n\t\tloginFailed: 'Não foi possivel entrar',\r\n\t\tloggedOut: 'Desconectando',\r\n\t\tcancellingCurrentItem: 'Cancelando item atual.',\r\n\t\tcurrentItemCancelled: 'Item atual cancelado.',\r\n\t\tstartAddingArtist: 'Adicionando {artist} álbuns à fila',\r\n\t\tfinishAddingArtist: '{artist} álbuns adicionados a fila',\r\n\t\tstartConvertingSpotifyPlaylist: 'Convertendo faixas do spotify para faixas do deezer',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Playlists do Spotify convertidas'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Configurações',\r\n\t\tlanguages: 'Idiomas',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Login',\r\n\t\t\tloggedIn: 'Você está logado como {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'Como eu consigo o meu ARL?',\r\n\t\t\t\tupdate: 'Atualizar ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Sair'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Aparência',\r\n\t\t\tslimDownloadTab: 'Aba de download slim'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Diretório de Downloads'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Templates',\r\n\t\t\ttracknameTemplate: 'Template do nome da faixa',\r\n\t\t\talbumTracknameTemplate: 'Template da faixa do álbum',\r\n\t\t\tplaylistTracknameTemplate: 'Template da faixa da playlist'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Pastas',\r\n\t\t\tcreatePlaylistFolder: 'Criar pasta para playlists',\r\n\t\t\tplaylistNameTemplate: 'Template da pasta de playlist',\r\n\t\t\tcreateArtistFolder: 'Criar pasta para os artistas',\r\n\t\t\tartistNameTemplate: 'Template da pasta de artistas',\r\n\t\t\tcreateAlbumFolder: 'Criar pasta para álbuns',\r\n\t\t\talbumNameTemplate: 'Template da pasta de álbuns',\r\n\t\t\tcreateCDFolder: 'Criar pasta para CDs',\r\n\t\t\tcreateStructurePlaylist: 'Criar estrutura de pastas para playlists',\r\n\t\t\tcreateSingleFolder: 'Criar estrutura de pastas para singles'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Título das faixas',\r\n\t\t\tpadTracks: 'Faixas com pad',\r\n\t\t\tpaddingSize: 'Sobrescrever tamanho do padding',\r\n\t\t\tillegalCharacterReplacer: 'Substituir caracteres inválidos'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Downloads',\r\n\t\t\tqueueConcurrency: 'Downloads Simultâneos',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Escolher Taxa de Bits',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Sobrescrever arquivos?',\r\n\t\t\t\ty: 'Sim, sobrescrever arquivos',\r\n\t\t\t\tn: 'Não, não sobrescrever arquivos',\r\n\t\t\t\tt: 'Sobrescrever apenas as tags'\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Taxa de bits reserva',\r\n\t\t\tfallbackSearch: 'Procurar reserva',\r\n\t\t\tlogErrors: 'Criar arquivos de log para erros',\r\n\t\t\tlogSearched: 'Criar arquivos de log para faixas pesquisadas',\r\n\t\t\tcreateM3U8File: 'Criar arquivo de playlist',\r\n\t\t\tsyncedLyrics: 'Criar arquivos .lyr (Letras)',\r\n\t\t\tplaylistFilenameTemplate: 'Template do nome do arquivo da playlist',\r\n\t\t\tsaveDownloadQueue: 'Salvar a fila de downloads quando fechar o app'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Capa dos álbuns',\r\n\t\t\tsaveArtwork: 'Salvar capas',\r\n\t\t\tcoverImageTemplate: 'Template do nome da capa',\r\n\t\t\tsaveArtworkArtist: 'Salvar imagem do artista',\r\n\t\t\tartistImageTemplate: 'Template da imagem do artista',\r\n\t\t\tlocalArtworkSize: 'Tamanho da capa local',\r\n\t\t\tembeddedArtworkSize: 'Tamanho da capa embutida',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'Qual o formato da imagem que você quer para a capa local?',\r\n\t\t\t\tjpg: '.jpeg',\r\n\t\t\t\tpng: '.png',\r\n\t\t\t\tboth: 'Ambas, .jpeg e .png'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'Qualidade da imagem JPEG'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Quais tags salvar',\r\n\t\t\ttitle: 'Título',\r\n\t\t\tartist: 'Artista',\r\n\t\t\talbum: 'Álbum',\r\n\t\t\tcover: 'Capa',\r\n\t\t\ttrackNumber: 'Número da Faixa',\r\n\t\t\ttrackTotal: 'Total de Faixas',\r\n\t\t\tdiscNumber: 'Número de Discos',\r\n\t\t\tdiscTotal: 'Total de Discos',\r\n\t\t\talbumArtist: 'Artista do Álbum',\r\n\t\t\tgenre: 'Gênero',\r\n\t\t\tyear: 'Ano',\r\n\t\t\tdate: 'Data',\r\n\t\t\texplicit: 'Letras Explícitas',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Tamanho da Faixa',\r\n\t\t\tbarcode: 'Código de Barras do álbum (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Replay Gain',\r\n\t\t\tlabel: 'Gravadora',\r\n\t\t\tlyrics: 'Letras Dessincronizadas',\r\n\t\t\tcopyright: 'Copyright',\r\n\t\t\tcomposer: 'Compositor',\r\n\t\t\tinvolvedPeople: 'Pessoas Envolvidas'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Outros',\r\n\t\t\tsavePlaylistAsCompilation: 'Salvar playlists como uma compilação',\r\n\t\t\tuseNullSeparator: 'Usar separador nulo',\r\n\t\t\tsaveID3v1: 'Salvar ID3v1',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Como você gostaria de separar os artistas?',\r\n\t\t\t\tnothing: 'Salvar apenas o artista principal',\r\n\t\t\t\tdefault: 'Usar a especificação padrão',\r\n\t\t\t\tandFeat: 'Usar & e feat.',\r\n\t\t\t\tusing: 'Usar \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'Salvar apenas o artista principal',\r\n\t\t\talbumVariousArtists: 'Manter \"Various Artists\" nos Artistas do Álbum',\r\n\t\t\tremoveAlbumVersion: 'Remover \"Album Version\" do título da faixa',\r\n\t\t\tremoveDuplicateArtists: 'Remover combinação de artistas',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Formato da data para arquivos FLAC',\r\n\t\t\t\tyear: 'AAAA',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'DD'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'O que devo fazer com artistas participantes?',\r\n\t\t\t\t0: 'Nada',\r\n\t\t\t\t1: 'Remova do título da faixa',\r\n\t\t\t\t3: 'Remova do título da faixa e do álbum',\r\n\t\t\t\t2: 'Mover para o título da faixa'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Formatação do título',\r\n\t\t\tartistCasing: 'Formatação do artista',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Manter inalterado',\r\n\t\t\t\tlower: 'minúsculo',\r\n\t\t\t\tupper: 'MAIÚSCULO',\r\n\t\t\t\tstart: 'Começo De Cada Palavra',\r\n\t\t\t\tsentence: 'Como uma frase'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Prévia do Volume',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Comando para executar depois de baixar',\r\n\t\t\t\tdescription: 'Deixe em branco para nenhuma ação'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Recursos do Spotify',\r\n\t\t\tclientID: 'Spotify clientID',\r\n\t\t\tclientSecret: 'Spotify Client Secret',\r\n\t\t\tusername: 'usuário do Spotify'\r\n\t\t},\r\n\t\treset: 'Restaurar para o padrão',\r\n\t\tsave: 'Salvar',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Configurações carregadas!',\r\n\t\t\tupdate: 'Configurações atualizadas!',\r\n\t\t\tARLcopied: 'ARL copiada para a área de transferência'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'início',\r\n\t\tsearch: 'pesquisa',\r\n\t\tcharts: 'charts',\r\n\t\tfavorites: 'favoritos',\r\n\t\tlinkAnalyzer: 'analizador de links',\r\n\t\tsettings: 'configurações',\r\n\t\tabout: 'sobre'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Baixar seleção'\r\n\t}\r\n}\r\n\r\nexport default pt_br\r\n","const ru = {\r\n\tglobals: {\r\n\t\twelcome: 'Добро пожаловать в deemix',\r\n\t\tback: 'назад',\r\n\t\tloading: 'загрузка',\r\n\t\tdownload: 'Скачать {thing}',\r\n\t\tby: '{artist}',\r\n\t\tin: 'из {album}',\r\n\t\tdownload_hint: 'Скачать',\r\n\t\tplay_hint: 'Прослушать',\r\n\t\ttoggle_download_tab_hint: 'Показать/Скрыть',\r\n\t\tclean_queue_hint: 'Очистить завершённые',\r\n\t\tcancel_queue_hint: 'Очистить всё',\r\n\t\topen_downloads_folder: 'Открыть папку с загрузками',\r\n\t\tcut: 'вырезать',\r\n\t\tcopy: 'копировать',\r\n\t\tcopyLink: 'копировать ссылку',\r\n\t\tcopyImageLink: 'копировать URL картинки',\r\n\t\tcopyDeezerLink: 'копировать ссылку deezer',\r\n\t\tpaste: 'вставить',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'все',\r\n\t\t\ttop_result: 'лучший результат',\r\n\t\t\talbum: 'альбом | альбомы | альбомы',\r\n\t\t\tartist: 'исполнитель | исполнители | исполнители',\r\n\t\t\tsingle: 'сингл | синглы | синглы',\r\n\t\t\ttitle: 'название',\r\n\t\t\ttrack: 'трек | треки | треки',\r\n\t\t\ttrackN: '{n} трек | {n} трека | {n} треков',\r\n\t\t\treleaseN: '{n} релиз | {n} релиза | {n} релизов',\r\n\t\t\tplaylist: 'плейлист | плейлисты | плейлисты',\r\n\t\t\tcompile: 'сплит | сплиты | сплиты',\r\n\t\t\tep: 'ep',\r\n\t\t\tbundle: 'бандл | бандлы | бандлы',\r\n\t\t\tmore: 'Больше альбомов',\r\n\t\t\tfeatured: 'Представлено в',\r\n\t\t\tspotifyPlaylist: 'плейлист spotify | плейлисты spotify | плейлисты spotify',\r\n\t\t\treleaseDate: 'Дата выхода',\r\n\t\t\terror: 'ошибка'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\tupdates: {\r\n\t\t\tcurrentVersion: 'Текущая версия',\r\n\t\t\tversionNotAvailable: 'Н/Д',\r\n\t\t\tupdateAvailable: `Вы используете не последнюю доступную версию: {version}`,\r\n\t\t\tdeemixVersion: 'Версия библиотеки deemix'\r\n\t\t},\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Полезные ссылки',\r\n\t\t\tbugReports: 'Отчёты об ошибках',\r\n\t\t\tcontributing: 'Помощь проекту',\r\n\t\t\tdonations: 'Пожертвования',\r\n\t\t\tlicense: 'Лицензия'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"Что-то не работает? Сообщите нам!\",\r\n\t\t\tcontributing: 'Хотите внести вклад в развитие этого проекта? Это можно сделать разными способами!',\r\n\t\t\tdonations: 'Хотите поддержать материально? Можно сделать пожертвование!'\r\n\t\t},\r\n\t\tusesLibrary: 'Приложение использует библиотеку <strong>deemix</strong>, с помощью которой вы можете разработать собственный UI для deemix.',\r\n\t\tthanks: `Спасибо <strong>rtonno</strong>, <strong>uhwot</strong> и <strong>lollilol</strong> за помощь с этим проектом, а также <strong>BasCurtiz</strong> и <strong>scarvimane</strong> за иконку.`,\r\n\t\tupToDate: `Следите за последними обновлениями на <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">канале</a> в Telegram.`,\r\n\t\tofficialWebsite: 'Официальный сайт',\r\n\t\tofficialRepo: 'Официальный репозиторий библиотеки',\r\n\t\tofficialWebuiRepo: 'Официальный репозиторий WebUI',\r\n\t\tofficialSubreddit: 'Официальный сабреддит',\r\n\t\tnewsChannel: 'Канал новостей',\r\n\t\tquestions: `Если у вас возникли вопросы или проблемы с приложением, поищите решение на <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">сабреддите</a>. Если не нашли решение, можете создать новый пост и описать вашу проблему.`,\r\n\t\tbeforeReporting: `Перед тем, как сообщать об ошибках, убедитесь, что вы используете последнюю версию приложения и что проблема не на вашей стороне.`,\r\n\t\tbeSure: `Убедитесь, что ошибка возникает и на других устройствах. Также <strong>НЕ</strong> сообщайте об ошибке, если про неё уже известно.`,\r\n\t\tduplicateReports: 'Повторные сообщения об ошибках рассматриваться не будут.',\r\n\t\tdontOpenIssues: `<strong>НЕ</strong> используйте репозиторий для вопросов автору, для этого есть сабреддит.`,\r\n\t\tnewUI: `Если вы хорошо знаете python, то можете сделать новый UI для приложения с использованием базовой библиотеки или пофиксить в ней баги и сделать pull request в <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">репозитории</a>.`,\r\n\t\tacceptFeatures: `Можете предложить новые функции, но не слишком сложные, так как они будут добавлены в приложение, а не в саму библиотеку.`,\r\n\t\totherLanguages: `Если вы хорошо знаете другой язык программирования, можете портировать на нём deemix!`,\r\n\t\tunderstandingCode: `Не можете разобраться в коде? Свяжитесь с RemixDev в Telegram или на Reddit.`,\r\n\t\tcontributeWebUI: `Если вы знаете Vue.js (JavaScript), HTML или CSS, можете внести вклад в развитие <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: `Помните, что это <strong>бесплатное приложение</strong> и вам следует <strong>поддерживать понравившихся исполнителей</strong> прежде, чем поддерживать разработчиков.`,\r\n\t\tnotObligated: `Вы не обязаны делать пожертвования, я всё равно вас ценю!`,\r\n\t\tlincensedUnder: `Проект распространяется под лицензией\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">GNU General Public License 3.0</a>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Чарты',\r\n\t\tchangeCountry: 'Сменить страну',\r\n\t\tdownload: 'Скачать чарт'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Ошибки {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'URL не распознан',\r\n\t\t\tunsupportedURL: 'URL не поддерживается',\r\n\t\t\tISRCnotOnDeezer: 'ISRC данного трека недоступен на Deezer',\r\n\t\t\tnotYourPrivatePlaylist: \"Вы не можете скачивать чужие приватные плейлисты.\",\r\n\t\t\tspotifyDisabled: 'Неправильно настроены параметры Spotify.',\r\n\t\t\ttrackNotOnDeezer: 'Трек не найден на Deezer!',\r\n\t\t\talbumNotOnDeezer: 'Альбом не найден на Deezer!',\r\n\t\t\tnotOnDeezer: 'Трек недоступен на Deezer!',\r\n\t\t\tnotEncoded: 'Трек ещё не перекодирован!',\r\n\t\t\tnotEncodedNoAlternative: 'Трек не перекодирован, альтернатив не найдено!',\r\n\t\t\twrongBitrate: 'Данного трека нет в нужном битрейте.',\r\n\t\t\twrongBitrateNoAlternative: 'Данного трека нет в нужном битрейте. Альтернатив не найдено!',\r\n\t\t\tno360RA: 'Трек недоступен в формате Reality Audio 360.',\r\n\t\t\tnotAvailable: \"Трек недоступен на серверах Deezer!\",\r\n\t\t\tnotAvailableNoAlternative: \"Трек недоступен на серверах Deezer. Альтернатив не найдено!\",\r\n\t\t\tnoSpaceLeft: \"На устройстве не осталось свободного места!\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Избранное',\r\n\t\tnoPlaylists: 'Плейлисты не найдены',\r\n\t\tnoAlbums: 'Избранные альбомы не найдены',\r\n\t\tnoArtists: 'Избранные исполнители не найдены',\r\n\t\tnoTracks: 'Избранные треки не найдены'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Вам необходимо войти под своей учетной записью Deezer, прежде чем вы сможете скачивать.',\r\n\t\topenSettings: 'Открыть настройки',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Популярные плейлисты',\r\n\t\t\tpopularAlbums: 'Самые прослушиваемые альбомы'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'Используйте этот раздел, чтобы узнать информацию о ссылке, которую требуется скачать.',\r\n\t\tuseful: \"Этот раздел нужен, если вы хотите загрузить треки, недоступные в вашей стране, а также посмотреть, где они доступны.\",\r\n\t\tlinkNotSupported: 'Ссылка не поддерживается',\r\n\t\tlinkNotSupportedYet: 'Эта ссылка не поддерживается, попробуйте вставить другую.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Продолжительность',\r\n\t\t\tdiskNumber: 'Номер диска',\r\n\t\t\ttrackNumber: 'Номер трека',\r\n\t\t\treleaseDate: 'Дата выхода',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Издатель',\r\n\t\t\trecordType: 'Тип',\r\n\t\t\tgenres: 'Жанр',\r\n\t\t\ttracklist: 'Треклист'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Начните искать!',\r\n\t\tdescription: 'Здесь можно найти трек, альбом, исполнителя, плейлист... всё! Можно также вставить ссылку Deezer',\r\n\t\tfans: '{n} поклонников',\r\n\t\tnoResults: 'Нет результатов',\r\n\t\tnoResultsTrack: 'Треков не найдено',\r\n\t\tnoResultsAlbum: 'Альбомов не найдено',\r\n\t\tnoResultsArtist: 'Исполнителей не найдено',\r\n\t\tnoResultsPlaylist: 'Плейлистов не найдено'\r\n\t},\r\n\tsearchbar: 'Ищите, что хотите (или вставьте ссылку)',\r\n\tdownloads: 'загрузки',\r\n\ttoasts: {\r\n\t\trestoringQueue: 'Восстановление очереди загрузок...',\r\n\t\tqueueRestored: 'Очередь восстановлена!',\r\n\t\taddedToQueue: '{item} добавлено в очередь',\r\n\t\taddedMoreToQueue: '{n} загрузок добавлены в очередь',\r\n\t\talreadyInQueue: '{item} уже присутствует в очереди!',\r\n\t\tfinishDownload: 'Загрузка {item} завершена.',\r\n\t\tallDownloaded: 'Все загрузки завершены!',\r\n\t\trefreshFavs: 'Обновление завершено!',\r\n\t\tloggingIn: 'Вход...',\r\n\t\tloggedIn: 'Вход выполнен',\r\n\t\talreadyLogged: 'Вход уже выполнен',\r\n\t\tloginFailed: \"Вход не выполнен\",\r\n\t\tloggedOut: 'Вы вышли из аккаунта',\r\n\t\tcancellingCurrentItem: 'Отмена текущей загрузки.',\r\n\t\tcurrentItemCancelled: 'Отменено.',\r\n\t\tstartAddingArtist: 'Добавление альбомов {artist} в очередь',\r\n\t\tfinishAddingArtist: 'Альбомы {artist} добавлены в очередь',\r\n\t\tstartConvertingSpotifyPlaylist: 'Добавление плейлиста Spotify в очередь',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Spotify плейлист добавлен в очередь',\r\n\t\tloginNeededToDownload: 'Войдите в аккаунт, чтобы скачивать треки!'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Настройки',\r\n\t\tlanguages: 'Язык',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Вход',\r\n\t\t\tloggedIn: 'Вы вошли как {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'Как узнать свой ARL?',\r\n\t\t\t\tupdate: 'Обновить ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Выйти',\r\n\t\t\tlogin: 'Войти через deezer.com'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Внешний вид',\r\n\t\t\tslimDownloadTab: 'Компактная вкладка с загрузками'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Путь для сохранения'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Шаблоны',\r\n\t\t\ttracknameTemplate: 'Шаблон названия трека',\r\n\t\t\talbumTracknameTemplate: 'Шаблон названия трека альбома',\r\n\t\t\tplaylistTracknameTemplate: 'Шаблон названия трека плейлиста'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Папки',\r\n\t\t\tcreatePlaylistFolder: 'Создавать папки для плейлистов',\r\n\t\t\tplaylistNameTemplate: 'Название папки плейлиста',\r\n\t\t\tcreateArtistFolder: 'Создавать папки для исполнителя',\r\n\t\t\tartistNameTemplate: 'Название папки исполнителя',\r\n\t\t\tcreateAlbumFolder: 'Создавать папки для альбома',\r\n\t\t\talbumNameTemplate: 'Название папки альбома',\r\n\t\t\tcreateCDFolder: 'Создавать папки для CD',\r\n\t\t\tcreateStructurePlaylist: 'Создавать структуру папок для плейлистов',\r\n\t\t\tcreateSingleFolder: 'Создавать структуру папок для синглов'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Названия треков',\r\n\t\t\tpadTracks: 'Добавлять ноль к номерам треков (01, 02, ...)',\r\n\t\t\tpaddingSize: 'Кол-во цифр в номере',\r\n\t\t\tillegalCharacterReplacer: 'Замена для запрещённых в имени символов'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Загрузки',\r\n\t\t\tqueueConcurrency: 'Количество одновременных загрузок',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Предпочитаемый битрейт',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Нужно ли перезаписывать файлы?',\r\n\t\t\t\ty: 'Да, перезаписать файл',\r\n\t\t\t\tn: \"Нет, не перезаписывать\",\r\n\t\t\t\tt: 'Обновить только теги',\r\n\t\t\t\tb: 'Нет, оставить оба файла и добавить номер к дубликату',\r\n\t\t\t\te: \"Нет, вне зависимости от расширения\"\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Загружать с битрейтом ниже, если текущий недоступен',\r\n\t\t\tfallbackSearch: 'Искать похожий трек, если запрашиваемый недоступен',\r\n\t\t\tlogErrors: 'Сохранять логи ошибок',\r\n\t\t\tlogSearched: 'Сохранять лог истории поиска',\r\n\t\t\tcreateM3U8File: 'Создавать файлы плейлистов',\r\n\t\t\tsyncedLyrics: 'Создать .lyr файлы (синхронизированная лирика)',\r\n\t\t\tplaylistFilenameTemplate: 'Шаблон названия плейлиста',\r\n\t\t\tsaveDownloadQueue: 'Сохранять текущую очередь загрузок при закрытии приложения'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Обложки',\r\n\t\t\tsaveArtwork: 'Сохранять файл обложки',\r\n\t\t\tcoverImageTemplate: 'Шаблон названия обложки',\r\n\t\t\tsaveArtworkArtist: 'Сохранять файл изображения исполнителя',\r\n\t\t\tartistImageTemplate: 'Шаблон названия изображения',\r\n\t\t\tlocalArtworkSize: 'Размер сохраненной обложки',\r\n\t\t\tembeddedArtworkSize: 'Размер встроенной в теги обложки',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'В каком формате сохранять обложки?',\r\n\t\t\t\tjpg: 'jpeg',\r\n\t\t\t\tpng: 'png',\r\n\t\t\t\tboth: 'jpeg и png'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'Качество JPEG',\r\n\t\t\tembeddedArtworkPNG: 'Сохранять вложенную обложку в PNG',\r\n\t\t\tembeddedPNGWarning: 'PNG официально не поддерживается в Deezer. Могут быть баги',\r\n\t\t\timageSizeWarning: 'Обложки с разрешением выше x1200 не поддерживаются в Deezer. Могут быть проблемы'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Какие теги сохранять',\r\n\t\t\ttitle: 'Название',\r\n\t\t\tartist: 'Исполнитель',\r\n\t\t\talbum: 'Альбом',\r\n\t\t\tcover: 'Обложка',\r\n\t\t\ttrackNumber: 'Номер трека',\r\n\t\t\ttrackTotal: 'Кол-во треков',\r\n\t\t\tdiscNumber: 'Номер диска',\r\n\t\t\tdiscTotal: 'Кол-во дисков',\r\n\t\t\talbumArtist: 'Исполнитель альбома',\r\n\t\t\tgenre: 'Жанр',\r\n\t\t\tyear: 'Год',\r\n\t\t\tdate: 'Дата',\r\n\t\t\texplicit: 'Метка о нецензурной лексике',\r\n\t\t\tisrc: 'Номер записи (ISRC)',\r\n\t\t\tlength: 'Продолжительность',\r\n\t\t\tbarcode: 'Уникальный код альбома (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Replay Gain',\r\n\t\t\tlabel: 'Издатель',\r\n\t\t\tlyrics: 'Текст песни',\r\n\t\t\tsyncedLyrics: 'Синхрон. текст песни',\r\n\t\t\tcopyright: 'Права (копирайт)',\r\n\t\t\tcomposer: 'Композитор',\r\n\t\t\tinvolvedPeople: 'Вовлечённые люди'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Разное',\r\n\t\t\tsavePlaylistAsCompilation: 'Сохранять плейлисты как сборники',\r\n\t\t\tuseNullSeparator: 'Использовать null в качестве разделителя',\r\n\t\t\tsaveID3v1: 'Сохранять ID3v1',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Как разделять несколько исполнителей?',\r\n\t\t\t\tnothing: 'Сохранить только основного',\r\n\t\t\t\tdefault: 'Используя стандартную спецификацию',\r\n\t\t\t\tandFeat: 'Используя & и feat.',\r\n\t\t\t\tusing: 'Используя \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'Сохранить только основного исполнителя альбома',\r\n\t\t\talbumVariousArtists: 'Оставить \"Various Artists\" в исполнителях альбома',\r\n\t\t\tremoveAlbumVersion: 'Удалить \"Album Version\" из названия трека',\r\n\t\t\tremoveDuplicateArtists: 'Удалить повторяющихся исполнителей',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Формат даты для FLAC файлов',\r\n\t\t\t\tyear: 'ГГГГ',\r\n\t\t\t\tmonth: 'ММ',\r\n\t\t\t\tday: 'ДД'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'Что делать с приглашёнными исполнителями (feat.)?',\r\n\t\t\t\t0: 'Ничего',\r\n\t\t\t\t1: 'Удалить из названия трека',\r\n\t\t\t\t3: 'Удалить из названия трека и альбома',\r\n\t\t\t\t2: 'Добавить в название трека'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Регистр названия',\r\n\t\t\tartistCasing: 'Регистр исполнителя',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Не менять',\r\n\t\t\t\tlower: 'в нижнем регистре',\r\n\t\t\t\tupper: 'В ВЕРХНЕМ РЕГИСТРЕ',\r\n\t\t\t\tstart: 'Каждое Слово С Заглавной Буквы',\r\n\t\t\t\tsentence: 'Как в предложении'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Громкость прослушивания',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Выполнять команды по окончании загрузок',\r\n\t\t\t\tdescription: 'Оставьте пустым, если ничего не требуется'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Настройки Spotify',\r\n\t\t\tclientID: 'Spotify clientID',\r\n\t\t\tclientSecret: 'Spotify Client Secret',\r\n\t\t\tusername: 'Spotify username',\r\n\t\t\tquestion: 'Как включить функции Spotify?'\r\n\t\t},\r\n\t\treset: 'По умолчанию',\r\n\t\tsave: 'Сохранить',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Настройки загружены!',\r\n\t\t\tupdate: 'Настройки обновлены!',\r\n\t\t\tARLcopied: 'ARL скопирован в буфер обмена'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'главная',\r\n\t\tsearch: 'поиск',\r\n\t\tcharts: 'чарты',\r\n\t\tfavorites: 'избранное',\r\n\t\tlinkAnalyzer: 'анализ ссылок',\r\n\t\tsettings: 'настройки',\r\n\t\tabout: 'о проекте'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Скачать выбранные'\r\n\t}\r\n}\r\n\r\nexport default ru\r\n","const tr = {\r\n\tglobals: {\r\n\t\twelcome: `Deemix'e hoş geldin.`,\r\n\t\tback: `geri`,\r\n\t\tloading: `yükleniyor`,\r\n\t\tdownload: 'İndir {thing}',\r\n\t\tby: '{artist} tarafından',\r\n\t\tin: '{album} içinde',\r\n\t\tdownload_hint: 'İndir',\r\n\t\tplay_hint: 'Oynat',\r\n\t\ttoggle_download_tab_hint: 'Genişlet/Daralt',\r\n\t\tclean_queue_hint: 'Tamamlananları Temizle',\r\n\t\tcancel_queue_hint: 'Hepsini ',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'Tümü',\r\n\t\t\ttop_result: 'top result',\r\n\t\t\talbum: 'albüm | albümler',\r\n\t\t\tartist: 'sanatçı | sanatçılar',\r\n\t\t\tsingle: 'single | singlelar',\r\n\t\t\ttitle: 'başlık | başlıklar',\r\n\t\t\ttrack: 'Parça | Parçalar',\r\n\t\t\ttrackN: '0 parça | {n} parça | {n} parça',\r\n\t\t\treleaseN: '0 yayınlanan | {n} yayınlanan | {n} yayınlanan',\r\n\t\t\tplaylist: 'oynatma listesi | oynatma listeleri',\r\n\t\t\tcompile: 'derleme | derlemeler',\r\n\t\t\tep: 'kayıt | kayıtlar',\r\n\t\t\tspotifyPlaylist: 'spotify oynatma listesi | oynatma listeleri',\r\n\t\t\treleaseDate: 'yayınlanma tarihi',\r\n\t\t\terror: 'hata'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Yararlı Bağlantılar',\r\n\t\t\tbugReports: 'Hata Raporları',\r\n\t\t\tcontributing: 'Katkı Sağlayanlar',\r\n\t\t\tdonations: 'Bağışlar',\r\n\t\t\tlicense: 'Lisans'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"Deemix'te çalışmayan bir şey mi var?, Bize bildirin!\",\r\n\t\t\tcontributing: 'Projeye katkı sağlamak mı istiyorsun? Farklı yollardan sağlayabilirsin!',\r\n\t\t\tdonations: 'Bütçe yardımı mı yapmak istiyorsun? Bağış yapabilirsin!'\r\n\t\t},\r\n\t\tusesLibrary:\r\n\t\t\t'<strong>deemix</strong> kendi kullanıcı arabiriminizi oluşturabileceğiniz, kendine özgü kütüphanesini kullanıyor.',\r\n\t\tthanks: ` <strong>rtonno</strong>, <strong>uhwot</strong> ve <strong>lollilol</strong>'a bu projeye yaptığı katkılardan ve <strong>BasCurtiz</strong> ile <strong>scarvimane</strong>'e ikonlardan dolayı teşekkür ederim.`,\r\n\t\tupToDate: `Telegramdaki haber kanalını takip ederek <a href=\"https://t.me/RemixDevNews\" target=\"_blank\"></a>güncellemelerden haberdar olun.`,\r\n\t\tofficialWebsite: 'İlgili İnternet Sitemiz',\r\n\t\tofficialRepo: 'İlgili Kütüphanemiz',\r\n\t\tofficialWebuiRepo: 'İlgili Web Kullanıcı Arayüzü Kütüphanemiz.',\r\n\t\tofficialSubreddit: 'İlgili Subreddit adresimiz',\r\n\t\tnewsChannel: 'Haber Kanalı',\r\n\t\tquestions: `Eğer uygulama ile ilgili sorularınız veya bir probleminiz varsa,ilk önce <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit adresinden </a> sorununuzu arayın. Eğer bir şey bulamazsanız, sorununuz ile ilgili bir gönderi paylaşabilirsiniz.`,\r\n\t\tbeforeReporting: `Bir hatayı bildirmeden önce, uygulamanın son sürümünde olduğunuza veya sorunun sizden kaynaklı olmayıp bir hata olduğuna emin olduktan sonra emin olun.`,\r\n\t\tbeSure: `Hatanın başka cihazlarda da olduğunu doğrulayın ve <strong>Bildirilen</strong> bir hatayı tekrar bildirmeyin.`,\r\n\t\tduplicateReports: 'Birbirinin aynısı olan hata bildirileri kapatılacaktır, o yüzden dikkatli olun.',\r\n\t\tdontOpenIssues: `<strong>Soru sormak</strong> için hata bildirisi yollamayın, bunun için bir subreddit adresimiz var.`,\r\n\t\tnewUI: `Eğer Phython kullanmakta iyiysen, ana kütüphaneyi kullanan bir kullanıcı arayüzü yapmayı deneyebilir, veya kütüphanedeki hataları düzeltmek için <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">deposuna değişiklik isteği yollayabilirsin.</a>.`,\r\n\t\tacceptFeatures: `Yeni özellikleri de kabul ediyorum, fakat karışık şeyleri kütüphaneye değil uygulamaya eklendiği için kabul edemiyorum.`,\r\n\t\totherLanguages: `Eğer diğer programlama dillerinde kendine güveniyorsan, deemix'i farklı dillere port etmeye çalışabilirsin!`,\r\n\t\tunderstandingCode: `Kodu anlamak için yardım mı lazım? Reddit üzerinden veya Telegramdan RemixDev'e ulaş.`,\r\n\t\tcontributeWebUI: `Eğer Vue.js (JavaScript), HTML veya CSS biliyorsan, <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">Web Kullanıcı Arayüzüne katkıda bulanabilirsin</a>.`,\r\n\t\titsFree: `Bunun <strong>ücretsiz bir proje olduğunu</strong> ve <strong>geliştiricilerden önce</strong> sevdiğiniz sanatçıları desteklemeniz gerektiğini unutmayın.`,\r\n\t\tnotObligated: `Kendinizi bağış yapmak zorunda hissetmeyin!, Sizi her halinizle seviyorum!`,\r\n\t\tlincensedUnder: `Bu çalışma lisanslıdır:\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\"\r\n\t\t\t\t>GNU General Public License 3.0</a\r\n\t\t\t>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Grafikler',\r\n\t\tchangeCountry: 'Ülke Değiştir',\r\n\t\tdownload: 'Grafiği İndir'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: '{name} Hatalı bulundu',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'URL geçersiz.',\r\n\t\t\tunsupportedURL: 'URL şimdilik desteklenmiyor',\r\n\t\t\tISRCnotOnDeezer: 'ISRC parça deezerda bulunmuyor',\r\n\t\t\tnotYourPrivatePlaylist: 'Başkalarının özel oynatma listelerini indiremezsin.',\r\n\t\t\tspotifyDisabled: 'Spotify Özellikleri doğru şekilde ayarlanmamış.',\r\n\t\t\ttrackNotOnDeezer: `Parça Deezer'da bulunamadı!`,\r\n\t\t\talbumNotOnDeezer: `Albüm Deezer'da bulunamadı!`,\r\n\t\t\tnotOnDeezer: `Parça Deezer'da yok!`,\r\n\t\t\tnotEncoded: `Parça henüz dönüştürülmedi!`,\r\n\t\t\tnotEncodedNoAlternative: 'Parça henüz dönüştürülmedi ve alternatifi bulunamadı!',\r\n\t\t\twrongBitrate: 'Parça, istenen kalitede bulunamadı!',\r\n\t\t\twrongBitrateNoAlternative: 'Parça veya alternatifler istenen kalitede bulunamadı!',\r\n\t\t\tno360RA: 'Parça 360 Derece gerçekçi ses olarak bulunamadı!',\r\n\t\t\tnotAvailable: 'Parça Deezer sunucularında bulunamadı!',\r\n\t\t\tnotAvailableNoAlternative: 'Parça veya Alternatifleri Deezer sunucularında bulunamadı.!'\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Favoriler',\r\n\t\tnoPlaylists: 'Oynatma listesi bulunamadı.',\r\n\t\tnoAlbums: 'Favori albümler bulunamadı.',\r\n\t\tnoArtists: 'Favori sanatçılar bulunamadı.',\r\n\t\tnoTracks: 'Favori parçalar bulunamadı.'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'İndirmeden önce Deezer hesabına giriş yapmalısın.',\r\n\t\topenSettings: 'Ayarları Aç',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Popüler Oynatma Listeleri',\r\n\t\t\tpopularAlbums: 'En çok dinlenen albümler'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'İndirmeye çalıştığın link hakkında daha fazla bilgi için burayı kullanabilirsin.',\r\n\t\tuseful: 'Mesela, ülkende dinlenebilir olmayan parçaların nerelerde var olduğunu bulmak için kullanabilirsin.',\r\n\t\tlinkNotSupported: 'Bu link şimdilik desteklenmemektedir.',\r\n\t\tlinkNotSupportedYet: 'Bu link şimdilik desteklenmiyor gibi duruyor, başkasını analiz etmeyi dene.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Süre',\r\n\t\t\tdiskNumber: 'Sıra numarası',\r\n\t\t\ttrackNumber: 'Parça numarası',\r\n\t\t\treleaseDate: 'Yayınlanma tarihi',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Etiketi',\r\n\t\t\trecordType: 'Kayıt Şekli',\r\n\t\t\tgenres: 'Türü',\r\n\t\t\ttracklist: 'Parça listesi'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Aramayı Başlat!',\r\n\t\tdescription:\r\n\t\t\t'Bir parçayı, tüm albümü, bir sanatçıyı, bir oynatma listesini... kısaca her şeyi aratabilirsin! Ayrıca Deezer Linki de yapıştırabilirsin!',\r\n\t\tfans: '{n} Hayranlar',\r\n\t\tnoResults: 'Sonuç Bulunamadı',\r\n\t\tnoResultsTrack: 'Parça bulunamadı',\r\n\t\tnoResultsAlbum: 'Albüm bulunamadı',\r\n\t\tnoResultsArtist: 'Sanatçı bulunamadı',\r\n\t\tnoResultsPlaylist: 'Oynatma Listesi bulunamadı'\r\n\t},\r\n\tsearchbar: 'İstediğin bir şeyi arat (ya da bir link yapıştır.)',\r\n\tdownloads: 'İndirilenler',\r\n\ttoasts: {\r\n\t\taddedToQueue: '{item} kuyruğa eklendi',\r\n\t\talreadyInQueue: '{item} çoktan kuyrukta!',\r\n\t\tfinishDownload: '{item} indirmesi tamamlandı.',\r\n\t\tallDownloaded: 'Tüm indirmeler tamamlandı!',\r\n\t\trefreshFavs: 'Yenileme tamamlandı.!',\r\n\t\tloggingIn: 'Giriş yapılıyor',\r\n\t\tloggedIn: 'Giriş yapıldı',\r\n\t\talreadyLogged: 'Çoktan giriş yapıldı',\r\n\t\tloginFailed: 'Giriş yapılamadı',\r\n\t\tloggedOut: 'Oturum kapatıldı.',\r\n\t\tcancellingCurrentItem: 'Geçerli öğe iptal ediliyor.',\r\n\t\tcurrentItemCancelled: 'Geçerli öğe iptal edildi.',\r\n\t\tstartAddingArtist: '{artist} albüm kuyruğa ekleniyor',\r\n\t\tfinishAddingArtist: '{artist} albüm kuyruğa eklendi.',\r\n\t\tstartConvertingSpotifyPlaylist: 'Spotify parçaları deezer parçalarına dönüştürülüyor.',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Spotify oynatma listesi dönüştürüldü.'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Ayarlar',\r\n\t\tlanguages: 'Diller',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Giriş',\r\n\t\t\tloggedIn: '{username} olarak giriş yaptın.',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: `Kendi ARL'mi nasıl alırım?`,\r\n\t\t\t\tupdate: 'ARL güncelle.'\r\n\t\t\t},\r\n\t\t\tlogout: 'Çıkış'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Görünüm',\r\n\t\t\tslimDownloadTab: 'İnce indirme sekmesi'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'İndirilen dizin'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Şablonlar',\r\n\t\t\ttracknameTemplate: 'Parça ismi şablonu',\r\n\t\t\talbumTracknameTemplate: 'Albüm parçası şablonu',\r\n\t\t\tplaylistTracknameTemplate: 'Oynatma listesi parça şablonu'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Dosyalar',\r\n\t\t\tcreatePlaylistFolder: 'Oynatma listesi için dosya oluştur',\r\n\t\t\tplaylistNameTemplate: 'Oynatma listesi dosyası şablonu',\r\n\t\t\tcreateArtistFolder: 'Sanatçı için dosya oluştur',\r\n\t\t\tartistNameTemplate: 'Sanatçı dosyası şablonu',\r\n\t\t\tcreateAlbumFolder: 'Albüm için dosya oluştur',\r\n\t\t\talbumNameTemplate: 'Albüm dosyası şablonu',\r\n\t\t\tcreateCDFolder: 'CDler için dosya oluştur',\r\n\t\t\tcreateStructurePlaylist: 'Oynatma listeleri için dosya kökü oluştur',\r\n\t\t\tcreateSingleFolder: 'Singlelar için dosya kökü oluştur'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Parça başlıkları',\r\n\t\t\tpadTracks: 'İz Numaraları',\r\n\t\t\tpaddingSize: 'İz Numaralarını değiştir',\r\n\t\t\tillegalCharacterReplacer: 'Illegal Karakter Düzenleyici'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'İndirilenler',\r\n\t\t\tqueueConcurrency: 'Devam eden indirmeler',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Tercih edilmiş Bitrateler (kaliteler)',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Dosyaların üstüne yazmalı mıyım?',\r\n\t\t\t\ty: 'Evet, üstüne yaz',\r\n\t\t\t\tn: 'Hayır, üstüne yazma',\r\n\t\t\t\tt: 'Sadece izleri üstüne yaz'\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Bitrate düşürme',\r\n\t\t\tfallbackSearch: 'Düşürme ara',\r\n\t\t\tlogErrors: 'Hatalar için günlük tut',\r\n\t\t\tlogSearched: 'Aranmış parçalar için günlük tut',\r\n\t\t\tcreateM3U8File: 'Oynatma sıra listesi oluştur',\r\n\t\t\tsyncedLyrics: '.lyr dosyaları oluştur (Senkronize şarkı sözleri)',\r\n\t\t\tplaylistFilenameTemplate: 'Oynatma listesi şablonu',\r\n\t\t\tsaveDownloadQueue: 'Uygulamayı kapatırken indirme kuyruğunu kaydet'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Albüm kapakları',\r\n\t\t\tsaveArtwork: 'Kapakları kaydet',\r\n\t\t\tcoverImageTemplate: 'Kapak ismi şablonu',\r\n\t\t\tsaveArtworkArtist: 'Sanatçı fotoğrafını kaydet',\r\n\t\t\tartistImageTemplate: 'Şarkıcı fotoğraf şablonu',\r\n\t\t\tlocalArtworkSize: 'Yerel fotoğraf boyutu',\r\n\t\t\tembeddedArtworkSize: 'Gömülü fotoğraf boyutu',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'Yerel fotoğrafın hangi formatta olmasını istersin?',\r\n\t\t\t\tjpg: 'Jpeg dosyası',\r\n\t\t\t\tpng: 'Png dosyası',\r\n\t\t\t\tboth: 'Her ikisi'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'JPEG görüntü kalitesi'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Hangi izler kayıt edilsin?',\r\n\t\t\ttitle: 'Başlık',\r\n\t\t\tartist: 'Sanatçı',\r\n\t\t\talbum: 'Albüm',\r\n\t\t\tcover: 'Kapak',\r\n\t\t\ttrackNumber: 'Parça Numarası',\r\n\t\t\ttrackTotal: 'Tüm Parça',\r\n\t\t\tdiscNumber: 'Plak Sayısı',\r\n\t\t\tdiscTotal: 'Tüm Plak',\r\n\t\t\talbumArtist: 'Sanatçı Albümü',\r\n\t\t\tgenre: 'Tür',\r\n\t\t\tyear: 'Yıl',\r\n\t\t\tdate: 'Tarih',\r\n\t\t\texplicit: 'Cinsel içerikli şarkı sözleri',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Parça Uzunluğu',\r\n\t\t\tbarcode: 'Albüm Barkodu (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Ses Yüksekliği Normalleştirici',\r\n\t\t\tlabel: 'Albüm Etiketi',\r\n\t\t\tlyrics: 'Senkronize edilmemiş şarkı sözleri',\r\n\t\t\tcopyright: 'Telif hakkı',\r\n\t\t\tcomposer: 'Besteleyen',\r\n\t\t\tinvolvedPeople: 'Alakalı Kişiler'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Diğer',\r\n\t\t\tsavePlaylistAsCompilation: 'Oynatma listelerini derleme olarak kaydet',\r\n\t\t\tuseNullSeparator: 'Boşluk ayırıcı kullan',\r\n\t\t\tsaveID3v1: 'ID3v1 dosyasını da kaydet',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Sanatçılarınızı nasıl ayırmak istersiniz?',\r\n\t\t\t\tnothing: 'Sadece ana sanatçıyı kaydet',\r\n\t\t\t\tdefault: 'Genel prosedür uygulansın',\r\n\t\t\t\tandFeat: 'Kullanılanlar & ve Feat.',\r\n\t\t\t\tusing: 'Kullanılan \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'Sadece ana albüm sanatçısını kaydet',\r\n\t\t\talbumVariousArtists: '\"Çeşitli sanatçılar\"ı sanatçı albümlerinde tut',\r\n\t\t\tremoveAlbumVersion: '\"Albüm Sürümü\"nü parça başlığından çıkart',\r\n\t\t\tremoveDuplicateArtists: 'Sanatçı topluluğunu çıkart',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'FLAC dosyalar için zaman formatı',\r\n\t\t\t\tyear: 'YYYY',\r\n\t\t\t\tmonth: 'AA',\r\n\t\t\t\tday: 'GG'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'Öne çıkan sanatçıları ne yapmalıyım?',\r\n\t\t\t\t0: 'Elleme',\r\n\t\t\t\t1: 'Başlıktan çıkart',\r\n\t\t\t\t3: 'Başlıktan ve albüm başlığından çıkart',\r\n\t\t\t\t2: 'Başlığa taşı'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Albüm harfi',\r\n\t\t\tartistCasing: 'Sanatçı harfi',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Değiştirmeden bırak',\r\n\t\t\t\tlower: 'küçük harf',\r\n\t\t\t\tupper: 'BÜYÜK HARF',\r\n\t\t\t\tstart: 'Kelimenin başı ile başla',\r\n\t\t\t\tsentence: 'Cümle gibi yap'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Ses önizlemesi',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'İndirdikten sonra komut uygula',\r\n\t\t\t\tdescription: 'Bir şey yapmamak için boş bırak'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Spotify Özelliği',\r\n\t\t\tclientID: 'Spotify clientID',\r\n\t\t\tclientSecret: 'Spotify Client Secret',\r\n\t\t\tusername: 'Spotify Kullanıcı Adı'\r\n\t\t},\r\n\t\treset: 'Varsayılana sıfırla',\r\n\t\tsave: 'Kaydet',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Ayarlar yüklendi!',\r\n\t\t\tupdate: 'Ayarlar güncellendi!',\r\n\t\t\tARLcopied: 'ARL panoya kopyalandı!'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'Ana sayfa',\r\n\t\tsearch: 'Ara',\r\n\t\tcharts: 'Grafikler',\r\n\t\tfavorites: 'Favoriler',\r\n\t\tlinkAnalyzer: 'Link Analizörü',\r\n\t\tsettings: 'Ayarlar',\r\n\t\tabout: 'Hakkında'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'İndirme bölümü'\r\n\t}\r\n}\r\n\r\nexport default tr\r\n","const vn = {\r\n\tglobals: {\r\n\t\twelcome: 'Chào mừng đến với deemix',\r\n\t\tback: 'trở lại',\r\n\t\tloading: 'đang tải',\r\n\t\tdownload: 'Tải xuống {thing}',\r\n\t\tby: 'bởi {artist}',\r\n\t\tin: 'trong {album}',\r\n\t\tdownload_hint: 'Tải xuống',\r\n\t\tplay_hint: 'Phát',\r\n\t\ttoggle_download_tab_hint: 'Mở rộng/Giấu',\r\n\t\tclean_queue_hint: 'Xóa những file đã tải xong',\r\n\t\tcancel_queue_hint: 'Hủy tất cả',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'tất cả',\r\n\t\t\ttop_result: 'kết quả hàng đầu',\r\n\t\t\talbum: 'album | album',\r\n\t\t\tartist: 'Nghệ sĩ | Nghệ sĩ',\r\n\t\t\tsingle: 'đơn | đơn',\r\n\t\t\ttitle: 'tiêu đề | tiêu đề',\r\n\t\t\ttrack: 'Bài hát | Bài hát',\r\n\t\t\ttrackN: '0 Bài hát | {n} Bài hát | {n} Bài hát',\r\n\t\t\treleaseN: '0 sản phẩm | {n} sản phẩm | {n} sản phẩm',\r\n\t\t\tplaylist: 'playlist | playlist',\r\n\t\t\tcompile: 'tổng hợp | tổng hợp',\r\n\t\t\tep: 'ep | ep',\r\n\t\t\tspotifyPlaylist: 'playlist của spotify | playlist của spotify',\r\n\t\t\treleaseDate: 'ngày phát hành',\r\n\t\t\terror: 'lỗi'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Link hữu dụng',\r\n\t\t\tbugReports: 'Báo lỗi',\r\n\t\t\tcontributing: 'Đóng góp',\r\n\t\t\tdonations: 'Quyên góp',\r\n\t\t\tlicense: 'Bằng phép'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"Bạn thấy có gì đó không hoạt động trong deemix? Xin hãy báo với chúng tôi!\",\r\n\t\t\tcontributing: 'Bạn muốn đóng góp cho dự án này? Bạn có thể làm điều đó với nhiều cách khác nhau!',\r\n\t\t\tdonations: 'Bạn muốn ủng hộ kinh phí? Bạn có thể quyên góp tại đây!'\r\n\t\t},\r\n\t\tusesLibrary: 'Ứng dụng này sử dụng thư viện <strong>deemix</strong>, bạn có thể dùng nó để tạo một UI riêng cho deemix.',\r\n\t\tthanks: `Cảm ơn <strong>rtonno</strong>, <strong>uhwot</strong> và <strong>lollilol</strong> đã giúp tôi với dự án này và <strong>BasCurtiz</strong> và <strong>scarvimane</strong> với việc thiết kế biểu tượng.`,\r\n\t\tupToDate: `Cập nhật app bằng cách theo dõi <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">kênh tin tức</a> trên Telegram.`,\r\n\t\tofficialWebsite: 'Website chính thức',\r\n\t\tofficialRepo: 'Repo thư viện chính thức',\r\n\t\tofficialWebuiRepo: 'Repo WebUI chính thức',\r\n\t\tofficialSubreddit: 'Subreddit chính thức',\r\n\t\tnewsChannel: 'Kênh tin tức',\r\n\t\tquestions: `Nếu bạn có câu hỏi hoặc vấn đề về ứng dụng này, xin hãy tìm giải pháp trên <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a> trước. Sau đó, nếu bạn không tìm được gì thì bạn có thể tạo một bài đăng về vấn đề của bạn trên subreddit dó.`,\r\n\t\tbeforeReporting: `Trước khi báo lỗi hãy đảm bảo bạn đang sử dụng phiên bản mới nhất của ứng dụng và lỗi bạn đang gặp không phải là do bạn.`,\r\n\t\tbeSure: `Hãy đảm bảo là lỗi này vẫn có thể xảy ra trên các thiết bị khác và <strong>XIN ĐỪNG</strong> báo lỗi đã được báo rồi.`,\r\n\t\tduplicateReports: 'Những bản báo lỗi trùng nhau sẽ bị đóng, xin bạn hãy để ý điều này.',\r\n\t\tdontOpenIssues: `<strong>XIN ĐỪNG</strong> mở vấn đề để hỏi, bạn có thể dùng subreddit trên cho việc đó.`,\r\n\t\tnewUI: `Nếu bạn thành thạo với python bạn có thể tạo một UI mới bằng cách sử dụng thư viện gốc, hoặc sửa lỗi trong thư viện đó với một pull request trên <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repo này</a>.`,\r\n\t\tacceptFeatures: `Tôi có chấp nhận yêu cầu về tính năng mới nhưng không quá phức tạp bởi vì chúng có thể được triển khai trực tiếp vào ứng dụng thay vì vào thư viện.`,\r\n\t\totherLanguages: `Nếu bạn thành thạo với một ngôn ngữ khác, bạn có thể port deemix sang ngôn ngữ đó!`,\r\n\t\tunderstandingCode: `Bạn muốn hiểu code của deemix? Xin hãy liên lạc RemixDev trên Telegram hoặc Reddit.`,\r\n\t\tcontributeWebUI: `Nếu bạn biết Vue.js (JavaScript), HTML hoặc CSS, bạn có thể góp phần phát triển <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: `Bạn nên nhớ rằng <strong>đây là một dự án phi lợi nhuận</strong> và <strong>bạn nên ủng hộ những Nghệ sĩ yêu thích của bạn</strong> trước khi ủng hộ nhà phát triển.`,\r\n\t\tnotObligated: `Đừng nghĩ rằng bạn phải đóng góp tiền, tôi vẫn sẽ rất biết ơn bạn!`,\r\n\t\tlincensedUnder: `Dự án này được cấp phép bởi\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\"\r\n\t\t\t\t>GNU General Public License 3.0</a\r\n\t\t\t>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Bảng xếp hạng',\r\n\t\tchangeCountry: 'Thay đổi quốc gia',\r\n\t\tdownload: 'Tải xuống bảng xếp hạng này'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Lỗi {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'Không nhận diện được URL',\r\n\t\t\tunsupportedURL: 'URL này chưa được hỗ trợ',\r\n\t\t\tISRCnotOnDeezer: 'ISRC của bài hát này hiện không có trên Deezer',\r\n\t\t\tnotYourPrivatePlaylist: \"Bạn không thể tải xuống playlist riêng của người khác.\",\r\n\t\t\tspotifyDisabled: 'Chức năng Spotify chưa được thiết lập đúng cách.',\r\n\t\t\ttrackNotOnDeezer: 'Bài hát không có trên Deezer!',\r\n\t\t\talbumNotOnDeezer: 'Album không có trên Deezer!',\r\n\t\t\tnotOnDeezer: 'Bài hát chưa có trên Deezer!',\r\n\t\t\tnotEncoded: 'Bài hát chưa được encode!',\r\n\t\t\tnotEncodedNoAlternative: 'Bài hát chưa được encode và không có bản thay thế nào khác!',\r\n\t\t\twrongBitrate: 'Bài hát này không có ở bitrate bạn muốn.',\r\n\t\t\twrongBitrateNoAlternative: 'Bài hát này không có ở bitrate bạn muốn và không có bản thay thế nào khác!',\r\n\t\t\tno360RA: 'Bài hát này không có ở dạng Reality Audio 360.',\r\n\t\t\tnotAvailable: \"Bài hát này không có trên server của Deezer!\",\r\n\t\t\tnotAvailableNoAlternative: \"Bài hát này không có trên server của Deezer và không có bản thay thế nào khác!\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Yêu thích',\r\n\t\tnoPlaylists: 'Không tìm được Playlist',\r\n\t\tnoAlbums: 'Không tìm được Album Yêu thích',\r\n\t\tnoArtists: 'Không tìm được Nghệ sĩ Yêu thích',\r\n\t\tnoTracks: 'Không tìm được Bài hát Yêu thích'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Bạn cần phải đăng nhập vào tài khoản Deezer trước khi bắt đầu tải xuống.',\r\n\t\topenSettings: 'Mở Cài đặt',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Playlist Nổi tiếng',\r\n\t\t\tpopularAlbums: 'Album được stream nhiều nhất'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'Bạn có thể sử dụng chức năng này để kiếm thêm thông tin về đường link mà bạn muốn tải xuống.',\r\n\t\tuseful:\r\n\t\t\t\"Chức năng này rất hữu dụng nếu bạn muốn tải các bài hát hiện không có sẵn ở quốc gia của bạn và muốn biết các quốc gia được hỗ trợ.\",\r\n\t\tlinkNotSupported: 'Đường link này chưa được hỗ trợ',\r\n\t\tlinkNotSupportedYet: 'Đường link này chưa được hỗ trợ, xin hãy thử lại với một đường link khác.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Thời lượng',\r\n\t\t\tdiskNumber: 'Số đĩa',\r\n\t\t\ttrackNumber: 'Số bài hát',\r\n\t\t\treleaseDate: 'Ngày phát hành',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Hãng',\r\n\t\t\trecordType: 'Loại Thu âm',\r\n\t\t\tgenres: 'Thể loại',\r\n\t\t\ttracklist: 'Danh sách các bài hát'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Bắt đầu tìm kiếm!',\r\n\t\tdescription:\r\n\t\t\t'Bạn có thể tìm một bài hát, album, nghệ sĩ, playlist, v.v...! Bạn cũng có thể dùng link của Deezer',\r\n\t\tfans: '{n} người hâm mộ',\r\n\t\tnoResults: 'Không có kết quả',\r\n\t\tnoResultsTrack: 'Không tìm được bài hát nào',\r\n\t\tnoResultsAlbum: 'Không tìm được album nào',\r\n\t\tnoResultsArtist: 'Không tìm được nghệ sĩ nào',\r\n\t\tnoResultsPlaylist: 'Không tìm được playlist nào'\r\n\t},\r\n\tsearchbar: 'Tìm những gì bạn muốn (bạn cũng có thể sữ dụng một đường link)',\r\n\tdownloads: 'Tải xuống',\r\n\ttoasts: {\r\n\t\taddedToQueue: '{item} đã được đưa vào hàng chờ',\r\n\t\talreadyInQueue: '{item} đã đang trong hàng chờ!',\r\n\t\tfinishDownload: '{item} đã tải xong.',\r\n\t\tallDownloaded: 'Tất cả các bài hát đã được tải xuống!',\r\n\t\trefreshFavs: 'Tải lại hoàn tất!',\r\n\t\tloggingIn: 'Đang đăng nhập',\r\n\t\tloggedIn: 'Đăng nhập thành công',\r\n\t\talreadyLogged: 'Đã đăng nhập',\r\n\t\tloginFailed: \"Không thể đăng nhập\",\r\n\t\tloggedOut: 'Đăng xuất',\r\n\t\tcancellingCurrentItem: 'Đang hủy file hiện tại.',\r\n\t\tcurrentItemCancelled: 'File hiện tại đã bị hủy.',\r\n\t\tstartAddingArtist: 'Đang đưa {artist} album vào hàng chờ',\r\n\t\tfinishAddingArtist: 'Đã đưa {artist} album vào hàng chờ',\r\n\t\tstartConvertingSpotifyPlaylist: 'Đang chuyển đổi các bài hát từ Spotify sang Deezer',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Playlist của Spotify đã được chuyển đổi',\r\n\t\tloginNeededToDownload: 'Bạn cần phải đang nhập để tải nhạc!'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Cài đặt',\r\n\t\tlanguages: 'Ngôn ngữ',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Đăng nhập',\r\n\t\t\tloggedIn: 'Bạn đã đăng nhập với tên {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'Làm cách nào để có ARL của tôi?',\r\n\t\t\t\tupdate: 'Cập nhật ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Đăng xuất'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Giao diện',\r\n\t\t\tslimDownloadTab: 'Thanh tải xuống nhỏ'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Nơi tải xuống'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Bản mẫu',\r\n\t\t\ttracknameTemplate: 'Bài hát mẫu',\r\n\t\t\talbumTracknameTemplate: 'Bài hát trong album mẫu',\r\n\t\t\tplaylistTracknameTemplate: 'Bài hát trong playlist mẫu'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Thư mục',\r\n\t\t\tcreatePlaylistFolder: 'Tạo thư mục cho playlist',\r\n\t\t\tplaylistNameTemplate: 'Thư mục playlist mẫu',\r\n\t\t\tcreateArtistFolder: 'Tạo thư mục cho nghệ sĩ',\r\n\t\t\tartistNameTemplate: 'Thư mục Nghệ sĩ mẫu',\r\n\t\t\tcreateAlbumFolder: 'Tạo thư mục cho album',\r\n\t\t\talbumNameTemplate: 'Thư mục cho album mẫu',\r\n\t\t\tcreateCDFolder: 'Tạo thư mục cho đĩa CD',\r\n\t\t\tcreateStructurePlaylist: 'Tạo thư mục có kết cấu cho playlist',\r\n\t\t\tcreateSingleFolder: 'Tạo thư mục có kết cấu cho đĩa đơn'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Tên bài hát',\r\n\t\t\tpadTracks: 'Đệm tên bài hát',\r\n\t\t\tpaddingSize: 'Ghì đè kích cỡ phần đệm',\r\n\t\t\tillegalCharacterReplacer: 'Thay các kí tự không hợp lệ với'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Tải xuống',\r\n\t\t\tqueueConcurrency: 'Số lượng tải xuống cùng lúc',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Bitrate ưa thích',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Tôi có nên ghi đè file này không?',\r\n\t\t\t\ty: 'Có, hãy ghi đè file này',\r\n\t\t\t\tn: \"Không, đừng ghi đè file này\",\r\n\t\t\t\tt: 'Chỉ ghi đè các tag'\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Bitrate dự phòng',\r\n\t\t\tfallbackSearch: 'Search dự phòng',\r\n\t\t\tlogErrors: 'Tạo file log khi có lỗi',\r\n\t\t\tlogSearched: 'Tạo file log khi bạn tìm Bài hát',\r\n\t\t\tcreateM3U8File: 'Tạo file playlist',\r\n\t\t\tsyncedLyrics: 'Tạo file .lyr (Lời Bài hát)',\r\n\t\t\tplaylistFilenameTemplate: 'Tên playlist mẫu',\r\n\t\t\tsaveDownloadQueue: 'Lưu hàng chờ download khi đóng ứng dụng'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Bìa album',\r\n\t\t\tsaveArtwork: 'Lưu bìa',\r\n\t\t\tcoverImageTemplate: 'Tên bìa mẫu',\r\n\t\t\tsaveArtworkArtist: 'Lưu hình Nghệ sĩ',\r\n\t\t\tartistImageTemplate: 'Hình nghệ sĩ mẫu',\r\n\t\t\tlocalArtworkSize: 'Kích cỡ file bìa',\r\n\t\t\tembeddedArtworkSize: 'Kích cỡ bìa trong file bài hát',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'Bạn muốn file bìa ở định dạng nào?',\r\n\t\t\t\tjpg: 'jpg',\r\n\t\t\t\tpng: 'png',\r\n\t\t\t\tboth: 'Cả jpg và png'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'Chất lượng file JPEG'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Những tag sẽ được lưu',\r\n\t\t\ttitle: 'Tiêu đề',\r\n\t\t\tartist: 'Nghệ sĩ',\r\n\t\t\talbum: 'Album',\r\n\t\t\tcover: 'Bìa',\r\n\t\t\ttrackNumber: 'Số bài hát',\r\n\t\t\ttrackTotal: 'Tổng số bài hát',\r\n\t\t\tdiscNumber: 'Số đĩa',\r\n\t\t\tdiscTotal: 'Tổng số đĩa',\r\n\t\t\talbumArtist: 'Nghệ sĩ của album',\r\n\t\t\tgenre: 'Thể loại',\r\n\t\t\tyear: 'Năm',\r\n\t\t\tdate: 'Ngày',\r\n\t\t\texplicit: 'Lời explicit',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Thời lượng',\r\n\t\t\tbarcode: 'Mã vạch của album (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'ReplayGain',\r\n\t\t\tlabel: 'Nhãn hiệu album',\r\n\t\t\tlyrics: 'Lời',\r\n\t\t\tcopyright: 'Bản quyền',\r\n\t\t\tcomposer: 'Nhà soạn nhạc',\r\n\t\t\tinvolvedPeople: 'Những người liên quan'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Khác',\r\n\t\t\tsavePlaylistAsCompilation: 'Lưu playlist dưới dạng tuyển tập',\r\n\t\t\tuseNullSeparator: 'Dùng dải phân cách null',\r\n\t\t\tsaveID3v1: 'Lưu ID3v1',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Bạn muốn phân cách các nghệ sĩ như thế nào?',\r\n\t\t\t\tnothing: 'Chỉ lưu nghệ sĩ chính',\r\n\t\t\t\tdefault: 'Dùng quy cách tiêu chuẩn',\r\n\t\t\t\tandFeat: 'Dùng & và feat.',\r\n\t\t\t\tusing: 'Dùng \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'Chỉ lưu Nghệ sĩ Album chính',\r\n\t\t\talbumVariousArtists: 'Giữ nguyên \"Nhiều Nghệ sĩ\" trong Nghệ sĩ Album',\r\n\t\t\tremoveAlbumVersion: 'Bỏ \"Phiên bản Album\" khỏi tên bài hát',\r\n\t\t\tremoveDuplicateArtists: 'Bỏ các tên nghệ sĩ phối hợp',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Định dạng ngày cho file FLAC ',\r\n\t\t\t\tyear: 'YYYY',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'DD'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'Tôi nên làm gì với các nghệ sĩ đóng góp?',\r\n\t\t\t\t0: 'Không làm gì cả',\r\n\t\t\t\t1: 'Bỏ chúng khỏi tên bài hát',\r\n\t\t\t\t3: 'Bỏ chúng khỏi tên bài hát và tên album',\r\n\t\t\t\t2: 'Đưa chúng vào tên bài hát'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Định dạng tên bài hát',\r\n\t\t\tartistCasing: 'Định dạng tên nghệ sĩ',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Không đổi',\r\n\t\t\t\tlower: 'chữ thường',\r\n\t\t\t\tupper: 'CHỮ HOA',\r\n\t\t\t\tstart: 'Viết Hoa Ở Chữ Cái Đầu Tiên Của Mỗi Từ',\r\n\t\t\t\tsentence: 'Như một câu'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Âm lượng nghe thử',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Thực hiện những lệnh này khi đã tải xuống xong',\r\n\t\t\t\tdescription: 'Để trống nếu bạn không muốn thực hiện lệnh nào'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Chức năng Spotify',\r\n\t\t\tclientID: 'ClientID của Spotify',\r\n\t\t\tclientSecret: 'Client Secret của Spotify',\r\n\t\t\tusername: 'Tên tài khoản của Spotify'\r\n\t\t},\r\n\t\treset: 'Quay trở lại cài đặt mặc định',\r\n\t\tsave: 'Lưu',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Cài đặt đã được thiết lập!',\r\n\t\t\tupdate: 'Cài đặt cập nhật thành công!',\r\n\t\t\tARLcopied: 'ARL đã được sao chép vào clipboard'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'trang chủ',\r\n\t\tsearch: 'tìm kiếm',\r\n\t\tcharts: 'bảng xếp hạng',\r\n\t\tfavorites: 'yêu thích',\r\n\t\tlinkAnalyzer: 'phân tích link',\r\n\t\tsettings: 'cài đặt',\r\n\t\tabout: 'thông tin'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Tải xuống những mục đã chọn'\r\n\t}\r\n}\r\n\r\nexport default vn\r\n","const hr = {\r\n\tglobals: {\r\n\t\twelcome: 'Dobrodošli u deemix',\r\n\t\tback: 'nazad',\r\n\t\tloading: 'učitavanje',\r\n\t\tdownload: 'Preuzmi {thing}',\r\n\t\tby: 'by {artist}',\r\n\t\tin: 'u {album}',\r\n\t\tdownload_hint: 'Preuzmi',\r\n\t\tplay_hint: 'Play',\r\n\t\ttoggle_download_tab_hint: 'Proširi/Smanji',\r\n\t\tclean_queue_hint: 'Čišćenje završeno',\r\n\t\tcancel_queue_hint: 'Zaustavi sve',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'sve',\r\n\t\t\ttop_result: 'Najbolji rezultat',\r\n\t\t\talbum: 'album | albumi',\r\n\t\t\tartist: 'izvođač | izvođači',\r\n\t\t\tsingle: 'singl | singlovi',\r\n\t\t\ttitle: 'naslov | naslovi',\r\n\t\t\ttrack: 'pjesma | pjesme',\r\n\t\t\ttrackN: '0 pjesmi | {n} pjesma | {n} pjesme',\r\n\t\t\treleaseN: '0 izdanja | {n} izdanje | {n} izdanja',\r\n\t\t\tplaylist: 'playlista | playliste',\r\n\t\t\tcompile: 'kompilacija | kompilacije',\r\n\t\t\tep: 'ep | eps',\r\n\t\t\tspotifyPlaylist: 'spotify playlista | spotify playliste',\r\n\t\t\treleaseDate: 'datum izdavanja',\r\n\t\t\terror: 'greška'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Korisne poveznice',\r\n\t\t\tbugReports: 'Prijave grešaka',\r\n\t\t\tcontributing: 'Doprinosi',\r\n\t\t\tdonations: 'Donacije',\r\n\t\t\tlicense: 'Licenca'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"Postoji nešto što ne radi u deemixu? Reci nam!\",\r\n\t\t\tcontributing: 'Želiš doprinijeti ovom projektu? Možeš i to čak u više načina!',\r\n\t\t\tdonations: 'Želiš doprijeniti odmah? Možeš donirati!'\r\n\t\t},\r\n\t\tusesLibrary: 'Ova aplikacija koristi <strong>deemix</strong> biblioteku, koju možeš koristiti i ti kako bi napravio svoj UI za demix.',\r\n\t\tthanks: `Hvala <strong>rtonno</strong>, <strong>uhwot</strong> i <strong>lollilol</strong> što su mi pomogli s ovim projektom te <strong>BasCurtiz</strong> i <strong>scarvimane</strong> što su napravili ikonu.`,\r\n\t\tupToDate: `Ostani u tijeku s nadogradnjama prateći <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">kanal s novostima</a> na Telegramu.`,\r\n\t\tofficialWebsite: 'Službena web stranica',\r\n\t\tofficialRepo: 'Službeni repozitorij biblioteke',\r\n\t\tofficialWebuiRepo: 'Službeni WebUI repozitorij',\r\n\t\tofficialSubreddit: 'Službeni subreddit',\r\n\t\tnewsChannel: 'Kanal s novostima',\r\n\t\tquestions: `Ukoliko imate pitanja o aplikaciji, prvo potražite riješenje na <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a>. Tada, ako ne pronađete ništa, možete objaviti svoj problem na subredditu.`,\r\n\t\tbeforeReporting: `Prije prijavljivanja greške provjerite imate li instaliranu zadnju verziju aplikacije i da to što želite prijaviti je ustvari pogreška, a ne nešto što samo vama ne radi.`,\r\n\t\tbeSure: `Provjerite može li se pogreška reproducirati i na drugim uređajima i također <strong>NEMOJTE</strong> prijavljivati grešku ako je već prijavljena.`,\r\n\t\tduplicateReports: 'Duplicirane prijave o greški bit će zatvorene, tako da pripazite na to.',\r\n\t\tdontOpenIssues: `<strong>NEMOJTE</strong> otvarati issue za postavljanje pitanja, za to postoji subreddit.`,\r\n\t\tnewUI: `Ako ste vješti u pythonu možete probati napraviti novi UI za aplikaciju koristeći osnovnu biblioteku ili ispraviti pogrešku u biblioteci sa pull zahtjevom na <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repozitoriju</a>.`,\r\n\t\tacceptFeatures: `Prihavaćam i značajke, ali bez kompleksnih stvari, jer one mogu biti implementirane direktno u aplikaciji, a ne u biblioteci.`,\r\n\t\totherLanguages: `Ako ste vješti u drugom programskom jezikumožete probati portati deemix u drugi programski jezik!`,\r\n\t\tunderstandingCode: `Trebate pomoć s razumijevanjem koda? Samo potraži RemixDev na Telegramu ili Redditu.`,\r\n\t\tcontributeWebUI: `Ako znaš Vue.js (JavaScript), HTML ili CSS možete doprinijeti za <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: `Trebate zapamtiti da je ovo <strong>besplatni projekt</strong> i <strong>trebali biste podržati autore koje volite</strong> prije podržavanja developera.`,\r\n\t\tnotObligated: `Nemojte se osjećati obveznim darivati, svejedno vas cijenim!`,\r\n\t\tlincensedUnder: `Ovaj rad licenciran je unutar\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\"\r\n\t\t\t\t>GNU General Public License 3.0</a\r\n\t\t\t>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Ljestvice',\r\n\t\tchangeCountry: 'Promijeni državu',\r\n\t\tdownload: 'Preuzmi ljestvicu'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Greške za {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'URL nije prepoznat',\r\n\t\t\tunsupportedURL: 'URL još nije podržan',\r\n\t\t\tISRCnotOnDeezer: 'Zapis ISRC još nije podržan na Deezeru',\r\n\t\t\tnotYourPrivatePlaylist: \"Ne možete preuzeti tuđe privatne playliste.\",\r\n\t\t\tspotifyDisabled: 'Spotify značajke nisu podešene ispravno.',\r\n\t\t\ttrackNotOnDeezer: 'Pjesma nije pronađena na Deezeru!',\r\n\t\t\talbumNotOnDeezer: 'Album nije pronađen na Deezeru!',\r\n\t\t\tnotOnDeezer: 'Pjesma nije dostupna na Deezeru!',\r\n\t\t\tnotEncoded: 'Pjesma još nije enkodirana!',\r\n\t\t\tnotEncodedNoAlternative: 'Pjesma još nije enkodirana i nije pronađena alternativa!',\r\n\t\t\twrongBitrate: 'Pjesma nije pronađena u željenom bitrateu.',\r\n\t\t\twrongBitrateNoAlternative: 'Pjesma nije pronađena u željenom bitrateu i nije pronađena alternativa!',\r\n\t\t\tno360RA: 'Pjesma nije dostupna u Reality Audio 360.',\r\n\t\t\tnotAvailable: \"Pjesma nije dostupna na Deezerovim serverima!\",\r\n\t\t\tnotAvailableNoAlternative: \"Pjesma nije dostupna na Deezerovim serverima i alternativa nije pronađena!\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Favoriti',\r\n\t\tnoPlaylists: 'Nisu pronađene playliste',\r\n\t\tnoAlbums: 'Omiljeni albumi nisu pronađeni',\r\n\t\tnoArtists: 'Omiljeni glazbenici nisu pronađeni',\r\n\t\tnoTracks: 'Omiljene pjesme nisu pronađene'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Trebate se prijaviti sa svojim Deezer računom kako biste mogli početi preuzimati pjesme.',\r\n\t\topenSettings: 'Otvori postavke',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Popularne playliste',\r\n\t\t\tpopularAlbums: 'Najpreslušaniji album'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'Ovu sekciju možete koristiti kako biste saznali više informacija o linku koji pokušavate preuzeti.',\r\n\t\tuseful:\r\n\t\t\t\"Ovo je korisno ako pokušavate preuzeti pjesme koje još nisu dostupne u vašoj zemlji i želite, na primjer, znati gdje su dostupne.\",\r\n\t\tlinkNotSupported: 'Ovaj link još nije podržan',\r\n\t\tlinkNotSupportedYet: 'Čini se da ovaj link još nije podržan, pokušaj analizirati neki drugi.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Trajanje',\r\n\t\t\tdiskNumber: 'Broj diska',\r\n\t\t\ttrackNumber: 'Broj pjesme',\r\n\t\t\treleaseDate: 'Datum izadavanja',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Izdavačka kuća',\r\n\t\t\trecordType: 'Vrsta zapisa',\r\n\t\t\tgenres: 'Žanrovi',\r\n\t\t\ttracklist: 'Popis pjesama'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Počni pretraživati!',\r\n\t\tdescription:\r\n\t\t\t'Možete pretražiti pjesmu, cijeli album, izvođača, playlistu... sve! Također, možete i zalijepiti Deezer link',\r\n\t\tfans: '{n} obožavatelja',\r\n\t\tnoResults: 'Nema rezultata',\r\n\t\tnoResultsTrack: 'Pjesme nisu pronađene',\r\n\t\tnoResultsAlbum: 'Albumi nisu pronađeni',\r\n\t\tnoResultsArtist: 'Izvođači nisu pronađeni',\r\n\t\tnoResultsPlaylist: 'Playliste nisu pronađene'\r\n\t},\r\n\tsearchbar: 'Pretraži bilo što (ili samo zalijepi link)',\r\n\tdownloads: 'preuzimanja',\r\n\ttoasts: {\r\n\t\taddedToQueue: '{item} dodan u red',\r\n\t\talreadyInQueue: '{item} je već u redu!',\r\n\t\tfinishDownload: '{item} završeno preuzimanje.',\r\n\t\tallDownloaded: 'Sva preuzimanja završena!',\r\n\t\trefreshFavs: 'Osvježavanje završeno!',\r\n\t\tloggingIn: 'Prijavljivanje...',\r\n\t\tloggedIn: 'Prijavljeni',\r\n\t\talreadyLogged: 'Već prijavljeni',\r\n\t\tloginFailed: \"Prijava nije bila moguća\",\r\n\t\tloggedOut: 'Odjavljeni',\r\n\t\tcancellingCurrentItem: 'Otkazujem trenutnu stavku.',\r\n\t\tcurrentItemCancelled: 'Trenutna stavka otkazana.',\r\n\t\tstartAddingArtist: 'Dodajem {artist} album u red',\r\n\t\tfinishAddingArtist: 'Dodan {artist} album u red',\r\n\t\tstartConvertingSpotifyPlaylist: 'Pretvaram Spotify pjesme u Deezer pjesme',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Spotify playlista pretvorena',\r\n\t\tloginNeededToDownload: 'Trebate se prijaviti kako bi preuzeli pjesme!'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Postavke',\r\n\t\tlanguages: 'Jezici',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Prijava',\r\n\t\t\tloggedIn: 'Prijavljeni ste kao {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'Kako da dobijem svoj ARL?',\r\n\t\t\t\tupdate: 'Ažuriraj ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Odjavi se'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Izgled',\r\n\t\t\tslimDownloadTab: 'Tanka kartica za preuzimanje'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Putanja za preuzimanja'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Predlošci',\r\n\t\t\ttracknameTemplate: 'Naziv pjesme predložak',\r\n\t\t\talbumTracknameTemplate: 'Pjesma albuma predložak',\r\n\t\t\tplaylistTracknameTemplate: 'Pjesma playliste predložak'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Mape',\r\n\t\t\tcreatePlaylistFolder: 'Izradi mapu za playliste',\r\n\t\t\tplaylistNameTemplate: 'Mapa za playliste predložak',\r\n\t\t\tcreateArtistFolder: 'Izradi mapu za izvođača',\r\n\t\t\tartistNameTemplate: 'Izvođač mapa predložak',\r\n\t\t\tcreateAlbumFolder: 'Izradi mapu za album',\r\n\t\t\talbumNameTemplate: 'Album mapa predložak',\r\n\t\t\tcreateCDFolder: 'Izradi mapu za CD',\r\n\t\t\tcreateStructurePlaylist: 'Strkturiraj mape za playliste',\r\n\t\t\tcreateSingleFolder: 'Strukturiraj mape za singlove'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Naslovi pjesama',\r\n\t\t\tpadTracks: 'Pad tracks',\r\n\t\t\tpaddingSize: 'Prepiši veličinu paddinga',\r\n\t\t\tillegalCharacterReplacer: 'Zamjena za nedozvoljeni znak'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Preuzimanja',\r\n\t\t\tqueueConcurrency: 'Istovremena preuzimanja',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Željeni bitrate',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Trebam li prepisati datoteke?',\r\n\t\t\t\ty: 'Da, prepiši datoteke',\r\n\t\t\t\tn: \"Ne, nemoj prepisati datoteke\",\r\n\t\t\t\tt: 'Prepiši samo oznake',\r\n\t\t\t\tb: 'Ne, zadrži obje datoteke i dodaj broj duplikatu'\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Bitrate fallback',\r\n\t\t\tfallbackSearch: 'Pretraživanje fallback',\r\n\t\t\tlogErrors: 'Izradi zapisnik datoteku za greške',\r\n\t\t\tlogSearched: 'Izradi zapisnik datoteku za pretražene pjesme',\r\n\t\t\tcreateM3U8File: 'Izradi playlist datoteku',\r\n\t\t\tsyncedLyrics: 'Izradi .lyr datoteke (sinkronizirani lyrics)',\r\n\t\t\tplaylistFilenameTemplate: 'Naziv playliste predložak',\r\n\t\t\tsaveDownloadQueue: 'Spremi red za preuzimanje prilikom zatvaranja aplikacije'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Omoti albuma',\r\n\t\t\tsaveArtwork: 'Spremi omote',\r\n\t\t\tcoverImageTemplate: 'Naziv omota predložak',\r\n\t\t\tsaveArtworkArtist: 'Spremi sliku izvođača',\r\n\t\t\tartistImageTemplate: 'Slika izvođača predložak',\r\n\t\t\tlocalArtworkSize: 'Veličina lokalnog omota',\r\n\t\t\tembeddedArtworkSize: 'Veličina ugrađenog omota',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'U kojem formatu želite lokalni omot?',\r\n\t\t\t\tjpg: 'Jpeg slika',\r\n\t\t\t\tpng: 'Png slika',\r\n\t\t\t\tboth: 'I jpeg i png'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'JPEG kvaliteta slike'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Koja oznake spremam',\r\n\t\t\ttitle: 'Naslovi',\r\n\t\t\tartist: 'Izvođač',\r\n\t\t\talbum: 'Album',\r\n\t\t\tcover: 'Omot',\r\n\t\t\ttrackNumber: 'Broj pjesme',\r\n\t\t\ttrackTotal: 'Ukupno pjesama',\r\n\t\t\tdiscNumber: 'Broj diska',\r\n\t\t\tdiscTotal: 'Ukupno diskova',\r\n\t\t\talbumArtist: 'Izvođač albuma',\r\n\t\t\tgenre: 'Žanr',\r\n\t\t\tyear: 'Godina',\r\n\t\t\tdate: 'Datum',\r\n\t\t\texplicit: 'Eksplicitni lyrics',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Dužina pjesme',\r\n\t\t\tbarcode: 'Album barkod (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Replay Gain',\r\n\t\t\tlabel: 'Izdavačka kuća albuma',\r\n\t\t\tlyrics: 'Nesinkronizirani lyrics',\r\n\t\t\tcopyright: 'Autorska prava',\r\n\t\t\tcomposer: 'Skladatelj',\r\n\t\t\tinvolvedPeople: 'Uključeni ljudi'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Ostalo',\r\n\t\t\tsavePlaylistAsCompilation: 'Spremi playliste kao kompilacije',\r\n\t\t\tuseNullSeparator: 'Koristi null razdvojnik',\r\n\t\t\tsaveID3v1: 'Spremi i ID3v1 također',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Kako biste željeli razdvojiti izvođače?',\r\n\t\t\t\tnothing: 'Spremi samo glavnog izvođača',\r\n\t\t\t\tdefault: 'Koristeći standardnu specifikaciju',\r\n\t\t\t\tandFeat: 'Koristeći & i feat.',\r\n\t\t\t\tusing: 'Koristeći \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'Spremi samo izvođača glavnog albuma',\r\n\t\t\talbumVariousArtists: 'Zadrži \"Various Artists\" u Izvođačima albuma',\r\n\t\t\tremoveAlbumVersion: 'Izbriši \"Album Version\" iz naziva pjesme',\r\n\t\t\tremoveDuplicateArtists: 'Izbriši kombinacije izvođača',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Format datuma za FLAC datoteke',\r\n\t\t\t\tyear: 'YYYY',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'DD'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'Što trebam napraviti s istaknutim izvođačima? (feat. i ft.)',\r\n\t\t\t\t0: 'Ništa',\r\n\t\t\t\t1: 'Izbriši ih iz naziva',\r\n\t\t\t\t3: 'Izbriši ih iz naziva i iz naziva albuma',\r\n\t\t\t\t2: 'Premjesti ih u naziv'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Veličina slova naslova',\r\n\t\t\tartistCasing: 'Veličina slova izvođača',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Zadrži nepromijenjeno',\r\n\t\t\t\tlower: 'sve malo',\r\n\t\t\t\tupper: 'sve VELIKO',\r\n\t\t\t\tstart: 'Početak Svake Riječi',\r\n\t\t\t\tsentence: 'Kao rečenica'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Volumen pregleda',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Naredba za izvršenje nakon preuzimanja',\r\n\t\t\t\tdescription: 'Ostavi prazno za bez akcije'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Spotify značajke',\r\n\t\t\tclientID: 'Spotify ClientID',\r\n\t\t\tclientSecret: 'Spotify Client Secret',\r\n\t\t\tusername: 'Spotify korisničko ime'\r\n\t\t},\r\n\t\treset: 'Resetiraj na zadano',\r\n\t\tsave: 'Spremi',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Postavke učitane!',\r\n\t\t\tupdate: 'Postavke ažurirane!',\r\n\t\t\tARLcopied: 'ARL kopiran u međuspremnik'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'početna',\r\n\t\tsearch: 'pretraživanje',\r\n\t\tcharts: 'ljestvice',\r\n\t\tfavorites: 'favoriti',\r\n\t\tlinkAnalyzer: 'analizator linka',\r\n\t\tsettings: 'postavke',\r\n\t\tabout: 'o programu'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Preuzmi selekciju'\r\n\t}\r\n}\r\n\r\nexport default hr\r\n","const ar = {\r\n\tglobals: {\r\n\t\twelcome: 'مرحبأ بك في ديمكس',\r\n\t\tback: 'رجوع',\r\n\t\tloading: 'جار التحميل',\r\n\t\tdownload: 'تحميل {thing}',\r\n\t\tby: 'بواسطة {artist}',\r\n\t\tin: 'في {album}',\r\n\t\tdownload_hint: 'تحميل',\r\n\t\tplay_hint: 'تشغيل',\r\n\t\ttoggle_download_tab_hint: 'عرض/اخفاء',\r\n\t\tclean_queue_hint: 'تم المسح',\r\n\t\tcancel_queue_hint: 'الغاء الكل',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'الكل',\r\n\t\t\ttop_result: 'افضل النتائج',\r\n\t\t\talbum: 'البوم | البومات',\r\n\t\t\tartist: 'فنان | فنانون',\r\n\t\t\tsingle: 'اغنية | اغنية',\r\n\t\t\ttitle: 'عنوان | عناوين',\r\n\t\t\ttrack: 'مقطع | مقاطع',\r\n\t\t\ttrackN: '0 مقاطع | {n} مقطع | {n} مقطع',\r\n\t\t\treleaseN: '0 اصدار | {n} اصدار | {n} اصدار',\r\n\t\t\tplaylist: 'قائمة تشغيل | قوائم تشغيل',\r\n\t\t\tcompile: 'مجموعة | مجموعات',\r\n\t\t\tep: 'ep | eps',\r\n\t\t\tspotifyPlaylist: 'قائمة تشغيل سبوتفاي | قوائم تشغيل سبوتفاي',\r\n\t\t\treleaseDate: 'تاريخ الاصدار',\r\n\t\t\terror: 'خطأ'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'روابط مهمة',\r\n\t\t\tbugReports: 'ابلاغ عن مشكلة',\r\n\t\t\tcontributing: 'مساهمة',\r\n\t\t\tdonations: 'التبرع',\r\n\t\t\tlicense: 'الرخصة'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"هل هناك شيء لا يعمل في ديمكس؟ أخبرنا\",\r\n\t\t\tcontributing: 'تريد المساهمة في هذا المشروع؟ يمكنك القيام بذلك بعدة طرق',\r\n\t\t\tdonations: 'تريد المساهمة مادياً؟ يمكنك التبرع'\r\n\t\t},\r\n\t\tusesLibrary: 'هذا البرنامج يستخدم مكتبة <strong>ديمكس</strong> والتي يمكنك استخدامها لإنشاء واجهة مستخدم خاصة بك لديمكس.',\r\n\t\tthanks: `شكرا لـ <strong>rtonno</strong>, و <strong>uhwot</strong> و <strong>lollilol</strong> لمساعدتي في هذا المشروع و لـ <strong>BasCurtiz</strong> و <strong>scarvimane</strong> لصنع الايقونة.`,\r\n\t\tupToDate: `تابع اخر التحديثات في قناة الاخبار على تلكرام <a href=\"https://t.me/RemixDevNews\" target=\"_blank\"></a>.`,\r\n\t\tofficialWebsite: 'الموقع الرسمي',\r\n\t\tofficialRepo: 'مستودع المكتبة الرسمي',\r\n\t\tofficialWebuiRepo: 'مستودع واجهة الويب الرسمي',\r\n\t\tofficialSubreddit: 'السب ريدت الرسمي',\r\n\t\tnewsChannel: 'قناة الاخبار',\r\n\t\tquestions: `إذا كانت لديك أسئلة أو مشاكل في التطبيق ، فابحث عن حل في السب ريدت اولاً <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a> بعد ذلك ، إذا لم تعثر على أي شيء ، يمكنك نشرمشكلتك على السب ريدت .`,\r\n\t\tbeforeReporting: `قبل ان تبلغ عن خطأ، تأكد من أنك تشغل أحدث إصدار من التطبيق وأن ما تريد الإبلاغ عنه هو في الواقع خطأ وليس مشكلة من جهتك.`,\r\n\t\tbeSure: `تأكد من أن الخطأ يمكن إعادة إنتاجه على أجهزة أخرى و ايضاً <strong>لا</strong> تبلغ علة خطأ تم التبليغ عنه سابقاً.`,\r\n\t\tduplicateReports: 'سيتم إغلاق تقارير الأخطاء المكررة ، لذلك ترقب ذلك.',\r\n\t\tdontOpenIssues: `<strong>DO NOT</strong> open issues for asking questions, there is a subreddit for that.`,\r\n\t\tnewUI: `If you're fluent in python you could try to make a new UI for the app using the base library, or fix bugs in the library with a pull request on the <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repo</a>.`,\r\n\t\tacceptFeatures: `أقبل اقتراحات الميزات أيضًا ، ولكن لا أشياء معقدة ، فقط اشياء يمكنني تنفيذها مباشرة في التطبيق وليس في المكتبة.`,\r\n\t\totherLanguages: `إذا كنت تجيد لغة برمجة أخرى ، يمكنك محاولة تحويل ديمكس إلى لغات برمجة أخرى!`,\r\n\t\tunderstandingCode: `أنت بحاجة إلى مساعدة في فهم الكود؟ فقط اتصل بـ RemixDev على تيليكرام او ريديت.`,\r\n\t\tcontributeWebUI: `If you know Vue.js (JavaScript), HTML or CSS you could contribute to the <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: `يجب ان تتذكر ان <strong>هذا هو مشروع مجاني</strong> <strong>و عليك دعم الفنانين المفضلين لك قبل ان تدعم مطورين البرنامج</strong>.`,\r\n\t\tnotObligated: `لا تشعر بالالتزام بالتبرع ، لكني أقدر ذلك على أي حال!`,\r\n\t\tlincensedUnder: `This work is licensed under the\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\"\r\n\t\t\t\t>GNU General Public License 3.0</a\r\n\t\t\t>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'قائمة الجداول',\r\n\t\tchangeCountry: 'تغيير الدولة',\r\n\t\tdownload: 'تحميل قائمة الجدول'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'خطأ في {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'الرابط غير صحيح',\r\n\t\t\tunsupportedURL: 'الرابط غير متاح حتى الانً',\r\n\t\t\tISRCnotOnDeezer: 'رمز المقطع غير متوفر في ديزر',\r\n\t\t\tnotYourPrivatePlaylist: \"لا يمكنك تحميل قوائم التشغيل الخاصة و المخفية.\",\r\n\t\t\tspotifyDisabled: 'لم يتم اعداد ميزات سبوتفاي بالطرقة الصحيحة .',\r\n\t\t\ttrackNotOnDeezer: 'المقطع لا يوجد في ديزر!',\r\n\t\t\talbumNotOnDeezer: 'الالبوم لا يوجد في ديزر!',\r\n\t\t\tnotOnDeezer: 'المقطع لا يوجد في ديزر!',\r\n\t\t\tnotEncoded: 'لم يتم تشفير المقطع حتى الانً!',\r\n\t\t\tnotEncodedNoAlternative: 'لم يتم تشفير المقطع حتى الآن ولم يتم العثور على بديل!',\r\n\t\t\twrongBitrate: 'لم يتم العثور على المقطع في الدقة المطلوبة.',\r\n\t\t\twrongBitrateNoAlternative: 'لم يتم العثور على المقطع في الدقة المطلوبة و لا توجد دقة بديلة!',\r\n\t\t\tno360RA: 'المقطع غير متوفر في Reality Audio 360.',\r\n\t\t\tnotAvailable: \"المقطع غير متوفر في سيرفرات ديزر!\",\r\n\t\t\tnotAvailableNoAlternative: \"المقطع غير متوفر في سيرفرات ديزر و لا يوجد بديل حتى الان!\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'المفضلات',\r\n\t\tnoPlaylists: 'لا يوجد قوائم تشغيل',\r\n\t\tnoAlbums: 'لم لا توجد البومات مفضلة',\r\n\t\tnoArtists: 'لا يوجد فنانين مفضلين',\r\n\t\tnoTracks: 'لا توجد مقاطع مفضلة'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'يجب عليك التسجيل في حساب ديزر قبل بدء التحميل.',\r\n\t\topenSettings: 'فتح الاعدادات',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'قوائم تشغيل مشهورة',\r\n\t\t\tpopularAlbums: 'اكثر الالبومات سماعأ'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'يمكنك استخدام هذا القسم للعثور على مزيد من المعلومات حول الرابط الذي تحاول تنزيله.',\r\n\t\tuseful:\r\n\t\t\t\" كمثال هذا مفيد إذا كنت تحاول تنزيل بعض المقاطع الغير المتاحة في بلدك وتريد معرفة مكان توفرها .\",\r\n\t\tlinkNotSupported: 'هذا الرابط غير معتمد حتى الآن',\r\n\t\tlinkNotSupportedYet: 'يبدو أن هذا الرابط غير معتمد حتى الآن ، حاول تحليل رابط آخر.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'المدة الزمنية',\r\n\t\t\tdiskNumber: 'رقم القرص',\r\n\t\t\ttrackNumber: 'رقم المقطع',\r\n\t\t\treleaseDate: 'تاريخ الاصدار',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Label',\r\n\t\t\trecordType: 'نوع التسجيل',\r\n\t\t\tgenres: 'النوع الفني',\r\n\t\t\ttracklist: 'قائمة المقاطع'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'ابدأ البحث!',\r\n\t\tdescription:\r\n\t\t\t'يمكنك البحث عن مقطع ، ألبوم كامل ، فنان ، قائمة تشغيل .... كل شيء! يمكنك أيضًا لصق رابط ديزر',\r\n\t\tfans: '{n} متابعون',\r\n\t\tnoResults: 'لا يوجد نتائج',\r\n\t\tnoResultsTrack: 'لم يتم العثور على مقاطع',\r\n\t\tnoResultsAlbum: 'لم يتم العثور على البومات',\r\n\t\tnoResultsArtist: 'لم يتم العثور على فنانين',\r\n\t\tnoResultsPlaylist: 'لم يتم العثور على قوائم تشغيل'\r\n\t},\r\n\tsearchbar: 'ابحث عن أي شيء تريده (أو الصق رابط)',\r\n\tdownloads: 'التحميلات',\r\n\ttoasts: {\r\n\t\taddedToQueue: '{item} تمت إلأضافة إلى قائمة الانتظار',\r\n\t\talreadyInQueue: '{item} حالياً في قائمة الانتظار!',\r\n\t\tfinishDownload: '{item} انتهى تحميل.',\r\n\t\tallDownloaded: 'اكتملت جميع التنزيلات!',\r\n\t\trefreshFavs: 'اكتمل التحديث!',\r\n\t\tloggingIn: 'جار تسجيل الدخول...',\r\n\t\tloggedIn: 'تم تسجيل الدخول',\r\n\t\talreadyLogged: 'تم تسجيل الدخول بالفعل',\r\n\t\tloginFailed: \"تعذر تسجيل الدخول\",\r\n\t\tloggedOut: 'تم تسجيل الخروج',\r\n\t\tcancellingCurrentItem: 'جار الغاء العنصر الحالي.',\r\n\t\tcurrentItemCancelled: 'تم الغاء العنصر الحالي.',\r\n\t\tstartAddingArtist: 'جار اضافة {artist} البوم الى قائمة الانتضار',\r\n\t\tfinishAddingArtist: 'تم اضافة {artist} البوم الى قائمة الانتضار',\r\n\t\tstartConvertingSpotifyPlaylist: 'جار تحويل مقاطع سبوتفاي الى مقاطع ديزر',\r\n\t\tfinishConvertingSpotifyPlaylist: 'تم تحويل قائمة تشغيل سبوتفاي',\r\n\t\tloginNeededToDownload: 'يجب عليك تسجيل الدخول لتحميل المقاطع!'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'الاعدادات',\r\n\t\tlanguages: 'اللغات',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'تسجيل الدخول',\r\n\t\t\tloggedIn: 'تم تسجيل الدخول كـ {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'كيفية الحصول علة ARL',\r\n\t\t\t\tupdate: 'ارفع ال ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'تسجيل الخروج'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'المظهر',\r\n\t\t\tslimDownloadTab: 'لوحة التحميل الرفيعة'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'مسار التحميل'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'القوالب',\r\n\t\t\ttracknameTemplate: 'قالب اسم المقطع',\r\n\t\t\talbumTracknameTemplate: 'قالب مقطع الالبوم',\r\n\t\t\tplaylistTracknameTemplate: 'قالب مقطع قائمة التشغيل'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'الملفات',\r\n\t\t\tcreatePlaylistFolder: 'اصنع ملف لقائمة التشغيل',\r\n\t\t\tplaylistNameTemplate: 'قالب ملف قائمة التشغيل',\r\n\t\t\tcreateArtistFolder: 'اصنع ملف للفنان',\r\n\t\t\tartistNameTemplate: 'قالب ملف الفنان',\r\n\t\t\tcreateAlbumFolder: 'اصنع ملف للالبوم',\r\n\t\t\talbumNameTemplate: 'قالب ملف الالبوم',\r\n\t\t\tcreateCDFolder: 'اصنع ملف للاقراص',\r\n\t\t\tcreateStructurePlaylist: 'اصنع هيكل مجلدات لقوائم التشغيل',\r\n\t\t\tcreateSingleFolder: 'اصنع هيكل مجلدات لالبومات ذات الاغنية الواحدة'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'عنوان المقطع',\r\n\t\t\tpadTracks: 'Pad tracks',\r\n\t\t\tpaddingSize: 'Overwrite padding size',\r\n\t\t\tillegalCharacterReplacer: 'محول الكتابات الغير مسموح بها'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'التحميلات',\r\n\t\t\tqueueConcurrency: 'التنزيلات المتزامنة',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'الدقة المفضلة',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'هل يمكنني استبدال الملفات?',\r\n\t\t\t\ty: 'نعم, استبدال الملفات',\r\n\t\t\t\tn: \"لا, لا تبدل الملفات\",\r\n\t\t\t\tt: 'استبدل العلامات فقط',\r\n\t\t\t\tb: 'لا ، احتفظ بالملفين وأضف رقمًا إلى الملف المكرر'\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'تراجع الدقة',\r\n\t\t\tfallbackSearch: 'تراجع البحث',\r\n\t\t\tlogErrors: 'إنشاء ملفات سجل للأخطاء',\r\n\t\t\tlogSearched: 'إنشاء ملفات سجل للمقاطع التي تم البحث عنها',\r\n\t\t\tcreateM3U8File: 'انشاء ملف لقوائم التشغيل',\r\n\t\t\tsyncedLyrics: 'انشاء ملف لكلمات الاغنية',\r\n\t\t\tplaylistFilenameTemplate: 'قالب اسم ملف قائمة التشغيل',\r\n\t\t\tsaveDownloadQueue: 'حفظ قائمة انتظار التنزيل عند إغلاق التطبيق'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'غلاف الالبوم',\r\n\t\t\tsaveArtwork: 'احفظ الغلاف',\r\n\t\t\tcoverImageTemplate: 'تغطية قالب الاسم',\r\n\t\t\tsaveArtworkArtist: 'احفظ صورة الفنان',\r\n\t\t\tartistImageTemplate: 'قالب صورة الفنان',\r\n\t\t\tlocalArtworkSize: 'حجم الصورة',\r\n\t\t\tembeddedArtworkSize: 'حجم الصورة المدمجة',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'بأي صيغة تريد حفظ الصورة?',\r\n\t\t\t\tjpg: 'jpeg صورة',\r\n\t\t\t\tpng: 'png صورة',\r\n\t\t\t\tboth: 'الاثنين png و jpeg'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'JPEG دقة صورة'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'العلامات التي يتم حفظها',\r\n\t\t\ttitle: 'العنوان',\r\n\t\t\tartist: 'الفنان',\r\n\t\t\talbum: 'الالبوم',\r\n\t\t\tcover: 'الغلاف',\r\n\t\t\ttrackNumber: 'رقم المقطع',\r\n\t\t\ttrackTotal: 'مجموع المقاطع',\r\n\t\t\tdiscNumber: 'رقم القرص',\r\n\t\t\tdiscTotal: 'مجموع الاقراص',\r\n\t\t\talbumArtist: 'فنان الالبوم',\r\n\t\t\tgenre: 'Genre',\r\n\t\t\tyear: 'السنة',\r\n\t\t\tdate: 'التاريخ',\r\n\t\t\texplicit: 'كلمات اغنية صريحة للكبار',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'طول المقطع',\r\n\t\t\tbarcode: 'Album Barcode (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Replay Gain',\r\n\t\t\tlabel: 'Album Label',\r\n\t\t\tlyrics: 'كلمات غير متزامنة',\r\n\t\t\tcopyright: 'حقوق النشر',\r\n\t\t\tcomposer: 'ملحن',\r\n\t\t\tinvolvedPeople: 'الناس المشتركون'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'غير',\r\n\t\t\tsavePlaylistAsCompilation: 'حفظ قوائم التشغيل كمجموعة',\r\n\t\t\tuseNullSeparator: 'استخدم فاصل فارغ',\r\n\t\t\tsaveID3v1: 'احفظ ملف ID3v1',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'كيف تريد فصل الفنانين?',\r\n\t\t\t\tnothing: 'احفظ الفنان الرئيسي فقط',\r\n\t\t\t\tdefault: 'استخدام المواصفات القياسية',\r\n\t\t\t\tandFeat: 'استخدام& و feat.',\r\n\t\t\t\tusing: 'استخدام \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'احفظ فقط فنان الألبوم الرئيسي',\r\n\t\t\talbumVariousArtists: 'احتفظ بـ \"فنانين متنوعين\" في ألبوم الفنانين',\r\n\t\t\tremoveAlbumVersion: 'إزالة \"إصدار الألبوم\" من عنوان المسار',\r\n\t\t\tremoveDuplicateArtists: 'إزالة مجموعات الفنانين',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'صيغة التاريخ لملفات flac',\r\n\t\t\t\tyear: 'س س س س',\r\n\t\t\t\tmonth: 'ش ش',\r\n\t\t\t\tday: 'ي ي'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'ماذا علي أن أفعل مع الفنانين الغير رئيسيين ?',\r\n\t\t\t\t0: 'لا شيء',\r\n\t\t\t\t1: 'حذفه من العنوان',\r\n\t\t\t\t3: 'حذفه من عنوان الاغنية و الالبوم',\r\n\t\t\t\t2: 'وضعه في العنوان'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'نوع كتابة العناون',\r\n\t\t\tartistCasing: 'نوع كتابة الفنان',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'بدون تغيير',\r\n\t\t\t\tlower: 'احرف صغيرة',\r\n\t\t\t\tupper: 'احرف كبيرة',\r\n\t\t\t\tstart: 'حرف كبير في بداية كل كلمة',\r\n\t\t\t\tsentence: 'مثل جملة'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'معاينة الحجم',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'الأمر للتنفيذ بعد التنزيل',\r\n\t\t\t\tdescription: 'اتركه فارغًا بدون إجراء'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'مميزات سبوتفاي',\r\n\t\t\tclientID: 'معرف عميل سبوتفاي',\r\n\t\t\tclientSecret: 'الكود السري لعميل سبوتفاي',\r\n\t\t\tusername: 'اسم مستخدم سبوتفاي'\r\n\t\t},\r\n\t\treset: 'إعادة تعيين إلى الافتراضي',\r\n\t\tsave: 'حفظ',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'تم تحميل الإعدادات!',\r\n\t\t\tupdate: 'تم تحديث الاعدادات!',\r\n\t\t\tARLcopied: 'تم نسخ ARL إلى الحافظة'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'الرئيسية',\r\n\t\tsearch: 'بحث',\r\n\t\tcharts: 'قائمة الجداول',\r\n\t\tfavorites: 'المفضلة',\r\n\t\tlinkAnalyzer: 'محلل الروابط',\r\n\t\tsettings: 'الاعدادات',\r\n\t\tabout: 'حول'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'تحميل الاختيار'\r\n\t}\r\n}\r\n\r\nexport default ar\r\n","const ko = {\r\n\tglobals: {\r\n\t\twelcome: '잘왔다, deemix에',\r\n\t\tback: '뒤로',\r\n\t\tloading: '불러오는 중',\r\n\t\tdownload: '{thing} 다운로드',\r\n\t\tby: 'by {artist}',\r\n\t\tin: 'in {album}',\r\n\t\tdownload_hint: '다운로드',\r\n\t\tplay_hint: '재생',\r\n\t\ttoggle_download_tab_hint: '펼치기/접기',\r\n\t\tclean_queue_hint: '비우기 완료',\r\n\t\tcancel_queue_hint: '모두 취소',\r\n\t\topen_downloads_folder: '다운로드 폴더 열기',\r\n\t\tcut: '잘라내기',\r\n\t\tcopy: '복사',\r\n\t\tcopyLink: '링크 복사',\r\n\t\tcopyImageLink: '이미지 링크 복사',\r\n\t\tcopyDeezerLink: 'deezer 링크 복사',\r\n\t\tpaste: '붙여넣기',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: '전체',\r\n\t\t\ttop_result: '가장 일치하는 결과',\r\n\t\t\talbum: '앨범 | 앨범',\r\n\t\t\tartist: '아티스트 | 아티스트',\r\n\t\t\tsingle: '싱글 | 싱글',\r\n\t\t\ttitle: '제목 | 제목',\r\n\t\t\ttrack: '트랙 | 트랙',\r\n\t\t\ttrackN: '0 트랙 | {n} 트랙 | {n} 트랙',\r\n\t\t\treleaseN: '0 발매 | {n} 발매 | {n} 발매',\r\n\t\t\tplaylist: '재생목록 | 재생목록',\r\n\t\t\tcompile: '편찬물 | 편찬물',\r\n\t\t\tep: 'ep | eps',\r\n\t\t\tmore: '더 많은 앨범',\r\n\t\t\tfeatured: '특집',\r\n\t\t\tspotifyPlaylist: '스포티파이 재생목록 | 스포티파이 재생목록',\r\n\t\t\treleaseDate: '발매일자',\r\n\t\t\terror: '오류'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: '유용한 링크',\r\n\t\t\tbugReports: '버그 제보',\r\n\t\t\tcontributing: '기여자',\r\n\t\t\tdonations: '후원',\r\n\t\t\tlicense: '이용정책'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"무언가 안되는 것이 있다고요? 말해주세요!\",\r\n\t\t\tcontributing: '이 프로젝트에 기여하고 싶다고요? 어렵지 않아요!',\r\n\t\t\tdonations: '금전적으로 지원하고 싶다고요? 후원하세요!'\r\n\t\t},\r\n\t\tusesLibrary: '이 프로그램은 <strong>deemix</strong> 라이브러리를 사용합니다, 해당 라이브러리로 자신만의 deemix를 만들 수 있습니다.',\r\n\t\tthanks: `이 프로젝트를 도와준 <strong>rtonno</strong>, <strong>uhwot</strong> 그리고 <strong>lollilol</strong>님과 아이콘을 만들어준 <strong>BasCurtiz</strong> 그리고 <strong>scarvimane</strong>님에게 감사를.`,\r\n\t\tupToDate: `새로운 업데이트 소식을 듣고 싶으면 텔레그램 <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">새소식 정보통</a>을 참고하세요.`,\r\n\t\tofficialWebsite: '공식 웹사이트',\r\n\t\tofficialRepo: '공식 라이브러리 저장소',\r\n\t\tofficialWebuiRepo: '공식 WebUI 저장소',\r\n\t\tofficialSubreddit: '공식 서브레딧',\r\n\t\tnewsChannel: '새 소식 알리미',\r\n\t\tquestions: `프로그램에 대한 질문이나 문제에 관한 것은, 먼저 <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">서브레딧</a>에서 답변을 검색해보세요. 그리고, 서브레딧에서 답변을 찾기 못한 경우에 다음 순서를 이용해주세요.`,\r\n\t\tbeforeReporting: `버그 제보를 하기 전에 먼저 최신 버전의 프로그램을 실행하고 있는지, 제보하고자 하는 것이 버그이지 오로지 당신의 목적을 이루기 위한 요구가 아님을 확인해주세요.`,\r\n\t\tbeSure: `해당 버그가 다른 장치에서도 재현이 가능한지 확인하고 이미 제보된 버그의 경우에는 중복해서 <strong>보고하지 마세요</strong>.`,\r\n\t\tduplicateReports: '중복된 버그 제보의 경우는 해당 요청을 닫을 것이니, 두 눈 뜨고 지켜보세요.',\r\n\t\tdontOpenIssues: `질문에 관한 것은 이슈를 <strong>열지 마세요</strong>, 서브레딧이 있습니다.`,\r\n\t\tnewUI: `만약 당신이 파이썬에 능통하고 기본적인 라이브러리를 이용하여 새로운 UI를 만들었거나, 라이브러리의 버그를 수정하였다면 <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">저장소</a>에 풀 리퀘스트 해주세요.`,\r\n\t\tacceptFeatures: `복잡하지 않은 기능 추가도 받습니다, 라이브러리가 아닌 앱에서 직접 구현할 수 있는 것으로요.`,\r\n\t\totherLanguages: `당신이 다른 프로그램 언어에 능통하면, 이 deemix 프로그램을 다른 프로그래밍 언어로 포팅할 수도 있습니다!`,\r\n\t\tunderstandingCode: `코드를 이해하는 데 도움이 필요합니까? 위에 있는 RemixDev, 텔레그램, 서브레딧 링크를 누르세요.`,\r\n\t\tcontributeWebUI: `만약 당신이 Vue.js (JavaScript), HTML 또는 CSS 개발자라면 <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>에 도움을 주세요.`,\r\n\t\titsFree: `사용하기 전에 이 프로그램이 <strong>무료 프로젝트</strong>이고 개발자를 지원하기 전에 <strong>예술가들</strong>을 먼저 지원해야 함을 기억하세요.`,\r\n\t\tnotObligated: `기부는 프로젝트를 지속할 수 있는 동력이 됩니다!`,\r\n\t\tlincensedUnder: `이 작업이 요구하고 있는 라이센스는 아래와 같습니다<br>\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">GNU General Public License 3.0</a>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: '차트',\r\n\t\tchangeCountry: '국가 변경',\r\n\t\tdownload: '차트 다운로드'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: '오류 발생: {name}',\r\n\t\tids: {\r\n\t\t\tunsupportedURL: 'URL 지원 누락',\r\n\t\t\tinvalidURL: 'URL 인식 실패',\r\n\t\t\tISRCnotOnDeezer: '트랙 코드 식별이 불가능합니다',\r\n\t\t\tnotYourPrivatePlaylist: \"다른 사람의 비공개 재생 목록을 다운로드 할 수 없습니다.\",\r\n\t\t\tspotifyDisabled: '스포티파이 기능이 올바르게 설정되지 않았습니다.',\r\n\t\t\ttrackNotOnDeezer: 'Deezer에서 트랙을 찾을 수 없습니다!',\r\n\t\t\talbumNotOnDeezer: 'Deezer에서 앨범을 찾을 수 없습니다!',\r\n\t\t\tnotOnDeezer: 'Deezer에서 트랙을 찾을 수 없습니다!',\r\n\t\t\tnotEncoded: '트랙이 아직 변환(encode)되지 않았습니다!',\r\n\t\t\tnotEncodedNoAlternative: '트랙이 아직 변환(encode)되지 않았을 뿐더러 대체할 것을 찾지 못했습니다!',\r\n\t\t\twrongBitrate: '요구하는 비트레이트의 트랙을 찾을 수 없습니다.',\r\n\t\t\twrongBitrateNoAlternative: '요구하는 비트레이트를 찾을 수 없을 뿐더러 대체할 것을 찾지 못했습니다!',\r\n\t\t\tno360RA: '해당 트랙은 360 리얼리티 오디오에 존재하지 않습니다.',\r\n\t\t\tnotAvailable: \"해당 트랙은 Deezer 서버에 존재하지 않습니다!\",\r\n\t\t\tnotAvailableNoAlternative: \"해당 트랙은 Deezer 서버에 존재하지 않을 뿐더러 대체할 것을 찾지 못했습니다!\",\r\n\t\t\tnoSpaceLeft: \"장치에 여유 공간이 없습니다!\",\r\n\t\t\talbumDoesntExists: \"트랙의 앨범이 존재하지 않습니다, 정보 수집에 실패했습니다.\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: '즐겨듣는 음악',\r\n\t\tnoPlaylists: '즐겨듣는 재생목록이 없습니다',\r\n\t\tnoAlbums: '즐겨듣는 앨범이 없습니다',\r\n\t\tnoArtists: '즐겨듣는 아티스트가 없습니다',\r\n\t\tnoTracks: '즐겨듣는 트랙이 없습니다'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: '다운로드를 시작하기 전에 Deezer 계정에 로그인을 해야합니다.',\r\n\t\topenSettings: '설정 열기',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: '인기있는 재생목록',\r\n\t\t\tpopularAlbums: '가장 많이 재생된 앨범'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: '이 항목에서는 다운로드를 시도할 링크에 대한 더 많은 정보를 찾을 수 있습니다.',\r\n\t\tlinkNotSupported: '해당 링크는 아직 지원하지 않습니다',\r\n\t\tuseful: \"접속한 국가에서는 재생할 수 없는 특정 트랙을 다운로드 하기 위해서 가능한 국가를 찾는데 유용하게 쓰입니다.\",\r\n\t\tlinkNotSupportedYet: '해당 링크는 아직 지원하지 않습니다, 다른 링크로 시도해보세요.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: '길이',\r\n\t\t\tdiskNumber: '디스크 번호',\r\n\t\t\ttrackNumber: '트랙 번호',\r\n\t\t\treleaseDate: '발매일자',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: '라벨',\r\n\t\t\trecordType: '녹음 종류',\r\n\t\t\tgenres: '장르',\r\n\t\t\ttracklist: '트랙목록'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: '검색을 해보세요!',\r\n\t\tdescription: '트랙, 아티스트, 재생목록, Deezer 링크 등으로 검색할 수 있습니다!',\r\n\t\tfans: '{n}명의 팬들',\r\n\t\tnoResults: '결과 없음',\r\n\t\tnoResultsTrack: '발견된 트랙 없음',\r\n\t\tnoResultsAlbum: '발견된 앨범 없음',\r\n\t\tnoResultsArtist: '발견된 아티스트 없음',\r\n\t\tnoResultsPlaylist: '발견된 재생목록 없음'\r\n\t},\r\n\tsearchbar: '원하는 것을 검색하세요 (링크를 붙여넣을 수도 있습니다)',\r\n\tdownloads: '다운로드들',\r\n\ttoasts: {\r\n\t\trestoringQueue: '다운로드 대기 열 복원중...',\r\n\t\tqueueRestored: '다운로드 대기 열이 복원되었습니다!',\r\n\t\taddedToQueue: '대기열에 {item}(이)가 추가되었습니다',\r\n\t\taddedMoreToQueue: '대기열에 {n} 항목이 추가되었습니다',\r\n\t\talreadyInQueue: '{item}(이)가 이미 대기열에 존재합니다!',\r\n\t\tfinishDownload: '{item} 항목이 다운로드 완료되었습니다.',\r\n\t\tallDownloaded: '모든 다운로드가 완료되었습니다!',\r\n\t\trefreshFavs: '새로고침이 완료되었습니다!',\r\n\t\tloggingIn: '로그인 하는 중...',\r\n\t\tloggedIn: '로그인 되었습니다',\r\n\t\talreadyLogged: '이미 로그인되어 있습니다',\r\n\t\tloginFailed: \"로그인 할 수 없습니다\",\r\n\t\tloggedOut: '로그아웃 하였습니다',\r\n\t\tcancellingCurrentItem: '현재 항목을 취소 중입니다.',\r\n\t\tcurrentItemCancelled: '항목이 취소되었습니다.',\r\n\t\tstartAddingArtist: '{artist} 앨범을 대기열에 추가 중입니다',\r\n\t\tfinishAddingArtist: '{artist} 앨범이 대기열에 추가되었습니다',\r\n\t\tstartConvertingSpotifyPlaylist: '스포티파이 트랙을 Deezer 트랙으로 전환 중입니다',\r\n\t\tfinishConvertingSpotifyPlaylist: '스프토파이 재생 목록이 전환되었습니다',\r\n\t\tloginNeededToDownload: '트랙을 다운로드하려면 로그인이 필요합니다!',\r\n\t\tdeezerNotAvailable: 'Deezer 사이트는 현재 귀하의 국가에서 사용이 불가능합니다. VPN을 사용하세요.'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: '설정',\r\n\t\tlanguages: '언어',\r\n\t\tlogin: {\r\n\t\t\ttitle: '로그인',\r\n\t\t\tloggedIn: '{username}(으)로 로그인되었습니다',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'ARL을 어떻게 확인합니까?',\r\n\t\t\t\tupdate: 'ARL 업데이트'\r\n\t\t\t},\r\n\t\t\tlogout: '로그아웃',\r\n\t\t\tquestion: '스포티파이 기능들을 쓰려면 어떻게 해야합니까?'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: '외관',\r\n\t\t\tslimDownloadTab: '얇은 다운로드 탭'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: '다운로드 경로'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: '템플릿',\r\n\t\t\ttracknameTemplate: '트랙이름 템플릿',\r\n\t\t\talbumTracknameTemplate: '앨범 트랙 템플릿',\r\n\t\t\tplaylistTracknameTemplate: '재생목록 트랙 템플릿'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: '폴더',\r\n\t\t\tcreatePlaylistFolder: '재생목록을 위한 폴더 생성',\r\n\t\t\tplaylistNameTemplate: '재생목록 폴더 템플릿',\r\n\t\t\tcreateArtistFolder: '아티스트를 위한 폴더 생성',\r\n\t\t\tartistNameTemplate: '아티스트 폴더 템플릿',\r\n\t\t\tcreateAlbumFolder: '앨범을 위한 폴더 생성',\r\n\t\t\talbumNameTemplate: '앨범 폴더 템플릿',\r\n\t\t\tcreateCDFolder: 'CD를 위한 폴더 생성',\r\n\t\t\tcreateStructurePlaylist: '재생목록을 위한 폴더 구조 생성',\r\n\t\t\tcreateSingleFolder: '싱글 앨범을 위한 폴더 구조 생성'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: '트랙 제목',\r\n\t\t\tpadTracks: '트랙 채워넣기',\r\n\t\t\tpaddingSize: '채워넣을 크기',\r\n\t\t\tillegalCharacterReplacer: '지원하지 않는 글자 대체'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: '다운로드',\r\n\t\t\tqueueConcurrency: '동시 다운로드',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: '선호하는 비트레이트',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: '파일을 덮어쓸까요?',\r\n\t\t\t\ty: '네, 파일을 덮어쓰세요',\r\n\t\t\t\tn: \"아뇨, 파일을 덮어쓰지 마세요\",\r\n\t\t\t\tt: '태그만 덮어쓰세요',\r\n\t\t\t\tb: '아뇨, 양쪽 다 놔두고 중복되는 파일에 번호를 추가하세요',\r\n\t\t\t\te: \"아뇨, 확장명을 변경하세요\"\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: '비트레이트 대비책',\r\n\t\t\tfallbackSearch: '검색 대비책',\r\n\t\t\tlogErrors: '오류 발생시 로그 파일 생성',\r\n\t\t\tlogSearched: '검색한 트랙에 대한 로그 파일 생성',\r\n\t\t\tcreateM3U8File: '재생목록 파일 생성',\r\n\t\t\tsyncedLyrics: '.lyr 파일 생성 (가사 동기화)',\r\n\t\t\tplaylistFilenameTemplate: '재생목록 파일이름 템플릿',\r\n\t\t\tsaveDownloadQueue: '프로그램을 닫을 때 다운로드 대기열 저장'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: '앨범 커버',\r\n\t\t\tsaveArtwork: '커버 저장',\r\n\t\t\tcoverImageTemplate: '커버 이름 템플릿',\r\n\t\t\tsaveArtworkArtist: '아티스트 이미지 저장',\r\n\t\t\tartistImageTemplate: '아티스트 이미지 템플릿',\r\n\t\t\tlocalArtworkSize: '외부 저장 그림 크기',\r\n\t\t\tembeddedArtworkSize: '내부 저장 그림 크기',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: '별도로 저장할 그림의 형식을 무엇으로 하시겠습니까?',\r\n\t\t\t\tjpg: 'jpeg 이미지',\r\n\t\t\t\tpng: 'png 이미지',\r\n\t\t\t\tboth: 'jpeg와 png 둘 다'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'JPEG 이미지 품질',\r\n\t\t\tembeddedArtworkPNG: '포함된 그림의 형식을 PNG로 저장합니다',\r\n\t\t\tembeddedPNGWarning: 'PNG는 Deezer에서 공식적으로 지원하지 않기 때문에 버그가 있을 수 있습니다',\r\n\t\t\timageSizeWarning: 'x1200 크기를 초과해서는 Deezer에서 공식적으로 사용되지 않기 때문에 문제가 생길 수 있습니다',\r\n\t\t\tcoverDescriptionUTF8: '커버 설명을 UTF8 포맷을 이용해 저장합니다 (iTunes 커버 오류 해결)'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: '저장할 태그를 선택하세요',\r\n\t\t\ttitle: '제목',\r\n\t\t\tartist: '아티스트',\r\n\t\t\talbum: '앨범',\r\n\t\t\tcover: '커버',\r\n\t\t\ttrackNumber: '트랙 번호',\r\n\t\t\ttrackTotal: '전체 트랙 크기',\r\n\t\t\tdiscNumber: '디스크 번호',\r\n\t\t\tdiscTotal: '전체 디스크 수',\r\n\t\t\talbumArtist: '앨범 아티스트',\r\n\t\t\tgenre: '장르',\r\n\t\t\tyear: '연도',\r\n\t\t\tdate: '일자',\r\n\t\t\texplicit: '노골적 가사',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: '트랙 길이',\r\n\t\t\tbarcode: '앨범 바코드 (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: '리플레이 게인',\r\n\t\t\tlabel: '앨범 라벨',\r\n\t\t\tlyrics: '비동기 가사',\r\n\t\t\tcopyright: '저작권',\r\n\t\t\tcomposer: '작곡가',\r\n\t\t\tinvolvedPeople: '관련있는 사람들'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: '기타',\r\n\t\t\tsavePlaylistAsCompilation: '재생목록을 편찬물로 저장',\r\n\t\t\tuseNullSeparator: 'null 구분자 사용',\r\n\t\t\tsaveID3v1: 'ID3v1 태그 형식으로 저장',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: '아티스트를 어떻게 구분하시겠습니까?',\r\n\t\t\t\tnothing: '주요 아티스트만 저장',\r\n\t\t\t\tdefault: '표준 스펙을 사용',\r\n\t\t\t\tandFeat: '& 기호와 feat 사용.',\r\n\t\t\t\tusing: '\"{separator}\" 사용'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: '주요 앨범 아티스트만 저장',\r\n\t\t\talbumVariousArtists: '앨범 아티스트에 \"Various Artists\"(다양한 아티스트들) 유지',\r\n\t\t\tremoveAlbumVersion: '트랙 제목에 \"Album Version\"(앨범 버전) 제거',\r\n\t\t\tremoveDuplicateArtists: '아티스트들의 협업 제거',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'FLAC 파일의 날짜 형식',\r\n\t\t\t\tyear: 'YYYY',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'DD'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: '특집에 참여한 아티스트들에 할 수 있는 것이 무엇이 있나요?',\r\n\t\t\t\t0: '아무것도 하지 않음',\r\n\t\t\t\t1: '제목에서 제거',\r\n\t\t\t\t3: '앨범 제목과 트랙에서 제거',\r\n\t\t\t\t2: '제목으로 이동'\r\n\t\t\t},\r\n\t\t\ttitleCasing: '제목 케이싱',\r\n\t\t\tartistCasing: '아티스트 케이싱',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: '변함없이 유지',\r\n\t\t\t\tlower: '소문자로',\r\n\t\t\t\tupper: '대문자로',\r\n\t\t\t\tstart: '각 단어 앞 글자를 대문자로',\r\n\t\t\t\tsentence: '문장처럼'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: '미리듣기 볼륨',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: '다운로드 후 실행할 명령어',\r\n\t\t\t\tdescription: '빈칸으로 두면 아무 일도 없습니다'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: '스포티파이 기능',\r\n\t\t\tclientID: 'Spotify ClientID',\r\n\t\t\tclientSecret: 'Spotify Client Secret',\r\n\t\t\tusername: 'Spotify 사용자이름'\r\n\t\t},\r\n\t\treset: '기본 설정으로 초기화',\r\n\t\tsave: '저장',\r\n\t\ttoasts: {\r\n\t\t\tinit: '설정을 불러왔습니다!',\r\n\t\t\tupdate: '새로운 설정으로 갱신되었습니다!',\r\n\t\t\tARLcopied: 'ARL가 클립보드에 복사되었습니다'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: '홈',\r\n\t\tsearch: '검색',\r\n\t\tcharts: '차트',\r\n\t\tfavorites: '즐겨찾기',\r\n\t\tlinkAnalyzer: '링크 분석기',\r\n\t\tsettings: '설정',\r\n\t\tabout: '정보'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: '선택 다운로드'\r\n\t}\r\n}\r\n\r\nexport default ko\r\n","const ph = {\r\n\tglobals: {\r\n\t\twelcome: 'Welcome sa deemix',\r\n\t\tback: 'bumalik',\r\n\t\tloading: 'kumakarga',\r\n\t\tdownload: 'I-download {thing}',\r\n\t\tby: 'ayon sa {artist}',\r\n\t\tin: 'sa {album}',\r\n\t\tdownload_hint: 'I-download',\r\n\t\tplay_hint: 'I-play',\r\n\t\ttoggle_download_tab_hint: 'Palakihin/Paliitan',\r\n\t\tclean_queue_hint: 'Natapos na ang Pag-alis',\r\n\t\tcancel_queue_hint: 'Ikansel Lahat',\r\n\t\topen_downloads_folder: 'Buksan ang Polder ng Download',\r\n\t\tcut: 'i-cut',\r\n\t\tcopy: 'kopyahin',\r\n\t\tcopyLink: 'kopyahin ang link',\r\n\t\tcopyImageLink: 'kopyahin ang imahe sa link',\r\n\t\tcopyDeezerLink: 'kopyahin ang link ng deezer',\r\n\t\tpaste: 'idikit',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: 'lahat',\r\n\t\t\ttop_result: 'nangungunang resulta',\r\n\t\t\talbum: 'album | mga album',\r\n\t\t\tartist: 'artist | mga artist',\r\n\t\t\tsingle: 'single | mga single',\r\n\t\t\ttitle: 'pamagat | mga pamagat',\r\n\t\t\ttrack: 'track | mga track',\r\n\t\t\ttrackN: '0 mga track | {n} track | {n} mga track',\r\n\t\t\treleaseN: '0 mga release | {n} release | {n} mga release',\r\n\t\t\tplaylist: 'playlist | mga playlist',\r\n\t\t\tcompile: 'pinagsama | mga pinagsama',\r\n\t\t\tep: 'ep | mga ep',\r\n\t\t\tbundle: 'bundle | mga bundle',\r\n\t\t\tmore: 'Iba pang mga album',\r\n\t\t\tfeatured: 'Ibinida sa',\r\n\t\t\tspotifyPlaylist: 'playlist sa spotify | mga playlist sa spotify',\r\n\t\t\treleaseDate: 'petsa ng paglabas',\r\n\t\t\terror: 'error'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\tupdates: {\r\n\t\t\tcurrentVersion: 'Kasalukuyang version',\r\n\t\t\tversionNotAvailable: 'H/P',\r\n\t\t\tupdateAvailable: `Hindi mo ginagamit ang pinakabagong version: {version}`,\r\n\t\t\tdeemixVersion: 'deemix lib version'\r\n\t\t},\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: 'Nakatutulong na mga Link',\r\n\t\t\tbugReports: 'Report sa Bug',\r\n\t\t\tcontributing: 'Pagtulong',\r\n\t\t\tdonations: 'Mga donasiyon',\r\n\t\t\tlicense: 'Lisensiya'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"Meron bang hindi gumagana sa deemix? Ipaalam mo sa amin!\",\r\n\t\t\tcontributing: 'Gusto mo bang tumulong sa proyektong ito? Pwede mong gawin iyan sa maraming paraan!',\r\n\t\t\tdonations: 'Gusto mo bang tumulong sa pamamagitan ng pera? Pwede kang magbigay ng donasiyon!'\r\n\t\t},\r\n\t\tusesLibrary: 'Ang app na ito ay gumagamit ng library galing sa <strong>deemix</strong>, na kung saan ay pwede mong gamitin para gumawa ng sarili mong UI ng deemix.',\r\n\t\tthanks: `Salamat kay <strong>rtonno</strong>, <strong>uhwot</strong> at <strong>lollilol</strong> sa pagtulong sa akin para sa proyektong ito at kay <strong>BasCurtiz</strong> at <strong>scarvimane</strong> sa paggawa ng icon.`,\r\n\t\tupToDate: `Huwag magpapahuli sa mga update patungkol dito sa pamamagitan ng pagsali sa <a href=\"https://t.me/RemixDevNews\" target=\"_blank\">news channel</a> sa Telegram.`,\r\n\t\tofficialWebsite: 'Opisyal na Website',\r\n\t\tofficialRepo: 'Opisyal na Library Repository',\r\n\t\tofficialWebuiRepo: 'Opisyal na Repository ng WebUI',\r\n\t\tofficialSubreddit: 'Opisyal na Subreddit',\r\n\t\tnewsChannel: 'News Channel',\r\n\t\tquestions: `Kung may tanong ka o problema sa app, maghanap ka muna ng solusiyon sa <a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">subreddit</a>. Ngayon, kung wala ka talagang mahanap ay pwede kang mag-post patungkol sa iyong isyu doon sa subreddit.`,\r\n\t\tbeforeReporting: `Bago ka magreport ng bug, siguraduhing pinakabagong version ang ginagamit mo at ang ire-report mo ay talagang bug at hindi dahil sa pagkakamali mo lang ng paggamit.`,\r\n\t\tbeSure: `Siguraduhing nangyayari rin ang bug sa iba't ibang plataporma at tsaka <strong>HUWAG</strong> mo nang i-report ang bug kung ito ay naipa-alam na ng iba.`,\r\n\t\tduplicateReports: 'Isasara namin ang mga magkaparehong report sa bug, kaya alamin mo muna.',\r\n\t\tdontOpenIssues: `<strong>HUWAG</strong> kayong magbubukas ng isyu kung magtatanong lang kayo, meron tayong subreddit para diyan.`,\r\n\t\tnewUI: `Kung ikaw ay maraming alam sa python, subukan mong gumawa ng bagong UI gamit ng base library, o kaya ayusin ang mga bug sa library sa pamamagitan ng pag-pull ng request sa <a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">repo</a>.`,\r\n\t\tacceptFeatures: `Tumatangggap din ako ng mga feature, basta hindi komplikado, dahil diretso ko itong nilalagay sa app at hindi sa library.`,\r\n\t\totherLanguages: `Kung ikaw ay maraming alam sa ibang programming language, maaari mo ring subukan i-port ang deemix sa iba't ibang programming language!`,\r\n\t\tunderstandingCode: `Kailangan mo ba ng tulong para maintindihan ang code? Bisitahin si RemixDev sa Telegram o sa Reddit.`,\r\n\t\tcontributeWebUI: `Kung may alam ka sa Vue.js (JavaScript), HTML o kaya CSS, maaari kang sumali at tumulong dito sa <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a>.`,\r\n\t\titsFree: `Lagi mong tandaang <strong>ang proyektong ito ay libre</strong> at <strong>suportuhanmuna ang minamahal ninyong mga artist</strong> bago ang mga developer.`,\r\n\t\tnotObligated: `Huwag mong pilitin ang sarili para mag-donate, Naiintindihan ka namin!`,\r\n\t\tlincensedUnder: `Ang aktibidad na ito ay lisensiyado sa\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">GNU General Public License 3.0</a>.`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: 'Mga Chart',\r\n\t\tchangeCountry: 'Palitan ang Country',\r\n\t\tdownload: 'I-download ang Chart'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: 'Mga error sa {name}',\r\n\t\tids: {\r\n\t\t\tinvalidURL: 'Hindi makilala ang URL',\r\n\t\t\tunsupportedURL: 'Hindi pa suportado ang URL',\r\n\t\t\tISRCnotOnDeezer: 'Ang Track ISRC ay hindi pwede sa Deezer',\r\n\t\t\tnotYourPrivatePlaylist: \"Hindi pwedeng i-download ang mga pribadong playlist ng iba.\",\r\n\t\t\tspotifyDisabled: 'Hindi mo nai-set nang tama ang Spotify Features.',\r\n\t\t\ttrackNotOnDeezer: 'Hindi mahanap ang track sa Deezer!',\r\n\t\t\talbumNotOnDeezer: 'Hindi mahanap ang album sa Deezer!',\r\n\t\t\tnotOnDeezer: 'Hindi available ang track sa Deezer!',\r\n\t\t\tnotEncoded: 'Hindi pa nae-encode ang track!',\r\n\t\t\tnotEncodedNoAlternative: 'Hindi pa nae-encode ang track at walang mahanap na iba!',\r\n\t\t\twrongBitrate: 'Hindi mahanap ang track sa gusto mong bitrate.',\r\n\t\t\twrongBitrateNoAlternative: 'Hindi mahanap ang track sa gusto mong bitrate at walang mahanap na iba!',\r\n\t\t\tno360RA: 'Hindi pwede ang track para sa Reality Audio 360.',\r\n\t\t\tnotAvailable: \"Walang available na track sa server ng Deezer!\",\r\n\t\t\tnotAvailableNoAlternative: \"Walang available na track sa server ng Deezer at walang mahanap na iba!\",\r\n\t\t\tnoSpaceLeft: \"Wala nang natitirang space sa iyong device!\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: 'Mga Paborito',\r\n\t\tnoPlaylists: 'Walang makitang mga Playlist',\r\n\t\tnoAlbums: 'Walang makitang mga Paboritong Album',\r\n\t\tnoArtists: 'Walang makitang mga Paboritong Artist',\r\n\t\tnoTracks: 'Walang makitang mga Paboritong Track'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: 'Kailangan mong mag-log in sa iyong Deezer account bago ka makasimulang magdownload.',\r\n\t\topenSettings: 'Buksan ang Mga Setting',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: 'Mga sikat na playlist',\r\n\t\t\tpopularAlbums: 'Pinakamaraming pinakikinggang mga album'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: 'Pwede gamitin ang section na ito para sa iba pang impormasyon patungkol sa link na gusto mong i-download.',\r\n\t\tuseful: \"Makatutulong ito kung meron kang gustong i-download na track na hindi available sa bansa mo at gusto mong malaman kung meron bang ganito kapag sa iba.\",\r\n\t\tlinkNotSupported: 'Hindi pa suportado ang link',\r\n\t\tlinkNotSupportedYet: 'Mukhang hindi pa suportado itong link, iba na lang ang ilagay mo.',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: 'Haba',\r\n\t\t\tdiskNumber: 'Bilang ng Disk',\r\n\t\t\ttrackNumber: 'Bilang ng Track',\r\n\t\t\treleaseDate: 'Petsa ng Release',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: 'Label',\r\n\t\t\trecordType: 'Uri ng Rekord',\r\n\t\t\tgenres: 'Mga Genre',\r\n\t\t\ttracklist: 'Listahan ng Track'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: 'Simulang Maghanap!',\r\n\t\tdescription: 'Pwede kang maghanap ng track, buong album, artist, playlist.... kahit ano! Pwede ka ring mag-paste dito ng link na galing sa Deezer',\r\n\t\tfans: '{n} mga fan',\r\n\t\tnoResults: 'Walang resulta',\r\n\t\tnoResultsTrack: 'Walang mahanap na mga Track',\r\n\t\tnoResultsAlbum: 'Walang mahanap na mga Album',\r\n\t\tnoResultsArtist: 'Walang mahanap na mga Artist',\r\n\t\tnoResultsPlaylist: 'Walang mahanap na mga Playlist'\r\n\t},\r\n\tsearchbar: 'Maghanap ka ng gusto mo (o mag-paste ka ng link)',\r\n\tdownloads: 'mga download',\r\n\ttoasts: {\r\n\t\trestoringQueue: 'Binabalik ang download queue...',\r\n\t\tqueueRestored: 'Naibalik na ang download queue!',\r\n\t\taddedToQueue: '{item} ay naidagdag sa queue',\r\n\t\taddedMoreToQueue: '{n} naidagdag rin sa queue',\r\n\t\talreadyInQueue: '{item} ay meron na sa queue!',\r\n\t\tfinishDownload: '{item} ay natapos nang i-download.',\r\n\t\tallDownloaded: 'Nadownload na lahat!',\r\n\t\trefreshFavs: 'Narefresh na!',\r\n\t\tloggingIn: 'Nagla-log in...',\r\n\t\tloggedIn: 'Na-login na',\r\n\t\talreadyLogged: 'Nakalogin ka na',\r\n\t\tloginFailed: \"Hindi maka-log in\",\r\n\t\tloggedOut: 'Na-logout na',\r\n\t\tcancellingCurrentItem: 'Kinakansel ang item.',\r\n\t\tcurrentItemCancelled: 'Nakansel na ang item.',\r\n\t\tstartAddingArtist: 'Idinadagdag si {artist} sa queue ng mga album',\r\n\t\tfinishAddingArtist: 'Naidagdag na si {artist} sa queue ng mga album',\r\n\t\tstartConvertingSpotifyPlaylist: 'Kino-convert ang mga track sa spotify papuntang Deezer',\r\n\t\tfinishConvertingSpotifyPlaylist: 'Naconvert na ang playlist sa Spotify',\r\n\t\tloginNeededToDownload: 'Kailangan mong mag-login para madownload ang mga track!',\r\n\t\tdeezerNotAvailable: 'Hindi available ang Deezer sa iyong bansa. Kailangan mong gumamit ng VPN.'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: 'Mga Setting',\r\n\t\tlanguages: 'Mga Wika',\r\n\t\tlogin: {\r\n\t\t\ttitle: 'Login',\r\n\t\t\tloggedIn: 'Ikaw ay naka-login sa pangalang {username}',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: 'Paano ako makakuha ng sariling ARL?',\r\n\t\t\t\tupdate: 'I-update ang ARL'\r\n\t\t\t},\r\n\t\t\tlogout: 'Logout',\r\n\t\t\tlogin: 'Mag-login gamit ng deezer.com'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: 'Hitsura',\r\n\t\t\tslimDownloadTab: 'Pinaliit na download tab'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: 'Paglalagyan ng Download'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: 'Mga Template',\r\n\t\t\ttracknameTemplate: 'Template sa pangalan ng Track',\r\n\t\t\talbumTracknameTemplate: 'Template sa track ng Album',\r\n\t\t\tplaylistTracknameTemplate: 'Template sa track ng Playlist'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: 'Mga Folder',\r\n\t\t\tcreatePlaylistFolder: 'Gumawa ng folder para sa mga playlist',\r\n\t\t\tplaylistNameTemplate: 'Template sa folder ng Playlist',\r\n\t\t\tcreateArtistFolder: 'Gumawa ng folder para sa artist',\r\n\t\t\tartistNameTemplate: 'Template sa folder ng Artist',\r\n\t\t\tcreateAlbumFolder: 'Gumawa ng folder para sa album',\r\n\t\t\talbumNameTemplate: 'Template sa folder ng Album',\r\n\t\t\tcreateCDFolder: 'Gumawa ng folder para sa mga CD',\r\n\t\t\tcreateStructurePlaylist: 'Gumawa ng istraktura ng folder para sa mga playlist',\r\n\t\t\tcreateSingleFolder: 'Gumawa ng istraktura ng folder para sa mga single'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: 'Pamagat sa mga track',\r\n\t\t\tpadTracks: 'Mga track ng Pad',\r\n\t\t\tpaddingSize: 'Patungan ang laki ng padding',\r\n\t\t\tillegalCharacterReplacer: 'Pamalit sa ilegal na Karakter'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: 'Mga Download',\r\n\t\t\tqueueConcurrency: 'Mga Kasabay na Download',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: 'Gustong Bitrate',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: 'Papatungan ko ba ang file?',\r\n\t\t\t\ty: 'Oo, patungan mo ang file',\r\n\t\t\t\tn: \"Hindi, huwag mong patungan ang file\",\r\n\t\t\t\tt: 'Patungan mo lang ang mga tag',\r\n\t\t\t\tb: 'Hindi, hayaan mo silang dalawa at lagyan mo lang ng numero sa kapareho niya',\r\n\t\t\t\te: \"Hindi, at huwag mong tignan ang mga extension\"\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: 'Binabaang bitrate',\r\n\t\t\tfallbackSearch: 'Maghanap para sa binabaan',\r\n\t\t\tlogErrors: 'Gumawa ng log file para sa mga error',\r\n\t\t\tlogSearched: 'Gumawa ng log file para sa mga hinanap na track',\r\n\t\t\tcreateM3U8File: 'Gumawa ng file sa playlist',\r\n\t\t\tsyncedLyrics: 'Gumawa ng mga .lyr file (Mga Sync Lyric)',\r\n\t\t\tplaylistFilenameTemplate: 'Template sa pangalan ng Playlist file',\r\n\t\t\tsaveDownloadQueue: 'I-save ang download queue kapag isasara the app'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: 'Mga cover ng album',\r\n\t\t\tsaveArtwork: 'I-save ang mga Cover',\r\n\t\t\tcoverImageTemplate: 'Template ng pangalan ng cover',\r\n\t\t\tsaveArtworkArtist: 'I-save ang imahe ng artist',\r\n\t\t\tartistImageTemplate: 'Template ng imahe ng artist',\r\n\t\t\tlocalArtworkSize: 'Laki ng lokal na artwork',\r\n\t\t\tembeddedArtworkSize: 'Laki ng Nakadikit na artwork',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: 'Anong gusto mong format para sa mga lokal na artwork?',\r\n\t\t\t\tjpg: 'jpeg na imahe',\r\n\t\t\t\tpng: 'png na imahe',\r\n\t\t\t\tboth: 'Parehong jpeg at png'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'Kalidad ng JPEG na imahe',\r\n\t\t\tembeddedArtworkPNG: 'I-save ang nakadikit na artwork bilang PNG',\r\n\t\t\tembeddedPNGWarning: 'Ang mga PNG ay hindi opisyal na suportado ng Deezer at maaaring magkaroon ng bug',\r\n\t\t\timageSizeWarning: 'Lahat ng mas mataas sa x1200 ay hindi opisyal na ginagamit sa Deezer, at posibleng magkaroon ng isyu',\r\n\t\t\tcoverDescriptionUTF8: 'I-save ang deskripsyon ng cover gamit ng UTF8 (iTunes Cover Fix)'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: 'Aling tag ang ise-save',\r\n\t\t\ttitle: 'Pamagat',\r\n\t\t\tartist: 'Artist',\r\n\t\t\talbum: 'Album',\r\n\t\t\tcover: 'Cover',\r\n\t\t\ttrackNumber: 'Bilang ng Track',\r\n\t\t\ttrackTotal: 'Kabuuang Track',\r\n\t\t\tdiscNumber: 'Bilang ng Disk',\r\n\t\t\tdiscTotal: 'Kabuuang Disk',\r\n\t\t\talbumArtist: 'Album Artist',\r\n\t\t\tgenre: 'Genre',\r\n\t\t\tyear: 'Taon',\r\n\t\t\tdate: 'Petsa',\r\n\t\t\texplicit: 'Mga Explicit na Lyric',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: 'Haba ng Track',\r\n\t\t\tbarcode: 'Barcode ng Album (UPC)',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: 'Replay Gain',\r\n\t\t\tlabel: 'Label ng Album',\r\n\t\t\tlyrics: 'Unsynchronized na mga Lyric',\r\n\t\t\tsyncedLyrics: 'Synchronized na mga Lyric',\r\n\t\t\tcopyright: 'Karapatang Ari',\r\n\t\t\tcomposer: 'Komposer',\r\n\t\t\tinvolvedPeople: 'Mga Kasamang Tao'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: 'Iba pa',\r\n\t\t\tsavePlaylistAsCompilation: 'I-save ang mga playlist bilang compilation',\r\n\t\t\tuseNullSeparator: 'Gumamit ng panghiwalay sa null',\r\n\t\t\tsaveID3v1: 'I-save rin ang ID3v1',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: 'Anong gusto mo para maihanay mga artist?',\r\n\t\t\t\tnothing: 'I-save lang ang pangunahing artist',\r\n\t\t\t\tdefault: 'Gamit ng standard na specification',\r\n\t\t\t\tandFeat: 'Gamit ng & at feat.',\r\n\t\t\t\tusing: 'Gamit ng \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: 'I-save lang ang pangunahing album ng artist',\r\n\t\t\talbumVariousArtists: 'Isama ang \"Various Artists\" sa mga Album Artist',\r\n\t\t\tremoveAlbumVersion: 'Tanggalin ang \"Album Version\" sa pamagat ng track',\r\n\t\t\tremoveDuplicateArtists: 'Tanggalin ang kombinasyon ng mga artist',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'Format ng petsa para sa mga FLAC file',\r\n\t\t\t\tyear: 'YYYY',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'DD'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: 'Anong gagawin ko sa mga itinampok na artist',\r\n\t\t\t\t0: 'Wala',\r\n\t\t\t\t1: 'Tanggalin mo sila sa Pamagat',\r\n\t\t\t\t3: 'Tanggalin mo sila sa Pamagat mismo at Pamagat ng Album',\r\n\t\t\t\t2: 'Ilipat mo sila sa pamagat'\r\n\t\t\t},\r\n\t\t\ttitleCasing: 'Pagleletra sa Pamagat',\r\n\t\t\tartistCasing: 'Pagleletra sa Artist',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: 'Walang babaguhin',\r\n\t\t\t\tlower: 'maliliit',\r\n\t\t\t\tupper: 'MALALAKI',\r\n\t\t\t\tstart: 'Simula Ng Bawata Salita',\r\n\t\t\t\tsentence: 'Kagaya ng pangungusap'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: 'Volume ng Preview',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: 'Mga gagawin pagkatapos ng download',\r\n\t\t\t\tdescription: 'Hayaan lang na blangko kung wala'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Spotify Features',\r\n\t\t\tclientID: 'Spotify ClientID',\r\n\t\t\tclientSecret: 'Spotify Client Secret',\r\n\t\t\tusername: 'Spotify Username',\r\n\t\t\tquestion: 'Paano ma-enable ang Spotify Features?'\r\n\t\t},\r\n\t\treset: 'Ibalik sa Dati',\r\n\t\tsave: 'I-save',\r\n\t\ttoasts: {\r\n\t\t\tinit: 'Ikinarga ang mga Setting!',\r\n\t\t\tupdate: 'In-update ang mga Setting!',\r\n\t\t\tARLcopied: 'Kinopya ang ARL sa clipboard'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: 'tahanan',\r\n\t\tsearch: 'maghanap',\r\n\t\tcharts: 'mga chart',\r\n\t\tfavorites: 'mga paborito',\r\n\t\tlinkAnalyzer: 'tagasuri ng link',\r\n\t\tsettings: 'mga setting',\r\n\t\tabout: 'tungkol sa'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: 'Pagpipili ng download'\r\n\t}\r\n}\r\n\r\nexport default ph\r\n","const zh_tw = {\r\n\tglobals: {\r\n\t\twelcome: '歡迎使用 deemix',\r\n\t\tback: '返回',\r\n\t\tloading: '載入中',\r\n\t\tdownload: '下載 {thing}',\r\n\t\tby: '{artist}',\r\n\t\tin: '於 {album}',\r\n\t\tdownload_hint: '下載',\r\n\t\tplay_hint: '播放',\r\n\t\ttoggle_download_tab_hint: '展開/折疊',\r\n\t\tclean_queue_hint: '清除完成',\r\n\t\tcancel_queue_hint: '取消全部',\r\n\t\topen_downloads_folder: '開啟下載資料夾',\r\n\t\tcut: '剪下',\r\n\t\tcopy: '複製',\r\n\t\tcopyLink: '複製連結',\r\n\t\tcopyImageLink: '複製圖片連結',\r\n\t\tcopyDeezerLink: '複製 deezer 連結',\r\n\t\tpaste: '貼上',\r\n\t\tlistTabs: {\r\n\t\t\tempty: '',\r\n\t\t\tall: '所有',\r\n\t\t\ttop_result: '最佳結果',\r\n\t\t\talbum: '專輯|專輯',\r\n\t\t\tartist: '藝人|藝人',\r\n\t\t\tsingle: '單曲',\r\n\t\t\ttitle: '標題|標題',\r\n\t\t\ttrack: '歌曲|歌曲',\r\n\t\t\ttrackN: '0 首歌曲| {n} 首歌曲| {n} 首歌曲',\r\n\t\t\treleaseN: '0 發行| {n} 發行| {n} 發行',\r\n\t\t\tplaylist: '播放清單|播放清單',\r\n\t\t\tcompile: '合輯|合輯',\r\n\t\t\tep: '迷你專輯 | 迷你專輯',\r\n\t\t\tbundle: 'bundle | bundles',\r\n\t\t\tmore: '更多專輯',\r\n\t\t\tfeatured: '出現於',\r\n\t\t\tspotifyPlaylist: 'Spotify 播放清單 | Spotify 播放清單',\r\n\t\t\treleaseDate: '發布日期',\r\n\t\t\terror: '錯誤'\r\n\t\t}\r\n\t},\r\n\tabout: {\r\n\t\tupdates: {\r\n\t\t\tcurrentVersion: '目前版本',\r\n\t\t\tversionNotAvailable: 'N/A',\r\n\t\t\tupdateAvailable: `您尚未更新至最新版本:{version}`,\r\n\t\t\tdeemixVersion: 'deemix 函示庫版本'\r\n\t\t},\r\n\t\ttitles: {\r\n\t\t\tusefulLinks: '實用連結',\r\n\t\t\tbugReports: '錯誤報告',\r\n\t\t\tcontributing: '貢獻',\r\n\t\t\tdonations: '贊助',\r\n\t\t\tlicense: '使用許可'\r\n\t\t},\r\n\t\tsubtitles: {\r\n\t\t\tbugReports: \"使用 deemix 時,遇到了什麼問題嗎?歡迎回報錯誤!\",\r\n\t\t\tcontributing: '您想替這個專案提出貢獻嗎?您可以透過許多不同的方式來幫忙!',\r\n\t\t\tdonations: '您想要捐款嗎?可以贊助我們!'\r\n\t\t},\r\n\t\tusesLibrary: '本程式基於 <strong>deemix</strong> 函示庫。您可以使用該函示庫來製作自己的前端。',\r\n\t\tthanks: `感謝 <strong>rtonno</strong>、<strong>uhwot</strong> 及 <strong>lollilol</strong> 對於本專案的貢獻,另外也感謝 <strong>BasCurtiz</strong> 及 <strong>scarvimane</strong> 幫忙製作本專案的圖示`,\r\n\t\tupToDate: `您可於 Telegram 上關注<a href=\"https://t.me/RemixDevNews\" target=\"_blank\">最新消息頻道</a>以取得最新動態。`,\r\n\t\tofficialWebsite: '官方網站',\r\n\t\tofficialRepo: '官方函示版本庫',\r\n\t\tofficialWebuiRepo: '官方 WebUI 版本庫',\r\n\t\tofficialSubreddit: '官方 Subreddit',\r\n\t\tnewsChannel: '最新消息頻道',\r\n\t\tquestions: `如果您對本程式有疑問或問題,請先在<a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\"> subreddit </a>上搜尋解決方案。如果找不到任何解決方法,則可以在我們的 subreddit 上發布與您問題相關的文章。`,\r\n\t\tbeforeReporting: `在報告錯誤之前,請確保您正在運行最新版本的程式,並且要報告的內容真的是一個錯誤,而不僅是您自己遇到的問題。`,\r\n\t\tbeSure: `請確保您所想回報的錯誤可在其他台裝置上再現的,並且<strong>請勿</strong>回報已知錯誤。`,\r\n\t\tduplicateReports: '請注意,重複的錯誤報告將被移除。',\r\n\t\tdontOpenIssues: `<strong>請勿</strong>透過本版本庫的 Issues 問問題,我們開 subreddit 是有原因的。`,\r\n\t\tnewUI: `如果您精通 Python則可以嘗試使用我們的函示庫來建立新的 UI或者透過<a href =\"https://codeberg.org/RemixDev/ deemix\" target =\"_ blank\">我們的版本庫</a>提出錯誤相關的 PR。`,\r\n\t\tacceptFeatures: `我也歡迎你提交新的功能-但前提是這個功能不能過於複雜-過於複雜的功能,應被新增至程式內而非函示庫內。`,\r\n\t\totherLanguages: `如果您精通其他程式語言,你也可以嘗試將 deemix 移植到其他程式語言中!`,\r\n\t\tunderstandingCode: `你需要幫助了解本專案的程式碼嗎?只需在 Telegram 或 Reddit 上按一下 RemixDev。`,\r\n\t\tcontributeWebUI: `如果你熟悉 Vue.jsJavaScript、HTML 或 CSS你也可以參與 <a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">WebUI</a> 前端的貢獻。`,\r\n\t\titsFree: `記得,<strong>這是一個免費的專案</strong><strong>在支持開發人員之前,應該先支持你喜歡的歌手或藝人</ strong>。`,\r\n\t\tnotObligated: `別認為你有義務捐款,無論如何我們都感謝您!`,\r\n\t\tlincensedUnder: `本作品使用 \r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">GNU General Public License 3.0</a> 許可授權。`\r\n\t},\r\n\tcharts: {\r\n\t\ttitle: '排行榜',\r\n\t\tchangeCountry: '改變國家',\r\n\t\tdownload: '下載排行榜'\r\n\t},\r\n\terrors: {\r\n\t\ttitle: '{name} 的錯誤',\r\n\t\tids: {\r\n\t\t\tinvalidURL: '無法識別網址',\r\n\t\t\tunsupportedURL: '尚不支持此網址',\r\n\t\t\tISRCnotOnDeezer: '無法在 Deezer 上使用單曲 ISRC',\r\n\t\t\tnotYourPrivatePlaylist: \"您無法下載他人的私人播放清單。\",\r\n\t\t\tspotifyDisabled: 'Spotify 功能未正確設定。',\r\n\t\t\ttrackNotOnDeezer: '在 Deezer 上找不到此歌曲!',\r\n\t\t\talbumNotOnDeezer: '在 Deezer 上找不到此專輯!',\r\n\t\t\tnotOnDeezer: '無法在 Deezer 上載入此歌曲!',\r\n\t\t\tnotEncoded: '本歌曲尚未編碼!',\r\n\t\t\tnotEncodedNoAlternative: '本歌曲尚未編碼,且無法找到其他替代歌曲!',\r\n\t\t\twrongBitrate: '找不到符合所設位元率的歌曲。',\r\n\t\t\twrongBitrateNoAlternative: '找不到符合所設位元率的歌曲,且無法找到其他替代歌曲!',\r\n\t\t\tno360RA: '本歌曲並不支援 Reality Audio 360。',\r\n\t\t\tnotAvailable: \"無法在 Deezer 伺服器載入此歌曲!\",\r\n\t\t\tnotAvailableNoAlternative: \"無法在 Deezer 伺服器載入此歌曲,且無法找到其他替代歌曲!\",\r\n\t\t\tnoSpaceLeft: \"本裝置可用空間已用盡!\",\r\n\t\t\talbumDoesntExists: \"本歌曲的專輯不存在,無法取得資訊\"\r\n\t\t}\r\n\t},\r\n\tfavorites: {\r\n\t\ttitle: '收藏',\r\n\t\tnoPlaylists: '尚未收藏任何播放清單',\r\n\t\tnoAlbums: '尚未收藏任何專輯',\r\n\t\tnoArtists: '尚未收藏任何藝人',\r\n\t\tnoTracks: '尚未收藏任何歌曲'\r\n\t},\r\n\thome: {\r\n\t\tneedTologin: '您需要先登入 Deezer 帳戶,然後才能開始下載。',\r\n\t\topenSettings: '開啟設定',\r\n\t\tsections: {\r\n\t\t\tpopularPlaylists: '熱門播放清單',\r\n\t\t\tpopularAlbums: '熱門專輯'\r\n\t\t}\r\n\t},\r\n\tlinkAnalyzer: {\r\n\t\tinfo: '您可以透過此工具取得您所想下載的連結的相關資訊。',\r\n\t\tuseful: \"比如,當您所想下載的歌曲無法在您的國家播放,且您想知道哪些國家可以播放此歌曲時,您可使用此工具。\",\r\n\t\tlinkNotSupported: '尚未支援此連結',\r\n\t\tlinkNotSupportedYet: '我們似乎尚未支援此連結,請改用其他連結。',\r\n\t\ttable: {\r\n\t\t\tid: 'ID',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tupc: 'UPC',\r\n\t\t\tduration: '長度',\r\n\t\t\tdiskNumber: '光碟編號',\r\n\t\t\ttrackNumber: '歌曲編號',\r\n\t\t\treleaseDate: '發布日期',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\tlabel: '標籤',\r\n\t\t\trecordType: '媒體類型',\r\n\t\t\tgenres: '類型',\r\n\t\t\ttracklist: '歌曲清單'\r\n\t\t}\r\n\t},\r\n\tsearch: {\r\n\t\tstartSearching: '開始搜尋!',\r\n\t\tdescription: '您可以搜索歌曲名稱、專輯、藝人、播放清單...等等。您也可以直接貼上 Deezer 網址。',\r\n\t\tfans: '{n} 個粉絲',\r\n\t\tnoResults: '無搜尋結果',\r\n\t\tnoResultsTrack: '找不到歌曲',\r\n\t\tnoResultsAlbum: '找不到專輯',\r\n\t\tnoResultsArtist: '找不到藝人',\r\n\t\tnoResultsPlaylist: '找不到播放清單'\r\n\t},\r\n\tsearchbar: '搜尋任何關鍵字(或貼上連結)',\r\n\tdownloads: '下載',\r\n\ttoasts: {\r\n\t\trestoringQueue: '正在恢復下載清單...',\r\n\t\tqueueRestored: '下載清單已恢復!',\r\n\t\taddedToQueue: '已新增 {item} 到下載清單中',\r\n\t\taddedMoreToQueue: '已新增 {n} 個項目到下載清單中',\r\n\t\talreadyInQueue: '{item} 已在下載清單中!',\r\n\t\tfinishDownload: '{item} 已完成下載。',\r\n\t\tallDownloaded: '全部下載完成!',\r\n\t\trefreshFavs: '刷新完成!',\r\n\t\tloggingIn: '登入中...',\r\n\t\tloggedIn: '登入',\r\n\t\talreadyLogged: '已登入',\r\n\t\tloginFailed: \"無法登入\",\r\n\t\tloggedOut: '登出',\r\n\t\tcancellingCurrentItem: '取消當前項目。',\r\n\t\tcurrentItemCancelled: '當前項目已取消。',\r\n\t\tstartAddingArtist: '已新增 {artist} 個專輯到下載清單中',\r\n\t\tfinishAddingArtist: '已新增 {artist} 個專輯到下載清單中',\r\n\t\tstartConvertingSpotifyPlaylist: '將 Spotify 歌曲轉換為 Deezer 歌曲中',\r\n\t\tfinishConvertingSpotifyPlaylist: '已轉換 Spotify 播放清單',\r\n\t\tloginNeededToDownload: '您需要登入才能下載歌曲!',\r\n\t\tdeezerNotAvailable: 'Deezer 在您所在的國家/地區無法使用。請您使用 VPN。'\r\n\t},\r\n\tsettings: {\r\n\t\ttitle: '設定',\r\n\t\tlanguages: '語言',\r\n\t\tlogin: {\r\n\t\t\ttitle: '登入',\r\n\t\t\tloggedIn: '目前以 {username} 的身份登入',\r\n\t\t\tarl: {\r\n\t\t\t\tquestion: '如何取得自己的 ARL',\r\n\t\t\t\tupdate: '更新 ARL'\r\n\t\t\t},\r\n\t\t\tlogout: '登出',\r\n\t\t\tlogin: '透過 deezer.com 登入'\r\n\t\t},\r\n\t\tappearance: {\r\n\t\t\ttitle: '外觀',\r\n\t\t\tslimDownloadTab: '薄型下載分頁'\r\n\t\t},\r\n\t\tdownloadPath: {\r\n\t\t\ttitle: '下載目錄'\r\n\t\t},\r\n\t\ttemplates: {\r\n\t\t\ttitle: '檔案名稱格式',\r\n\t\t\ttracknameTemplate: '單曲名稱格式',\r\n\t\t\talbumTracknameTemplate: '專輯單曲名稱格式',\r\n\t\t\tplaylistTracknameTemplate: '播放清單單曲名稱格式'\r\n\t\t},\r\n\t\tfolders: {\r\n\t\t\ttitle: '資料夾',\r\n\t\t\tcreatePlaylistFolder: '替播放清單建立資料夾',\r\n\t\t\tplaylistNameTemplate: '播放清單資料夾名稱格式',\r\n\t\t\tcreateArtistFolder: '替藝人建立資料夾',\r\n\t\t\tartistNameTemplate: '藝人資料夾名稱格式',\r\n\t\t\tcreateAlbumFolder: '替專輯建立資料夾',\r\n\t\t\talbumNameTemplate: '專輯資料夾名稱格式',\r\n\t\t\tcreateCDFolder: '替 CD 建立資料夾',\r\n\t\t\tcreateStructurePlaylist: '建立播放清單資料夾結構',\r\n\t\t\tcreateSingleFolder: '建立單曲資料夾結構'\r\n\t\t},\r\n\t\ttrackTitles: {\r\n\t\t\ttitle: '單曲名稱',\r\n\t\t\tpadTracks: '歌曲數目字串填充',\r\n\t\t\tpaddingSize: '覆蓋數目字串填充長度',\r\n\t\t\tillegalCharacterReplacer: '替換非法字元'\r\n\t\t},\r\n\t\tdownloads: {\r\n\t\t\ttitle: '下載',\r\n\t\t\tqueueConcurrency: '並行下載',\r\n\t\t\tmaxBitrate: {\r\n\t\t\t\ttitle: '偏好位元率',\r\n\t\t\t\t9: 'FLAC 1411kbps',\r\n\t\t\t\t3: 'MP3 320kbps',\r\n\t\t\t\t1: 'MP3 128kbps'\r\n\t\t\t},\r\n\t\t\toverwriteFile: {\r\n\t\t\t\ttitle: '是否要覆蓋檔案?',\r\n\t\t\t\ty: '是,覆蓋檔案',\r\n\t\t\t\tn: \"否,請勿覆蓋檔案\",\r\n\t\t\t\tt: '僅覆蓋標籤',\r\n\t\t\t\tb: '否,保留兩個檔案並在重複的檔名中加入一個數字',\r\n\t\t\t\te: \"否,不顧慮附檔名\"\r\n\t\t\t},\r\n\t\t\tfallbackBitrate: '當偏好位元率無法下載時,下載其他版本',\r\n\t\t\tfallbackSearch: '當搜尋結果無法使用時,使用其他搜尋結果',\r\n\t\t\tlogErrors: '記錄錯誤至日誌',\r\n\t\t\tlogSearched: '記錄搜尋歌曲至日誌',\r\n\t\t\tcreateM3U8File: '建立播放清單檔案',\r\n\t\t\tsyncedLyrics: '建立 .lyr 檔案(同步歌詞)',\r\n\t\t\tplaylistFilenameTemplate: '播放清單檔名格式',\r\n\t\t\tsaveDownloadQueue: '關閉應用程式時,保存下載清單'\r\n\t\t},\r\n\t\tcovers: {\r\n\t\t\ttitle: '專輯封面',\r\n\t\t\tsaveArtwork: '保存封面',\r\n\t\t\tcoverImageTemplate: '封面檔名格式',\r\n\t\t\tsaveArtworkArtist: '保存藝人照片',\r\n\t\t\tartistImageTemplate: '藝人照片檔名格式',\r\n\t\t\tlocalArtworkSize: '本地圖片大小',\r\n\t\t\tembeddedArtworkSize: '嵌入圖片大小',\r\n\t\t\tlocalArtworkFormat: {\r\n\t\t\t\ttitle: '您希望本地圖片採用哪種格式?',\r\n\t\t\t\tjpg: 'JPEG',\r\n\t\t\t\tpng: 'PNG',\r\n\t\t\t\tboth: 'JPEG 及 PNG'\r\n\t\t\t},\r\n\t\t\tjpegImageQuality: 'JPEG 影像品質',\r\n\t\t\tembeddedArtworkPNG: '將嵌入式圖片存為 PNG',\r\n\t\t\tembeddedPNGWarning: 'Deezer 官方並不支援 PNG結果可能有誤',\r\n\t\t\timageSizeWarning: 'Deezer 官方並不使用高於 x1200 的圖片,您可能會遇到問題',\r\n\t\t\tcoverDescriptionUTF8: '使用 UTF8 保存封面敘述(修正 iTunes 專輯封面)'\r\n\t\t},\r\n\t\ttags: {\r\n\t\t\thead: '要保存哪些標籤',\r\n\t\t\ttitle: '標題',\r\n\t\t\tartist: '藝人',\r\n\t\t\talbum: '專輯',\r\n\t\t\tcover: '專輯封面',\r\n\t\t\ttrackNumber: '單曲編號',\r\n\t\t\ttrackTotal: '總計歌曲',\r\n\t\t\tdiscNumber: '光碟編號',\r\n\t\t\tdiscTotal: '光碟總數',\r\n\t\t\talbumArtist: '專輯藝人',\r\n\t\t\tgenre: '類型',\r\n\t\t\tyear: '年',\r\n\t\t\tdate: '日期',\r\n\t\t\texplicit: '不良歌詞',\r\n\t\t\tisrc: 'ISRC',\r\n\t\t\tlength: '單曲長度',\r\n\t\t\tbarcode: '專輯條碼UPC',\r\n\t\t\tbpm: 'BPM',\r\n\t\t\treplayGain: '重播增益Replay Gain',\r\n\t\t\tlabel: '專輯標籤',\r\n\t\t\tlyrics: '不同步的歌詞',\r\n\t\t\tsyncedLyrics: '同步歌詞',\r\n\t\t\tcopyright: '版權',\r\n\t\t\tcomposer: '作曲家',\r\n\t\t\tinvolvedPeople: '相關藝人'\r\n\t\t},\r\n\t\tother: {\r\n\t\t\ttitle: '其他',\r\n\t\t\tsavePlaylistAsCompilation: '將播放清單儲存為合輯',\r\n\t\t\tuseNullSeparator: '使用空分隔符',\r\n\t\t\tsaveID3v1: '保存 ID3v1 標籤',\r\n\t\t\tmultiArtistSeparator: {\r\n\t\t\t\ttitle: '如何隔開作者名稱?',\r\n\t\t\t\tnothing: '僅保留主作者',\r\n\t\t\t\tdefault: '使用標準規格',\r\n\t\t\t\tandFeat: '使用 & 及 feat.',\r\n\t\t\t\tusing: '使用 \"{separator}\"'\r\n\t\t\t},\r\n\t\t\tsingleAlbumArtist: '僅儲存專輯主作者名稱',\r\n\t\t\talbumVariousArtists: '於專輯作者欄位中保留「多位藝人 (Various Artists)」字樣',\r\n\t\t\tremoveAlbumVersion: '於單曲名稱中移除「專輯版本 (Album Version)」字樣',\r\n\t\t\tremoveDuplicateArtists: '移除重複的作者名稱',\r\n\t\t\tdateFormat: {\r\n\t\t\t\ttitle: 'FLAC 檔案日期格式',\r\n\t\t\t\tyear: 'YYYY',\r\n\t\t\t\tmonth: 'MM',\r\n\t\t\t\tday: 'DD'\r\n\t\t\t},\r\n\t\t\tfeaturedToTitle: {\r\n\t\t\t\ttitle: '如何處理客串藝人名稱 (如 feat. 等字樣) ',\r\n\t\t\t\t0: '什麼都不做',\r\n\t\t\t\t1: '從標題中刪除',\r\n\t\t\t\t3: '從標題和專輯標題中刪除',\r\n\t\t\t\t2: '將其移至標題'\r\n\t\t\t},\r\n\t\t\ttitleCasing: '歌曲名稱大小寫',\r\n\t\t\tartistCasing: '藝人名稱大小寫',\r\n\t\t\tcasing: {\r\n\t\t\t\tnothing: '保持不變',\r\n\t\t\t\tlower: '小寫',\r\n\t\t\t\tupper: '大寫',\r\n\t\t\t\tstart: '字詞開頭大寫',\r\n\t\t\t\tsentence: '句子大寫'\r\n\t\t\t},\r\n\t\t\tpreviewVolume: '預覽音量',\r\n\t\t\texecuteCommand: {\r\n\t\t\t\ttitle: '下載後執行指令',\r\n\t\t\t\tdescription: '留空則不執行'\r\n\t\t\t}\r\n\t\t},\r\n\t\tspotify: {\r\n\t\t\ttitle: 'Spotify 功能',\r\n\t\t\tclientID: 'Spotify 客戶端 ID',\r\n\t\t\tclientSecret: 'Spotify 客戶端密碼',\r\n\t\t\tusername: 'Spotify 用戶名',\r\n\t\t\tquestion: '如何啟用 Spotify 功能?'\r\n\t\t},\r\n\t\treset: '重設至預設',\r\n\t\tsave: '儲存',\r\n\t\ttoasts: {\r\n\t\t\tinit: '已載入設定!',\r\n\t\t\tupdate: '已更新設定!',\r\n\t\t\tARLcopied: '已複製 ARL 到剪貼簿中'\r\n\t\t}\r\n\t},\r\n\tsidebar: {\r\n\t\thome: '首頁',\r\n\t\tsearch: '搜尋',\r\n\t\tcharts: '排行榜',\r\n\t\tfavorites: '收藏',\r\n\t\tlinkAnalyzer: '連結分析',\r\n\t\tsettings: '設定',\r\n\t\tabout: '關於'\r\n\t},\r\n\ttracklist: {\r\n\t\tdownloadSelection: '下載所選'\r\n\t}\r\n}\r\n\r\nexport default zh_tw","import it from '@/lang/it'\r\nimport en from '@/lang/en'\r\nimport es from '@/lang/es'\r\nimport de from '@/lang/de'\r\nimport fr from '@/lang/fr'\r\nimport id from '@/lang/id'\r\nimport pt from '@/lang/pt-pt'\r\nimport pt_br from '@/lang/pt-br'\r\nimport ru from '@/lang/ru'\r\nimport tr from '@/lang/tr'\r\nimport vn from '@/lang/vn'\r\nimport hr from '@/lang/hr'\r\nimport ar from '@/lang/ar'\r\nimport ko from '@/lang/ko'\r\nimport ph from '@/lang/ph'\r\nimport zh_tw from '@/lang/zh-tw'\r\n\r\nexport const locales = {\r\n\tit,\r\n\ten,\r\n\tes,\r\n\tde,\r\n\tfr,\r\n\tid,\r\n\tpt,\r\n\tpt_br,\r\n\tru,\r\n\ttr,\r\n\tvn,\r\n\thr,\r\n\tar,\r\n\tko,\r\n\tph,\r\n\tzh_tw\r\n}\r\n","import Vue from 'vue'\r\nimport VueI18n from 'vue-i18n'\r\n\r\nimport { locales } from '@/lang/index'\r\n\r\nVue.use(VueI18n)\r\n\r\nconst storedLocale = localStorage.getItem('locale')\r\nconst DEFAULT_LANG = storedLocale || 'en'\r\n\r\ndocument.querySelector('html').setAttribute('lang', DEFAULT_LANG)\r\n\r\nconst i18n = new VueI18n({\r\n\tlocale: DEFAULT_LANG,\r\n\tfallbackLocale: 'en',\r\n\tmessages: locales,\r\n\tpluralizationRules: {\r\n\t\t/**\r\n\t\t * @param {number}\tchoice \t\t\t\t\tA choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\r\n\t\t * @param {number}\tchoicesLength\t\tAn overall amount of available choices\r\n\t\t * @returns \t\t\t\tA final choice index to select plural word by\r\n\t\t */\r\n\t\tru: function(choice, choicesLength) {\r\n\t\t\tvar n = Math.abs(choice) % 100\r\n\t\t\tvar n1 = n % 10\r\n\r\n\t\t\tif (n > 10 && n < 20) {\r\n\t\t\t\treturn 2\r\n\t\t\t}\r\n\r\n\t\t\tif (n1 > 1 && n1 < 5) {\r\n\t\t\t\treturn 1\r\n\t\t\t}\r\n\r\n\t\t\tif (n1 == 1) {\r\n\t\t\t\treturn 0\r\n\t\t\t}\r\n\r\n\t\t\treturn 2\r\n\t\t}\r\n\t}\r\n})\r\n\r\nexport default i18n\r\n","/*!\n * vue-router v3.3.4\n * (c) 2020 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 (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isRouterError (err, errorType) {\n return isError(err) && err._isRouter && (errorType == null || err.type === errorType)\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\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\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cachce\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\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\nvar decode = decodeURIComponent;\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 parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\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\n ? decode(parts.join('='))\n : 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 ? Object.keys(obj).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 }).filter(function (x) { return x.length > 0; }).join('&') : 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) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\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);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\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\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar 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 exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (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 (\"RouterLink 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 (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first <a> child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the <a> 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 <a> 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) {\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);\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\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 instances: {},\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 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 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 var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = val;\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 window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\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\nvar NavigationFailureType = {\n redirected: 1,\n aborted: 2,\n cancelled: 3,\n duplicated: 4\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 return createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n )\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\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n // Initial redirection should still trigger the onReady onSuccess\n // https://github.com/vuejs/vue-router/issues/3225\n if (!isRouterError(err, NavigationFailureType.redirected)) {\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n 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 (!isRouterError(err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) {\n cb();\n });\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.teardownListeners = function teardownListeners () {\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect <base> 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 cbs,\n isValid\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n next(cb);\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (\n instances[key] &&\n !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n ) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = decodeURI(window.location.pathname);\n if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n // decode the hash but not the search or hash\n // as search(query) is already decoded\n // https://github.com/vuejs/vue-router/issues/2708\n var searchIndex = href.indexOf('?');\n if (searchIndex < 0) {\n var hashIndex = href.indexOf('#');\n if (hashIndex > -1) {\n href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex);\n } else { href = decodeURI(href); }\n } else {\n href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex);\n }\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n },\n function (err) {\n if (isRouterError(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = 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 (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this$1.history.teardownListeners();\n }\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 setupListeners = function () {\n history.setupListeners();\n };\n history.transitionTo(history.getCurrentLocation(), setupListeners, setupListeners);\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\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(\n to,\n current,\n append,\n this\n );\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.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.3.4';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { socket } from '@/utils/socket'\r\nimport paypal from '@/assets/paypal.svg'\r\nimport ethereum from '@/assets/ethereum.svg'\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n\tdata: () => ({\r\n\t\tpaypal,\r\n\t\tethereum,\r\n\t\tcurrent: null,\r\n\t\tlatest: null,\r\n\t\tupdateAvailable: false,\r\n\t\tdeemixVersion: null\r\n\t}),\r\n\tcomputed: {\r\n\t\t...mapGetters(['getAboutInfo'])\r\n\t},\r\n\tmethods: {\r\n\t\tinitUpdate(data) {\r\n\t\t\tconst { currentCommit, latestCommit, updateAvailable, deemixVersion } = data\r\n\t\t\tthis.current = currentCommit\r\n\t\t\tthis.latest = latestCommit\r\n\t\t\tthis.updateAvailable = updateAvailable\r\n\t\t\tthis.deemixVersion = deemixVersion\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tthis.initUpdate(this.getAboutInfo)\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"about_tab\" class=\"main_tabcontent\" ref=\"root\">\r\n\t\t<h2 class=\"page_heading\">{{ $t('sidebar.about') }}</h2>\r\n\t\t<ul>\r\n\t\t\t<li>\r\n\t\t\t\t{{ $t('about.updates.currentVersion') }}:\r\n\t\t\t\t<span>{{ current || $t('about.updates.versionNotAvailable') }}</span>\r\n\t\t\t</li>\r\n\t\t\t<li>{{ $t('about.updates.deemixVersion') }}: {{ deemixVersion }}</li>\r\n\t\t\t<li v-if=\"updateAvailable && latest\">{{ $t('about.updates.updateAvailable', { version: latest }) }}</li>\r\n\t\t</ul>\r\n\r\n\t\t<ul>\r\n\t\t\t<li v-html=\"$t('about.usesLibrary')\"></li>\r\n\t\t\t<li v-html=\"$t('about.thanks')\"></li>\r\n\t\t\t<li v-html=\"$t('about.upToDate')\"></li>\r\n\t\t</ul>\r\n\r\n\t\t<h2>{{ $t('about.titles.usefulLinks') }}</h2>\r\n\t\t<ul class=\"no-dots\">\r\n\t\t\t<li>\r\n\t\t\t\t<a href=\"https://deemix.app\" target=\"_blank\">🌍 {{ $t('about.officialWebsite') }}</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a href=\"https://codeberg.org/RemixDev/deemix\" target=\"_blank\">🚀 {{ $t('about.officialRepo') }}</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a href=\"https://codeberg.org/RemixDev/deemix-webui\" target=\"_blank\">💻 {{ $t('about.officialWebuiRepo') }}</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a href=\"https://www.reddit.com/r/deemix\" target=\"_blank\">🤖 {{ $t('about.officialSubreddit') }}</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<a href=\"https://t.me/RemixDevNews\" target=\"_blank\">📰 {{ $t('about.newsChannel') }}</a>\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\r\n\t\t<h2>\r\n\t\t\t{{ $t('about.titles.bugReports') }}\r\n\t\t\t<span class=\"subheading\">\r\n\t\t\t\t{{ $t('about.subtitles.bugReports') }}\r\n\t\t\t</span>\r\n\t\t</h2>\r\n\t\t<ul>\r\n\t\t\t<li v-html=\"$t('about.questions')\"></li>\r\n\t\t\t<li>\r\n\t\t\t\t{{ $t('about.beforeReporting') }}\r\n\t\t\t</li>\r\n\t\t\t<li v-html=\"$t('about.beSure')\"></li>\r\n\t\t\t<li>\r\n\t\t\t\t{{ $t('about.duplicateReports') }}\r\n\t\t\t</li>\r\n\t\t\t<li v-html=\"$t('about.dontOpenIssues')\"></li>\r\n\t\t</ul>\r\n\r\n\t\t<h2>\r\n\t\t\t{{ $t('about.titles.contributing') }}\r\n\t\t\t<span class=\"subheading\">\r\n\t\t\t\t{{ $t('about.subtitles.contributing') }}\r\n\t\t\t</span>\r\n\t\t</h2>\r\n\t\t<ul>\r\n\t\t\t<li v-html=\"$t('about.newUI')\"></li>\r\n\t\t\t<li>\r\n\t\t\t\t{{ $t('about.acceptFeatures') }}\r\n\t\t\t</li>\r\n\t\t\t<li v-html=\"$t('about.contributeWebUI')\"></li>\r\n\t\t\t<li>\r\n\t\t\t\t{{ $t('about.otherLanguages') }}\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t{{ $t('about.understandingCode') }}\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\r\n\t\t<h2>\r\n\t\t\t{{ $t('about.titles.donations') }}\r\n\t\t\t<span class=\"subheading\">\r\n\t\t\t\t{{ $t('about.subtitles.donations') }}\r\n\t\t\t</span>\r\n\t\t</h2>\r\n\t\t<ul>\r\n\t\t\t<li v-html=\"$t('about.itsFree')\"></li>\r\n\t\t\t<li>\r\n\t\t\t\t{{ $t('about.notObligated') }}\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\t\t<ul>\r\n\t\t\t<li>\r\n\t\t\t\t<i v-html=\"paypal\" />\r\n\t\t\t\t<strong>PayPal:</strong>\r\n\t\t\t\t<a href=\"https://paypal.me/RemixDev\" target=\"_blank\">PayPal.me/RemixDev</a>\r\n\t\t\t</li>\r\n\t\t\t<li>\r\n\t\t\t\t<i class=\"ethereum\" v-html=\"ethereum\" />\r\n\t\t\t\t<strong>Ethereum:</strong> 0x1d2aa67e671485CD4062289772B662e0A6Ff976c\r\n\t\t\t</li>\r\n\t\t</ul>\r\n\r\n\t\t<h2>{{ $t('about.titles.license') }}</h2>\r\n\t\t<p>\r\n\t\t\t<a rel=\"license\" href=\"https://www.gnu.org/licenses/gpl-3.0.en.html\" target=\"_blank\">\r\n\t\t\t\t<img\r\n\t\t\t\t\talt=\"GNU General Public License\"\r\n\t\t\t\t\tstyle=\"border-width: 0\"\r\n\t\t\t\t\tsrc=\"https://www.gnu.org/graphics/gplv3-127x51.png\"\r\n\t\t\t\t/>\r\n\t\t\t</a>\r\n\t\t</p>\r\n\t\t<p v-html=\"$t('about.lincensedUnder')\"></p>\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\nli,\r\np,\r\na {\r\n\tletter-spacing: 0.4px;\r\n\tfont-size: 20px;\r\n\tline-height: 1.2;\r\n}\r\n\r\ni {\r\n\tvertical-align: middle;\r\n}\r\n\r\ni /deep/ svg {\r\n\tfill: white;\r\n\twidth: 20px;\r\n}\r\n\r\n.ethereum /deep/ svg {\r\n\tfill: var(--foreground);\r\n}\r\n\r\n:link {\r\n\ttext-decoration: none;\r\n}\r\n\r\n#about_tab {\r\n\tmargin-bottom: 40px;\r\n}\r\n\r\nh2 {\r\n\ttext-transform: capitalize;\r\n\r\n\t&:not(.page_heading) {\r\n\t\tfont-size: 2rem;\r\n\t\tborder-bottom: 1px solid hsla(0, 0%, 20%, 0.25);\r\n\t\tpadding: {\r\n\t\t\ttop: 2rem;\r\n\t\t\tbottom: 1rem;\r\n\t\t}\r\n\t}\r\n\r\n\t.subheading {\r\n\t\tdisplay: block;\r\n\t\tfont-size: 0.5em;\r\n\t\tmargin-top: 0.5em;\r\n\t\tfont-weight: normal;\r\n\t\topacity: 0.8;\r\n\t\ttext-transform: none;\r\n\t}\r\n}\r\n\r\np {\r\n\tmargin: 0 !important;\r\n}\r\n\r\nul {\r\n\tli {\r\n\t\tmargin-bottom: 7px;\r\n\t}\r\n\r\n\th2 + & {\r\n\t\tmargin-top: 1rem;\r\n\t}\r\n\r\n\tul + & {\r\n\t\tmargin-top: 1.25rem;\r\n\t}\r\n\r\n\t&.no-dots {\r\n\t\tlist-style-type: none;\r\n\t}\r\n\r\n\t&:not(.no-dots) {\r\n\t\tlist-style-type: none;\r\n\r\n\t\tli {\r\n\t\t\tposition: relative;\r\n\r\n\t\t\t&::before {\r\n\t\t\t\tcontent: '—';\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\tleft: -30px;\r\n\t\t\t\topacity: 0.25;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { socket } from '@/utils/socket'\r\nimport paypal from '@/assets/paypal.svg'\r\nimport ethereum from '@/assets/ethereum.svg'\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n\tdata: () => ({\r\n\t\tpaypal,\r\n\t\tethereum,\r\n\t\tcurrent: null,\r\n\t\tlatest: null,\r\n\t\tupdateAvailable: false,\r\n\t\tdeemixVersion: null\r\n\t}),\r\n\tcomputed: {\r\n\t\t...mapGetters(['getAboutInfo'])\r\n\t},\r\n\tmethods: {\r\n\t\tinitUpdate(data) {\r\n\t\t\tconst { currentCommit, latestCommit, updateAvailable, deemixVersion } = data\r\n\t\t\tthis.current = currentCommit\r\n\t\t\tthis.latest = latestCommit\r\n\t\t\tthis.updateAvailable = updateAvailable\r\n\t\t\tthis.deemixVersion = deemixVersion\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tthis.initUpdate(this.getAboutInfo)\r\n\t}\r\n}\r\n</script>\r\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n","import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n","import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n","import baseOrderBy from './_baseOrderBy.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nexport default orderBy;\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { isEmpty, orderBy } from 'lodash-es'\r\nimport { socket } from '@/utils/socket'\r\nimport Downloads from '@/utils/downloads'\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nimport BackButton from '@components/globals/BackButton.vue'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcurrentTab: '',\r\n\t\t\tsortKey: 'release_date',\r\n\t\t\tsortOrder: 'desc',\r\n\t\t\ttitle: '',\r\n\t\t\timage: '',\r\n\t\t\ttype: '',\r\n\t\t\tlink: '',\r\n\t\t\thead: null,\r\n\t\t\tbody: null\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tshowTable() {\r\n\t\t\tif (this.body) {\r\n\t\t\t\tif (this.sortKey == 'nb_song')\r\n\t\t\t\t\treturn orderBy(\r\n\t\t\t\t\t\tthis.body[this.currentTab],\r\n\t\t\t\t\t\tfunction (o) {\r\n\t\t\t\t\t\t\treturn new Number(o.nb_song)\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.sortOrder\r\n\t\t\t\t\t)\r\n\t\t\t\telse return orderBy(this.body[this.currentTab], this.sortKey, this.sortOrder)\r\n\t\t\t} else return []\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tBackButton\r\n\t},\r\n\tmounted() {\r\n\t\tsocket.on('show_artist', this.showArtist)\r\n\r\n\t\tEventBus.$on('artistTab:updateSelected', this.updateSelected)\r\n\t\tEventBus.$on('artistTab:changeTab', this.changeTab)\r\n\t},\r\n\tmethods: {\r\n\t\treset() {\r\n\t\t\tthis.title = 'Loading...'\r\n\t\t\tthis.image = ''\r\n\t\t\tthis.type = ''\r\n\t\t\tthis.currentTab = ''\r\n\t\t\tthis.sortKey = 'release_date'\r\n\t\t\tthis.sortOrder = 'desc'\r\n\t\t\tthis.link = ''\r\n\t\t\tthis.head = []\r\n\t\t\tthis.body = null\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\te.stopPropagation()\r\n\t\t\tDownloads.sendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tsortBy(key) {\r\n\t\t\tif (key == this.sortKey) {\r\n\t\t\t\tthis.sortOrder = this.sortOrder == 'asc' ? 'desc' : 'asc'\r\n\t\t\t} else {\r\n\t\t\t\tthis.sortKey = key\r\n\t\t\t\tthis.sortOrder = 'asc'\r\n\t\t\t}\r\n\t\t},\r\n\t\tchangeTab(tab) {\r\n\t\t\tthis.currentTab = tab\r\n\t\t},\r\n\t\tupdateSelected() {\r\n\t\t\t// Last tab opened logic\r\n\t\t},\r\n\t\tcheckNewRelease(date) {\r\n\t\t\tlet g1 = new Date()\r\n\t\t\tlet g2 = new Date(date)\r\n\t\t\tg2.setDate(g2.getDate() + 3)\r\n\t\t\tg1.setHours(0, 0, 0, 0)\r\n\r\n\t\t\treturn g1.getTime() <= g2.getTime()\r\n\t\t},\r\n\t\tshowArtist(data) {\r\n\t\t\tthis.reset()\r\n\r\n\t\t\tconst { name, picture_xl, id, releases } = data\r\n\r\n\t\t\tthis.title = name\r\n\t\t\tthis.image = picture_xl\r\n\t\t\tthis.type = 'Artist'\r\n\t\t\tthis.link = `https://www.deezer.com/artist/${id}`\r\n\t\t\tif (this.currentTab === '') this.currentTab = Object.keys(releases)[0]\r\n\t\t\tthis.sortKey = 'release_date'\r\n\t\t\tthis.sortOrder = 'desc'\r\n\t\t\tthis.head = [\r\n\t\t\t\t{ title: this.$tc('globals.listTabs.title', 1), sortKey: 'title' },\r\n\t\t\t\t{ title: this.$t('globals.listTabs.releaseDate'), sortKey: 'release_date' },\r\n\t\t\t\t{ title: this.$tc('globals.listTabs.track', 2), sortKey: 'nb_song' },\r\n\t\t\t\t{ title: '', width: '32px' }\r\n\t\t\t]\r\n\t\t\tif (isEmpty(releases)) {\r\n\t\t\t\tthis.body = null\r\n\t\t\t} else {\r\n\t\t\t\tthis.body = releases\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"artist_tab\" class=\"main_tabcontent image_header\" ref=\"root\">\r\n\t\t<header\r\n\t\t\tclass=\"inline-flex\"\r\n\t\t\t:style=\"{\r\n\t\t\t\t'background-image':\r\n\t\t\t\t\t'linear-gradient(to bottom, transparent 0%, var(--main-background) 100%), url(\\'' + image + '\\')'\r\n\t\t\t}\"\r\n\t\t>\r\n\t\t\t<BackButton />\r\n\r\n\t\t\t<h1>{{ title }}</h1>\r\n\t\t\t<div role=\"button\" aria-label=\"download\" @click.stop=\"addToQueue\" :data-link=\"link\" class=\"fab right\">\r\n\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t</div>\r\n\t\t</header>\r\n\r\n\t\t<div class=\"tab\">\r\n\t\t\t<button\r\n\t\t\t\tv-for=\"(item, name) in body\"\r\n\t\t\t\t:key=\"name\"\r\n\t\t\t\tclass=\"selective\"\r\n\t\t\t\t:class=\"{ active: name === currentTab }\"\r\n\t\t\t\t:href=\"'#artist_' + name\"\r\n\t\t\t\t@click=\"changeTab(name)\"\r\n\t\t\t>\r\n\t\t\t\t{{ $tc(`globals.listTabs.${name}`, 2) }}\r\n\t\t\t</button>\r\n\t\t</div>\r\n\r\n\t\t<table class=\"table\">\r\n\t\t\t<thead>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th\r\n\t\t\t\t\t\tv-for=\"data in head\"\r\n\t\t\t\t\t\t@click=\"data.sortKey ? sortBy(data.sortKey) : null\"\r\n\t\t\t\t\t\t:style=\"{ width: data.width ? data.width : 'auto' }\"\r\n\t\t\t\t\t\t:class=\"{\r\n\t\t\t\t\t\t\t'sort-asc': data.sortKey == sortKey && sortOrder == 'asc',\r\n\t\t\t\t\t\t\t'sort-desc': data.sortKey == sortKey && sortOrder == 'desc',\r\n\t\t\t\t\t\t\tsortable: data.sortKey,\r\n\t\t\t\t\t\t\tclickable: data.sortKey\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<!-- Need to change this behaviour for translations -->\r\n\t\t\t\t\t\t{{ data.title }}\r\n\t\t\t\t\t</th>\r\n\t\t\t\t</tr>\r\n\t\t\t</thead>\r\n\t\t\t<tbody>\r\n\t\t\t\t<tr v-for=\"release in showTable\" :key=\"release.id\">\r\n\t\t\t\t\t<router-link tag=\"td\" class=\"inline-flex clickable\" :to=\"{ name: 'Album', params: { id: release.id } }\">\r\n\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\tclass=\"rounded coverart\"\r\n\t\t\t\t\t\t\t:src=\"release.cover_small\"\r\n\t\t\t\t\t\t\tstyle=\"margin-right: 16px; width: 56px; height: 56px\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<i v-if=\"release.explicit_lyrics\" class=\"material-icons explicit_icon\"> explicit </i>\r\n\t\t\t\t\t\t{{ release.title }}\r\n\t\t\t\t\t\t<i v-if=\"checkNewRelease(release.release_date)\" class=\"material-icons\" style=\"color: #ff7300\">\r\n\t\t\t\t\t\t\tfiber_new\r\n\t\t\t\t\t\t</i>\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t\t<td>{{ release.release_date }}</td>\r\n\t\t\t\t\t<td>{{ release.nb_song }}</td>\r\n\t\t\t\t\t<td @click.stop=\"addToQueue\" :data-link=\"release.link\" class=\"clickable\">\r\n\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\"> file_download </i>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</tbody>\r\n\t\t</table>\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.main_tabcontent {\r\n\tposition: relative;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { isEmpty, orderBy } from 'lodash-es'\r\nimport { socket } from '@/utils/socket'\r\nimport Downloads from '@/utils/downloads'\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nimport BackButton from '@components/globals/BackButton.vue'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcurrentTab: '',\r\n\t\t\tsortKey: 'release_date',\r\n\t\t\tsortOrder: 'desc',\r\n\t\t\ttitle: '',\r\n\t\t\timage: '',\r\n\t\t\ttype: '',\r\n\t\t\tlink: '',\r\n\t\t\thead: null,\r\n\t\t\tbody: null\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tshowTable() {\r\n\t\t\tif (this.body) {\r\n\t\t\t\tif (this.sortKey == 'nb_song')\r\n\t\t\t\t\treturn orderBy(\r\n\t\t\t\t\t\tthis.body[this.currentTab],\r\n\t\t\t\t\t\tfunction (o) {\r\n\t\t\t\t\t\t\treturn new Number(o.nb_song)\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tthis.sortOrder\r\n\t\t\t\t\t)\r\n\t\t\t\telse return orderBy(this.body[this.currentTab], this.sortKey, this.sortOrder)\r\n\t\t\t} else return []\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tBackButton\r\n\t},\r\n\tmounted() {\r\n\t\tsocket.on('show_artist', this.showArtist)\r\n\r\n\t\tEventBus.$on('artistTab:updateSelected', this.updateSelected)\r\n\t\tEventBus.$on('artistTab:changeTab', this.changeTab)\r\n\t},\r\n\tmethods: {\r\n\t\treset() {\r\n\t\t\tthis.title = 'Loading...'\r\n\t\t\tthis.image = ''\r\n\t\t\tthis.type = ''\r\n\t\t\tthis.currentTab = ''\r\n\t\t\tthis.sortKey = 'release_date'\r\n\t\t\tthis.sortOrder = 'desc'\r\n\t\t\tthis.link = ''\r\n\t\t\tthis.head = []\r\n\t\t\tthis.body = null\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\te.stopPropagation()\r\n\t\t\tDownloads.sendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tsortBy(key) {\r\n\t\t\tif (key == this.sortKey) {\r\n\t\t\t\tthis.sortOrder = this.sortOrder == 'asc' ? 'desc' : 'asc'\r\n\t\t\t} else {\r\n\t\t\t\tthis.sortKey = key\r\n\t\t\t\tthis.sortOrder = 'asc'\r\n\t\t\t}\r\n\t\t},\r\n\t\tchangeTab(tab) {\r\n\t\t\tthis.currentTab = tab\r\n\t\t},\r\n\t\tupdateSelected() {\r\n\t\t\t// Last tab opened logic\r\n\t\t},\r\n\t\tcheckNewRelease(date) {\r\n\t\t\tlet g1 = new Date()\r\n\t\t\tlet g2 = new Date(date)\r\n\t\t\tg2.setDate(g2.getDate() + 3)\r\n\t\t\tg1.setHours(0, 0, 0, 0)\r\n\r\n\t\t\treturn g1.getTime() <= g2.getTime()\r\n\t\t},\r\n\t\tshowArtist(data) {\r\n\t\t\tthis.reset()\r\n\r\n\t\t\tconst { name, picture_xl, id, releases } = data\r\n\r\n\t\t\tthis.title = name\r\n\t\t\tthis.image = picture_xl\r\n\t\t\tthis.type = 'Artist'\r\n\t\t\tthis.link = `https://www.deezer.com/artist/${id}`\r\n\t\t\tif (this.currentTab === '') this.currentTab = Object.keys(releases)[0]\r\n\t\t\tthis.sortKey = 'release_date'\r\n\t\t\tthis.sortOrder = 'desc'\r\n\t\t\tthis.head = [\r\n\t\t\t\t{ title: this.$tc('globals.listTabs.title', 1), sortKey: 'title' },\r\n\t\t\t\t{ title: this.$t('globals.listTabs.releaseDate'), sortKey: 'release_date' },\r\n\t\t\t\t{ title: this.$tc('globals.listTabs.track', 2), sortKey: 'nb_song' },\r\n\t\t\t\t{ title: '', width: '32px' }\r\n\t\t\t]\r\n\t\t\tif (isEmpty(releases)) {\r\n\t\t\t\tthis.body = null\r\n\t\t\t} else {\r\n\t\t\t\tthis.body = releases\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n","import { socket } from '@/utils/socket'\r\n\r\nlet chartsData = {}\r\nlet cached = false\r\n\r\nexport function getChartsData() {\r\n\tif (cached) {\r\n\t\treturn chartsData\r\n\t} else {\r\n\t\tsocket.emit('get_charts_data')\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tsocket.on('init_charts', data => {\r\n\t\t\t\tchartsData = data\r\n\t\t\t\tcached = true\r\n\r\n\t\t\t\tsocket.off('init_charts')\r\n\t\t\t\tresolve(data)\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { mapGetters } from 'vuex'\r\nimport { socket } from '@/utils/socket'\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport { convertDuration } from '@/utils/utils'\r\n\r\nimport { getChartsData } from '@/data/charts'\r\n\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcountry: '',\r\n\t\t\tid: 0,\r\n\t\t\tcountries: [],\r\n\t\t\tchart: []\r\n\t\t}\r\n\t},\r\n\tasync created() {\r\n\t\tsocket.on('setChartTracks', this.setTracklist)\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tsocket.off('setChartTracks')\r\n\t\t})\r\n\r\n\t\tconst chartsData = await getChartsData()\r\n\r\n\t\tthis.initCharts(chartsData)\r\n\t},\r\n\tmethods: {\r\n\t\tconvertDuration,\r\n\t\tplayPausePreview(e) {\r\n\t\t\tEventBus.$emit('trackPreview:playPausePreview', e)\r\n\t\t},\r\n\t\tpreviewMouseEnter(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseEnter', e)\r\n\t\t},\r\n\t\tpreviewMouseLeave(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseLeave', e)\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\te.stopPropagation()\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tgetTrackList(event) {\r\n\t\t\tdocument.getElementById('content').scrollTo(0, 0)\r\n\r\n\t\t\tconst {\r\n\t\t\t\tcurrentTarget: {\r\n\t\t\t\t\tdataset: { title }\r\n\t\t\t\t},\r\n\t\t\t\tcurrentTarget: {\r\n\t\t\t\t\tdataset: { id }\r\n\t\t\t\t}\r\n\t\t\t} = event\r\n\r\n\t\t\tthis.country = title\r\n\t\t\tlocalStorage.setItem('chart', this.country)\r\n\t\t\tthis.id = id\r\n\t\t\tsocket.emit('getChartTracks', this.id)\r\n\t\t},\r\n\t\tsetTracklist(data) {\r\n\t\t\tthis.chart = data\r\n\t\t},\r\n\t\tonChangeCountry() {\r\n\t\t\tthis.country = ''\r\n\t\t\tthis.id = 0\r\n\t\t},\r\n\t\tinitCharts(chartsData) {\r\n\t\t\tthis.countries = chartsData\r\n\t\t\tthis.country = localStorage.getItem('chart') || ''\r\n\r\n\t\t\tif (!this.country) return\r\n\r\n\t\t\tlet i = 0\r\n\t\t\tfor (; i < this.countries.length; i++) {\r\n\t\t\t\tif (this.countries[i].title == this.country) break\r\n\t\t\t}\r\n\r\n\t\t\tif (i !== this.countries.length) {\r\n\t\t\t\tthis.id = this.countries[i].id\r\n\t\t\t\tsocket.emit('getChartTracks', this.id)\r\n\t\t\t} else {\r\n\t\t\t\tthis.country = ''\r\n\t\t\t\tlocalStorage.setItem('chart', this.country)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"charts_tab\" class=\"main_tabcontent\" ref=\"root\">\r\n\t\t<h2 class=\"page_heading\">{{ $t('charts.title') }}</h2>\r\n\t\t<div v-if=\"country === ''\" id=\"charts_selection\">\r\n\t\t\t<div class=\"release_grid charts_grid\">\r\n\t\t\t\t<template v-for=\"release in countries\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t:aria-label=\"release.title\"\r\n\t\t\t\t\t\tv-if=\"release.title === 'Worldwide'\"\r\n\t\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\t\t@click=\"getTrackList\"\r\n\t\t\t\t\t\t:data-title=\"release.title\"\r\n\t\t\t\t\t\t:data-id=\"release.id\"\r\n\t\t\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<img class=\"rounded coverart\" :src=\"release.picture_medium\" />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</template>\r\n\r\n\t\t\t\t<template v-for=\"release in countries\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t:aria-label=\"release.title\"\r\n\t\t\t\t\t\tv-if=\"release.title !== 'Worldwide'\"\r\n\t\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\t\t@click=\"getTrackList\"\r\n\t\t\t\t\t\t:data-title=\"release.title\"\r\n\t\t\t\t\t\t:data-id=\"release.id\"\r\n\t\t\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<img class=\"rounded coverart\" :src=\"release.picture_medium\" />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</template>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div v-else id=\"charts_table\">\r\n\t\t\t<button @click=\"onChangeCountry\">{{ $t('charts.changeCountry') }}</button>\r\n\t\t\t<button @click.stop=\"addToQueue\" :data-link=\"'https://www.deezer.com/playlist/' + id\">\r\n\t\t\t\t{{ $t('charts.download') }}\r\n\t\t\t</button>\r\n\t\t\t<table class=\"table table--charts\">\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\t<tr v-for=\"track in chart\" class=\"track_row\">\r\n\t\t\t\t\t\t<td class=\"top-tracks-position\" :class=\"{ first: track.position === 1 }\">\r\n\t\t\t\t\t\t\t{{ track.position }}\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td class=\"table__icon table__icon--big\">\r\n\t\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\t\thref=\"#\"\r\n\t\t\t\t\t\t\t\t@click=\"playPausePreview\"\r\n\t\t\t\t\t\t\t\tclass=\"rounded\"\r\n\t\t\t\t\t\t\t\t:class=\"{ 'single-cover': track.preview }\"\r\n\t\t\t\t\t\t\t\t:data-preview=\"track.preview\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t@mouseenter=\"previewMouseEnter\"\r\n\t\t\t\t\t\t\t\t\t@mouseleave=\"previewMouseLeave\"\r\n\t\t\t\t\t\t\t\t\tv-if=\"track.preview\"\r\n\t\t\t\t\t\t\t\t\tclass=\"material-icons preview_controls\"\r\n\t\t\t\t\t\t\t\t\t:title=\"$t('globals.play_hint')\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\tplay_arrow\r\n\t\t\t\t\t\t\t\t</i>\r\n\t\t\t\t\t\t\t\t<img class=\"rounded coverart\" :src=\"track.album.cover_small\" />\r\n\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td class=\"table__cell--large breakline\">\r\n\t\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t\ttrack.title +\r\n\t\t\t\t\t\t\t\t(track.title_version && track.title.indexOf(track.title_version) == -1 ? ' ' + track.title_version : '')\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<router-link\r\n\t\t\t\t\t\t\ttag=\"td\"\r\n\t\t\t\t\t\t\tclass=\"table__cell table__cell--medium table__cell--center breakline clickable\"\r\n\t\t\t\t\t\t\t:to=\"{ name: 'Artist', params: { id: track.artist.id } }\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ track.artist.name }}\r\n\t\t\t\t\t\t</router-link>\r\n\t\t\t\t\t\t<router-link\r\n\t\t\t\t\t\t\ttag=\"td\"\r\n\t\t\t\t\t\t\tclass=\"table__cell--medium table__cell--center breakline clickable\"\r\n\t\t\t\t\t\t\t:to=\"{ name: 'Album', params: { id: track.album.id } }\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ track.album.title }}\r\n\t\t\t\t\t\t</router-link>\r\n\t\t\t\t\t\t<td class=\"table__cell--small table__cell--center\">\r\n\t\t\t\t\t\t\t{{ convertDuration(track.duration) }}\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td\r\n\t\t\t\t\t\t\tclass=\"table__cell--download\"\r\n\t\t\t\t\t\t\t@click.stop=\"addToQueue\"\r\n\t\t\t\t\t\t\t:data-link=\"track.link\"\r\n\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex'\r\nimport { socket } from '@/utils/socket'\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport { convertDuration } from '@/utils/utils'\r\n\r\nimport { getChartsData } from '@/data/charts'\r\n\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tcountry: '',\r\n\t\t\tid: 0,\r\n\t\t\tcountries: [],\r\n\t\t\tchart: []\r\n\t\t}\r\n\t},\r\n\tasync created() {\r\n\t\tsocket.on('setChartTracks', this.setTracklist)\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tsocket.off('setChartTracks')\r\n\t\t})\r\n\r\n\t\tconst chartsData = await getChartsData()\r\n\r\n\t\tthis.initCharts(chartsData)\r\n\t},\r\n\tmethods: {\r\n\t\tconvertDuration,\r\n\t\tplayPausePreview(e) {\r\n\t\t\tEventBus.$emit('trackPreview:playPausePreview', e)\r\n\t\t},\r\n\t\tpreviewMouseEnter(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseEnter', e)\r\n\t\t},\r\n\t\tpreviewMouseLeave(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseLeave', e)\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\te.stopPropagation()\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tgetTrackList(event) {\r\n\t\t\tdocument.getElementById('content').scrollTo(0, 0)\r\n\r\n\t\t\tconst {\r\n\t\t\t\tcurrentTarget: {\r\n\t\t\t\t\tdataset: { title }\r\n\t\t\t\t},\r\n\t\t\t\tcurrentTarget: {\r\n\t\t\t\t\tdataset: { id }\r\n\t\t\t\t}\r\n\t\t\t} = event\r\n\r\n\t\t\tthis.country = title\r\n\t\t\tlocalStorage.setItem('chart', this.country)\r\n\t\t\tthis.id = id\r\n\t\t\tsocket.emit('getChartTracks', this.id)\r\n\t\t},\r\n\t\tsetTracklist(data) {\r\n\t\t\tthis.chart = data\r\n\t\t},\r\n\t\tonChangeCountry() {\r\n\t\t\tthis.country = ''\r\n\t\t\tthis.id = 0\r\n\t\t},\r\n\t\tinitCharts(chartsData) {\r\n\t\t\tthis.countries = chartsData\r\n\t\t\tthis.country = localStorage.getItem('chart') || ''\r\n\r\n\t\t\tif (!this.country) return\r\n\r\n\t\t\tlet i = 0\r\n\t\t\tfor (; i < this.countries.length; i++) {\r\n\t\t\t\tif (this.countries[i].title == this.country) break\r\n\t\t\t}\r\n\r\n\t\t\tif (i !== this.countries.length) {\r\n\t\t\t\tthis.id = this.countries[i].id\r\n\t\t\t\tsocket.emit('getChartTracks', this.id)\r\n\t\t\t} else {\r\n\t\t\t\tthis.country = ''\r\n\t\t\t\tlocalStorage.setItem('chart', this.country)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style>\r\n</style>","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n\tcomputed: {\r\n\t\t...mapGetters(['getErrors']),\r\n\t\ttitle() {\r\n\t\t\treturn `${this.getErrors.artist} - ${this.getErrors.title}`\r\n\t\t},\r\n\t\terrors() {\r\n\t\t\treturn this.getErrors.errors\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"errors_tab\" class=\"main_tabcontent\">\r\n\t\t<h1>{{ $t('errors.title', { name: title }) }}</h1>\r\n\r\n\t\t<table class=\"table table--tracklist\">\r\n\t\t\t<tr>\r\n\t\t\t\t<th>ID</th>\r\n\t\t\t\t<th>{{ $tc('globals.listTabs.artist', 1) }}</th>\r\n\t\t\t\t<th>{{ $tc('globals.listTabs.title', 1) }}</th>\r\n\t\t\t\t<th>{{ $tc('globals.listTabs.error', 1) }}</th>\r\n\t\t\t</tr>\r\n\t\t\t<tr v-for=\"error in errors\" :key=\"error.data.id\">\r\n\t\t\t\t<td>{{ error.data.id }}</td>\r\n\t\t\t\t<td>{{ error.data.artist }}</td>\r\n\t\t\t\t<td>{{ error.data.title }}</td>\r\n\t\t\t\t<td>{{ error.errid ? $t(`errors.ids.${error.errid}`) : error.message }}</td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default {\r\n\tcomputed: {\r\n\t\t...mapGetters(['getErrors']),\r\n\t\ttitle() {\r\n\t\t\treturn `${this.getErrors.artist} - ${this.getErrors.title}`\r\n\t\t},\r\n\t\terrors() {\r\n\t\t\treturn this.getErrors.errors\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style>\r\n</style>\r\n","import { socket } from '@/utils/socket'\r\n\r\nlet favoritesData = {}\r\nlet cached = false\r\n\r\nexport function getFavoritesData() {\r\n\tif (cached) {\r\n\t\treturn favoritesData\r\n\t} else {\r\n\t\tsocket.emit('get_favorites_data')\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tsocket.on('init_favorites', data => {\r\n\t\t\t\tfavoritesData = data\r\n\t\t\t\tcached = true\r\n\r\n\t\t\t\tsocket.off('init_favorites')\r\n\t\t\t\tresolve(data)\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { socket } from '@/utils/socket'\r\nimport { sendAddToQueue, aggregateDownloadLinks } from '@/utils/downloads'\r\nimport { convertDuration } from '@/utils/utils'\r\nimport { toast } from '@/utils/toasts'\r\n\r\nimport { getFavoritesData } from '@/data/favorites'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttracks: [],\r\n\t\t\talbums: [],\r\n\t\t\tartists: [],\r\n\t\t\tplaylists: [],\r\n\t\t\tspotifyPlaylists: [],\r\n\t\t\tactiveTab: 'playlist',\r\n\t\t\ttabs: ['playlist', 'album', 'artist', 'track']\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tactiveTabEmpty() {\r\n\t\t\tlet toCheck = this.getActiveRelease()\r\n\r\n\t\t\treturn toCheck.length === 0\r\n\t\t}\r\n\t},\r\n\tasync created() {\r\n\t\tconst favoritesData = await getFavoritesData()\r\n\r\n\t\t// TODO Change with isLoggedIn vuex getter\r\n\t\tif (Object.entries(favoritesData).length === 0) return\r\n\r\n\t\tthis.setFavorites(favoritesData)\r\n\t},\r\n\tmounted() {\r\n\t\tsocket.on('updated_userFavorites', this.updated_userFavorites)\r\n\t\tsocket.on('updated_userSpotifyPlaylists', this.updated_userSpotifyPlaylists)\r\n\t\tsocket.on('updated_userPlaylists', this.updated_userPlaylists)\r\n\t\tsocket.on('updated_userAlbums', this.updated_userAlbums)\r\n\t\tsocket.on('updated_userArtist', this.updated_userArtist)\r\n\t\tsocket.on('updated_userTracks', this.updated_userTracks)\r\n\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tsocket.off('updated_userFavorites')\r\n\t\t\tsocket.off('updated_userSpotifyPlaylists')\r\n\t\t\tsocket.off('updated_userPlaylists')\r\n\t\t\tsocket.off('updated_userAlbums')\r\n\t\t\tsocket.off('updated_userArtist')\r\n\t\t\tsocket.off('updated_userTracks')\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\tplayPausePreview(e) {\r\n\t\t\tEventBus.$emit('trackPreview:playPausePreview', e)\r\n\t\t},\r\n\t\tpreviewMouseEnter(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseEnter', e)\r\n\t\t},\r\n\t\tpreviewMouseLeave(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseLeave', e)\r\n\t\t},\r\n\t\tconvertDuration,\r\n\t\tdownloadAllOfType() {\r\n\t\t\ttry {\r\n\t\t\t\tlet toDownload = this.getActiveRelease()\r\n\r\n\t\t\t\tif (this.activeTab === 'track') {\r\n\t\t\t\t\tlet lovedTracks = this.getLovedTracksPlaylist()\r\n\r\n\t\t\t\t\tsendAddToQueue(lovedTracks.link)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsendAddToQueue(aggregateDownloadLinks(toDownload))\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(error.message)\r\n\t\t\t}\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tupdated_userSpotifyPlaylists(data) {\r\n\t\t\tthis.spotifyPlaylists = data\r\n\t\t},\r\n\t\tupdated_userPlaylists(data) {\r\n\t\t\tthis.playlists = data\r\n\t\t},\r\n\t\tupdated_userAlbums(data) {\r\n\t\t\tthis.albums = data\r\n\t\t},\r\n\t\tupdated_userArtist(data) {\r\n\t\t\tthis.artists = data\r\n\t\t},\r\n\t\tupdated_userTracks(data) {\r\n\t\t\tthis.tracks = data\r\n\t\t},\r\n\t\treloadTabs() {\r\n\t\t\tthis.$refs.reloadButton.classList.add('spin')\r\n\r\n\t\t\tsocket.emit('update_userFavorites')\r\n\r\n\t\t\tif (localStorage.getItem('spotifyUser')) {\r\n\t\t\t\tsocket.emit('update_userSpotifyPlaylists', localStorage.getItem('spotifyUser'))\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdated_userFavorites(data) {\r\n\t\t\tthis.setFavorites(data)\r\n\r\n\t\t\t// Removing animation class only when the animation has completed an iteration\r\n\t\t\t// Prevents animation ugly stutter\r\n\t\t\tthis.$refs.reloadButton.addEventListener(\r\n\t\t\t\t'animationiteration',\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis.$refs.reloadButton.classList.remove('spin')\r\n\t\t\t\t\ttoast(this.$t('toasts.refreshFavs'), 'done', true)\r\n\t\t\t\t},\r\n\t\t\t\t{ once: true }\r\n\t\t\t)\r\n\t\t},\r\n\t\tsetFavorites(data) {\r\n\t\t\tconst { tracks, albums, artists, playlists } = data\r\n\r\n\t\t\tthis.tracks = tracks\r\n\t\t\tthis.albums = albums\r\n\t\t\tthis.artists = artists\r\n\t\t\tthis.playlists = playlists\r\n\t\t},\r\n\t\tgetActiveRelease(tab = this.activeTab) {\r\n\t\t\tlet toDownload\r\n\r\n\t\t\tswitch (tab) {\r\n\t\t\t\tcase 'playlist':\r\n\t\t\t\t\ttoDownload = this.playlists\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase 'album':\r\n\t\t\t\t\ttoDownload = this.albums\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase 'artist':\r\n\t\t\t\t\ttoDownload = this.artists\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase 'track':\r\n\t\t\t\t\ttoDownload = this.tracks\r\n\t\t\t\t\tbreak\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak\r\n\t\t\t}\r\n\r\n\t\t\treturn toDownload\r\n\t\t},\r\n\t\tgetLovedTracksPlaylist() {\r\n\t\t\tlet lovedTracks = this.playlists.filter(playlist => {\r\n\t\t\t\treturn playlist.is_loved_track\r\n\t\t\t})\r\n\r\n\t\t\tif (lovedTracks.length !== 0) {\r\n\t\t\t\treturn lovedTracks[0]\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error('No loved tracks playlist!')\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div class=\"main_tabcontent\">\r\n\t\t<h2 class=\"page_heading\">\r\n\t\t\t{{ $t('favorites.title') }}\r\n\t\t\t<div\r\n\t\t\t\t@click=\"reloadTabs\"\r\n\t\t\t\tclass=\"clickable reload-button reload-button--inline\"\r\n\t\t\t\tref=\"reloadButton\"\r\n\t\t\t\trole=\"button\"\r\n\t\t\t\taria-label=\"reload\"\r\n\t\t\t>\r\n\t\t\t\t<i class=\"material-icons\">sync</i>\r\n\t\t\t</div>\r\n\t\t</h2>\r\n\r\n\t\t<div class=\"section-tabs\">\r\n\t\t\t<div\r\n\t\t\t\tclass=\"section-tabs__tab favorites_tablinks\"\r\n\t\t\t\t:class=\"{ active: activeTab === tab }\"\r\n\t\t\t\t@click=\"activeTab = tab\"\r\n\t\t\t\tv-for=\"tab in tabs\"\r\n\t\t\t\t:key=\"tab\"\r\n\t\t\t>\r\n\t\t\t\t{{ $tc(`globals.listTabs.${tab}`, 2) }}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<button v-if=\"!activeTabEmpty\" style=\"margin-bottom: 2rem\" @click=\"downloadAllOfType\">\r\n\t\t\t{{ $t('globals.downloadAll', { thing: $tc(`globals.listTabs.${activeTab}`, 2) }) }}\r\n\t\t</button>\r\n\r\n\t\t<div class=\"favorites_tabcontent\" :class=\"{ 'favorites_tabcontent--active': activeTab === 'playlist' }\">\r\n\t\t\t<div v-if=\"playlists.length == 0\">\r\n\t\t\t\t<h1>{{ $t('favorites.noPlaylists') }}</h1>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"release_grid\" v-if=\"playlists.length > 0 || spotifyPlaylists > 0\">\r\n\t\t\t\t<router-link\r\n\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\tv-for=\"release in playlists\"\r\n\t\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\t:to=\"{ name: 'Playlist', params: { id: release.id } }\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t<img aria-hidden=\"true\" class=\"rounded coverart\" :src=\"release.picture_medium\" />\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t@click.stop=\"addToQueue\"\r\n\t\t\t\t\t\t\t:data-link=\"release.link\"\r\n\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p class=\"primary-text\">{{ release.title }}</p>\r\n\t\t\t\t\t<p class=\"secondary-text\">\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t`${$t('globals.by', { artist: release.creator.name })} - ${$tc(\r\n\t\t\t\t\t\t\t\t'globals.listTabs.trackN',\r\n\t\t\t\t\t\t\t\trelease.nb_tracks\r\n\t\t\t\t\t\t\t)}`\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</router-link>\r\n\t\t\t\t<router-link\r\n\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\tv-for=\"release in spotifyPlaylists\"\r\n\t\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\t:to=\"{ name: 'Spotify Playlist', params: { id: release.id } }\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t<img aria-hidden=\"true\" class=\"rounded coverart\" :src=\"release.picture_medium\" />\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t@click.stop=\"addToQueue\"\r\n\t\t\t\t\t\t\t:data-link=\"release.link\"\r\n\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p class=\"primary-text\">{{ release.title }}</p>\r\n\t\t\t\t\t<p class=\"secondary-text\">\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t`${$t('globals.by', { artist: release.creator.name })} - ${$tc(\r\n\t\t\t\t\t\t\t\t'globals.listTabs.trackN',\r\n\t\t\t\t\t\t\t\trelease.nb_tracks\r\n\t\t\t\t\t\t\t)}`\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</router-link>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"favorites_tabcontent\" :class=\"{ 'favorites_tabcontent--active': activeTab === 'album' }\">\r\n\t\t\t<div v-if=\"albums.length == 0\">\r\n\t\t\t\t<h1>{{ $t('favorites.noAlbums') }}</h1>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"release_grid\" v-if=\"albums.length > 0\">\r\n\t\t\t\t<router-link\r\n\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\tv-for=\"release in albums\"\r\n\t\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t\t:to=\"{ name: 'Album', params: { id: release.id } }\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t<img aria-hidden=\"true\" class=\"rounded coverart\" :src=\"release.cover_medium\" />\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t@click.stop=\"addToQueue\"\r\n\t\t\t\t\t\t\t:data-link=\"release.link\"\r\n\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p class=\"primary-text\">{{ release.title }}</p>\r\n\t\t\t\t\t<p class=\"secondary-text\">{{ `${$t('globals.by', { artist: release.artist.name })}` }}</p>\r\n\t\t\t\t</router-link>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"favorites_tabcontent\" :class=\"{ 'favorites_tabcontent--active': activeTab === 'artist' }\">\r\n\t\t\t<div v-if=\"artists.length == 0\">\r\n\t\t\t\t<h1>{{ $t('favorites.noArtists') }}</h1>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"release_grid\" v-if=\"artists.length > 0\">\r\n\t\t\t\t<router-link\r\n\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\tv-for=\"release in artists\"\r\n\t\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t\t:to=\"{ name: 'Artist', params: { id: release.id } }\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t<img aria-hidden=\"true\" class=\"circle coverart\" :src=\"release.picture_medium\" />\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t@click.stop=\"addToQueue\"\r\n\t\t\t\t\t\t\t:data-link=\"release.link\"\r\n\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p class=\"primary-text\">{{ release.name }}</p>\r\n\t\t\t\t</router-link>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"favorites_tabcontent\" :class=\"{ 'favorites_tabcontent--active': activeTab === 'track' }\">\r\n\t\t\t<div v-if=\"tracks.length == 0\">\r\n\t\t\t\t<h1>{{ $t('favorites.noTracks') }}</h1>\r\n\t\t\t</div>\r\n\t\t\t<table v-if=\"tracks.length > 0\" class=\"table\">\r\n\t\t\t\t<tr v-for=\"track in tracks\" class=\"track_row\">\r\n\t\t\t\t\t<td class=\"top-tracks-position\" :class=\"{ first: track.position === 1 }\">\r\n\t\t\t\t\t\t{{ track.position }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"#\"\r\n\t\t\t\t\t\t\tclass=\"rounded\"\r\n\t\t\t\t\t\t\t:class=\"{ 'single-cover': !!track.preview }\"\r\n\t\t\t\t\t\t\t@click=\"playPausePreview\"\r\n\t\t\t\t\t\t\t:data-preview=\"track.preview\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t@mouseenter=\"previewMouseEnter\"\r\n\t\t\t\t\t\t\t\t@mouseleave=\"previewMouseLeave\"\r\n\t\t\t\t\t\t\t\tv-if=\"track.preview\"\r\n\t\t\t\t\t\t\t\tclass=\"material-icons preview_controls\"\r\n\t\t\t\t\t\t\t\t:title=\"$t('globals.play_hint')\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tplay_arrow\r\n\t\t\t\t\t\t\t</i>\r\n\t\t\t\t\t\t\t<img class=\"rounded coverart\" :src=\"track.album.cover_small\" />\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td class=\"table__cell--large breakline\">\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\ttrack.title +\r\n\t\t\t\t\t\t\t(track.title_version && track.title.indexOf(track.title_version) == -1 ? ' ' + track.title_version : '')\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<router-link\r\n\t\t\t\t\t\ttag=\"td\"\r\n\t\t\t\t\t\tclass=\"table__cell table__cell--medium table__cell--center breakline clickable\"\r\n\t\t\t\t\t\t:to=\"{ name: 'Artist', params: { id: track.artist.id } }\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ track.artist.name }}\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t\t<router-link\r\n\t\t\t\t\t\ttag=\"td\"\r\n\t\t\t\t\t\tclass=\"table__cell--medium table__cell--center breakline clickable\"\r\n\t\t\t\t\t\t:to=\"{ name: 'Album', params: { id: track.album.id } }\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ track.album.title }}\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t\t<td class=\"table__cell--small\">\r\n\t\t\t\t\t\t{{ convertDuration(track.duration) }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td\r\n\t\t\t\t\t\tclass=\"table__cell--download clickable\"\r\n\t\t\t\t\t\t@click.stop=\"addToQueue\"\r\n\t\t\t\t\t\t:data-link=\"track.link\"\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<div class=\"table__cell-content table__cell-content--vertical-center\">\r\n\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.favorites_tabcontent {\r\n\tdisplay: none;\r\n\r\n\t&--active {\r\n\t\tdisplay: block;\r\n\t}\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { socket } from '@/utils/socket'\r\nimport { sendAddToQueue, aggregateDownloadLinks } from '@/utils/downloads'\r\nimport { convertDuration } from '@/utils/utils'\r\nimport { toast } from '@/utils/toasts'\r\n\r\nimport { getFavoritesData } from '@/data/favorites'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttracks: [],\r\n\t\t\talbums: [],\r\n\t\t\tartists: [],\r\n\t\t\tplaylists: [],\r\n\t\t\tspotifyPlaylists: [],\r\n\t\t\tactiveTab: 'playlist',\r\n\t\t\ttabs: ['playlist', 'album', 'artist', 'track']\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tactiveTabEmpty() {\r\n\t\t\tlet toCheck = this.getActiveRelease()\r\n\r\n\t\t\treturn toCheck.length === 0\r\n\t\t}\r\n\t},\r\n\tasync created() {\r\n\t\tconst favoritesData = await getFavoritesData()\r\n\r\n\t\t// TODO Change with isLoggedIn vuex getter\r\n\t\tif (Object.entries(favoritesData).length === 0) return\r\n\r\n\t\tthis.setFavorites(favoritesData)\r\n\t},\r\n\tmounted() {\r\n\t\tsocket.on('updated_userFavorites', this.updated_userFavorites)\r\n\t\tsocket.on('updated_userSpotifyPlaylists', this.updated_userSpotifyPlaylists)\r\n\t\tsocket.on('updated_userPlaylists', this.updated_userPlaylists)\r\n\t\tsocket.on('updated_userAlbums', this.updated_userAlbums)\r\n\t\tsocket.on('updated_userArtist', this.updated_userArtist)\r\n\t\tsocket.on('updated_userTracks', this.updated_userTracks)\r\n\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tsocket.off('updated_userFavorites')\r\n\t\t\tsocket.off('updated_userSpotifyPlaylists')\r\n\t\t\tsocket.off('updated_userPlaylists')\r\n\t\t\tsocket.off('updated_userAlbums')\r\n\t\t\tsocket.off('updated_userArtist')\r\n\t\t\tsocket.off('updated_userTracks')\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\tplayPausePreview(e) {\r\n\t\t\tEventBus.$emit('trackPreview:playPausePreview', e)\r\n\t\t},\r\n\t\tpreviewMouseEnter(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseEnter', e)\r\n\t\t},\r\n\t\tpreviewMouseLeave(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseLeave', e)\r\n\t\t},\r\n\t\tconvertDuration,\r\n\t\tdownloadAllOfType() {\r\n\t\t\ttry {\r\n\t\t\t\tlet toDownload = this.getActiveRelease()\r\n\r\n\t\t\t\tif (this.activeTab === 'track') {\r\n\t\t\t\t\tlet lovedTracks = this.getLovedTracksPlaylist()\r\n\r\n\t\t\t\t\tsendAddToQueue(lovedTracks.link)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tsendAddToQueue(aggregateDownloadLinks(toDownload))\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(error.message)\r\n\t\t\t}\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tupdated_userSpotifyPlaylists(data) {\r\n\t\t\tthis.spotifyPlaylists = data\r\n\t\t},\r\n\t\tupdated_userPlaylists(data) {\r\n\t\t\tthis.playlists = data\r\n\t\t},\r\n\t\tupdated_userAlbums(data) {\r\n\t\t\tthis.albums = data\r\n\t\t},\r\n\t\tupdated_userArtist(data) {\r\n\t\t\tthis.artists = data\r\n\t\t},\r\n\t\tupdated_userTracks(data) {\r\n\t\t\tthis.tracks = data\r\n\t\t},\r\n\t\treloadTabs() {\r\n\t\t\tthis.$refs.reloadButton.classList.add('spin')\r\n\r\n\t\t\tsocket.emit('update_userFavorites')\r\n\r\n\t\t\tif (localStorage.getItem('spotifyUser')) {\r\n\t\t\t\tsocket.emit('update_userSpotifyPlaylists', localStorage.getItem('spotifyUser'))\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdated_userFavorites(data) {\r\n\t\t\tthis.setFavorites(data)\r\n\r\n\t\t\t// Removing animation class only when the animation has completed an iteration\r\n\t\t\t// Prevents animation ugly stutter\r\n\t\t\tthis.$refs.reloadButton.addEventListener(\r\n\t\t\t\t'animationiteration',\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis.$refs.reloadButton.classList.remove('spin')\r\n\t\t\t\t\ttoast(this.$t('toasts.refreshFavs'), 'done', true)\r\n\t\t\t\t},\r\n\t\t\t\t{ once: true }\r\n\t\t\t)\r\n\t\t},\r\n\t\tsetFavorites(data) {\r\n\t\t\tconst { tracks, albums, artists, playlists } = data\r\n\r\n\t\t\tthis.tracks = tracks\r\n\t\t\tthis.albums = albums\r\n\t\t\tthis.artists = artists\r\n\t\t\tthis.playlists = playlists\r\n\t\t},\r\n\t\tgetActiveRelease(tab = this.activeTab) {\r\n\t\t\tlet toDownload\r\n\r\n\t\t\tswitch (tab) {\r\n\t\t\t\tcase 'playlist':\r\n\t\t\t\t\ttoDownload = this.playlists\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase 'album':\r\n\t\t\t\t\ttoDownload = this.albums\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase 'artist':\r\n\t\t\t\t\ttoDownload = this.artists\r\n\t\t\t\t\tbreak\r\n\t\t\t\tcase 'track':\r\n\t\t\t\t\ttoDownload = this.tracks\r\n\t\t\t\t\tbreak\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak\r\n\t\t\t}\r\n\r\n\t\t\treturn toDownload\r\n\t\t},\r\n\t\tgetLovedTracksPlaylist() {\r\n\t\t\tlet lovedTracks = this.playlists.filter(playlist => {\r\n\t\t\t\treturn playlist.is_loved_track\r\n\t\t\t})\r\n\r\n\t\t\tif (lovedTracks.length !== 0) {\r\n\t\t\t\treturn lovedTracks[0]\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error('No loved tracks playlist!')\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n","import { socket } from '@/utils/socket'\r\n\r\nlet homeData = {}\r\nlet cached = false\r\n\r\nexport function getHomeData() {\r\n\tif (cached) {\r\n\t\treturn homeData\r\n\t} else {\r\n\t\tsocket.emit('get_home_data')\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tsocket.on('init_home', data => {\r\n\t\t\t\thomeData = data\r\n\t\t\t\tcached = true\r\n\r\n\t\t\t\tsocket.off('init_home')\r\n\t\t\t\tresolve(data)\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { mapGetters } from 'vuex'\r\n\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport { getHomeData } from '@/data/home'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tplaylists: [],\r\n\t\t\talbums: []\r\n\t\t}\r\n\t},\r\n\tasync created() {\r\n\t\tconst homeData = await getHomeData()\r\n\r\n\t\tthis.initHome(homeData)\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['isLoggedIn'])\r\n\t},\r\n\tmethods: {\r\n\t\taddToQueue(e) {\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tinitHome(data) {\r\n\t\t\tconst {\r\n\t\t\t\tplaylists: { data: playlistData },\r\n\t\t\t\talbums: { data: albumData }\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.playlists = playlistData\r\n\t\t\tthis.albums = albumData\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"home_tab\" class=\"main_tabcontent\" ref=\"root\">\r\n\t\t<h2 class=\"page_heading\">{{ $t('globals.welcome') }}</h2>\r\n\r\n\t\t<section class=\"home_section\" ref=\"notLogged\" v-if=\"!isLoggedIn\">\r\n\t\t\t<p id=\"home_not_logged_text\">{{ $t('home.needTologin') }}</p>\r\n\t\t\t<router-link tag=\"button\" name=\"button\" :to=\"{ name: 'Settings' }\">\r\n\t\t\t\t{{ $t('home.openSettings') }}\r\n\t\t\t</router-link>\r\n\t\t</section>\r\n\r\n\t\t<section v-if=\"playlists.length\" class=\"home_section\">\r\n\t\t\t<h3 class=\"section_heading\">{{ $t('home.sections.popularPlaylists') }}</h3>\r\n\t\t\t<div class=\"release_grid\">\r\n\t\t\t\t<router-link\r\n\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\tv-for=\"release in playlists\"\r\n\t\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\t:to=\"{ name: 'Playlist', params: { id: release.id } }\"\r\n\t\t\t\t\t@keyup.enter.native=\"$router.push({ name: 'Playlist', params: { id: release.id } })\"\r\n\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t<img aria-hidden=\"true\" class=\"rounded coverart\" :src=\"release.picture_medium\" />\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t@click.stop=\"addToQueue\"\r\n\t\t\t\t\t\t\t:data-link=\"release.link\"\r\n\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p class=\"primary-text\">{{ release.title }}</p>\r\n\t\t\t\t\t<p class=\"secondary-text\">\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t`${$t('globals.by', { artist: release.user.name })} - ${$tc(\r\n\t\t\t\t\t\t\t\t'globals.listTabs.trackN',\r\n\t\t\t\t\t\t\t\trelease.nb_tracks\r\n\t\t\t\t\t\t\t)}`\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</router-link>\r\n\t\t\t</div>\r\n\t\t</section>\r\n\r\n\t\t<section v-if=\"albums.length\" class=\"home_section\">\r\n\t\t\t<h3 class=\"section_heading\">{{ $t('home.sections.popularAlbums') }}</h3>\r\n\t\t\t<div class=\"release_grid\">\r\n\t\t\t\t<router-link\r\n\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\tv-for=\"release in albums\"\r\n\t\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\t:to=\"{ name: 'Album', params: { id: release.id } }\"\r\n\t\t\t\t\t@keyup.enter.native=\"$router.push({ name: 'Album', params: { id: release.id } })\"\r\n\t\t\t\t\t:data-id=\"release.id\"\r\n\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t<img aria-hidden=\"true\" class=\"rounded coverart\" :src=\"release.cover_medium\" />\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t@click.stop=\"addToQueue\"\r\n\t\t\t\t\t\t\t:data-link=\"release.link\"\r\n\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<p class=\"primary-text\">{{ release.title }}</p>\r\n\t\t\t\t\t<p class=\"secondary-text\">{{ `${$t('globals.by', { artist: release.artist.name })}` }}</p>\r\n\t\t\t\t</router-link>\r\n\t\t\t</div>\r\n\t\t</section>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex'\r\n\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport { getHomeData } from '@/data/home'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tplaylists: [],\r\n\t\t\talbums: []\r\n\t\t}\r\n\t},\r\n\tasync created() {\r\n\t\tconst homeData = await getHomeData()\r\n\r\n\t\tthis.initHome(homeData)\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters(['isLoggedIn'])\r\n\t},\r\n\tmethods: {\r\n\t\taddToQueue(e) {\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tinitHome(data) {\r\n\t\t\tconst {\r\n\t\t\t\tplaylists: { data: playlistData },\r\n\t\t\t\talbums: { data: albumData }\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.playlists = playlistData\r\n\t\t\tthis.albums = albumData\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style>\r\n</style>\r\n","export const COUNTRIES = {\r\n\tAF: 'Afghanistan',\r\n\tAX: '\\u00c5land Islands',\r\n\tAL: 'Albania',\r\n\tDZ: 'Algeria',\r\n\tAS: 'American Samoa',\r\n\tAD: 'Andorra',\r\n\tAO: 'Angola',\r\n\tAI: 'Anguilla',\r\n\tAQ: 'Antarctica',\r\n\tAG: 'Antigua and Barbuda',\r\n\tAR: 'Argentina',\r\n\tAM: 'Armenia',\r\n\tAW: 'Aruba',\r\n\tAU: 'Australia',\r\n\tAT: 'Austria',\r\n\tAZ: 'Azerbaijan',\r\n\tBS: 'Bahamas',\r\n\tBH: 'Bahrain',\r\n\tBD: 'Bangladesh',\r\n\tBB: 'Barbados',\r\n\tBY: 'Belarus',\r\n\tBE: 'Belgium',\r\n\tBZ: 'Belize',\r\n\tBJ: 'Benin',\r\n\tBM: 'Bermuda',\r\n\tBT: 'Bhutan',\r\n\tBO: 'Bolivia, Plurinational State of',\r\n\tBQ: 'Bonaire, Sint Eustatius and Saba',\r\n\tBA: 'Bosnia and Herzegovina',\r\n\tBW: 'Botswana',\r\n\tBV: 'Bouvet Island',\r\n\tBR: 'Brazil',\r\n\tIO: 'British Indian Ocean Territory',\r\n\tBN: 'Brunei Darussalam',\r\n\tBG: 'Bulgaria',\r\n\tBF: 'Burkina Faso',\r\n\tBI: 'Burundi',\r\n\tKH: 'Cambodia',\r\n\tCM: 'Cameroon',\r\n\tCA: 'Canada',\r\n\tCV: 'Cape Verde',\r\n\tKY: 'Cayman Islands',\r\n\tCF: 'Central African Republic',\r\n\tTD: 'Chad',\r\n\tCL: 'Chile',\r\n\tCN: 'China',\r\n\tCX: 'Christmas Island',\r\n\tCC: 'Cocos (Keeling) Islands',\r\n\tCO: 'Colombia',\r\n\tKM: 'Comoros',\r\n\tCG: 'Congo',\r\n\tCD: 'Congo, the Democratic Republic of the',\r\n\tCK: 'Cook Islands',\r\n\tCR: 'Costa Rica',\r\n\tCI: \"C\\u00f4te d'Ivoire\",\r\n\tHR: 'Croatia',\r\n\tCU: 'Cuba',\r\n\tCW: 'Cura\\u00e7ao',\r\n\tCY: 'Cyprus',\r\n\tCZ: 'Czech Republic',\r\n\tDK: 'Denmark',\r\n\tDJ: 'Djibouti',\r\n\tDM: 'Dominica',\r\n\tDO: 'Dominican Republic',\r\n\tEC: 'Ecuador',\r\n\tEG: 'Egypt',\r\n\tSV: 'El Salvador',\r\n\tGQ: 'Equatorial Guinea',\r\n\tER: 'Eritrea',\r\n\tEE: 'Estonia',\r\n\tET: 'Ethiopia',\r\n\tFK: 'Falkland Islands (Malvinas)',\r\n\tFO: 'Faroe Islands',\r\n\tFJ: 'Fiji',\r\n\tFI: 'Finland',\r\n\tFR: 'France',\r\n\tGF: 'French Guiana',\r\n\tPF: 'French Polynesia',\r\n\tTF: 'French Southern Territories',\r\n\tGA: 'Gabon',\r\n\tGM: 'Gambia',\r\n\tGE: 'Georgia',\r\n\tDE: 'Germany',\r\n\tGH: 'Ghana',\r\n\tGI: 'Gibraltar',\r\n\tGR: 'Greece',\r\n\tGL: 'Greenland',\r\n\tGD: 'Grenada',\r\n\tGP: 'Guadeloupe',\r\n\tGU: 'Guam',\r\n\tGT: 'Guatemala',\r\n\tGG: 'Guernsey',\r\n\tGN: 'Guinea',\r\n\tGW: 'Guinea-Bissau',\r\n\tGY: 'Guyana',\r\n\tHT: 'Haiti',\r\n\tHM: 'Heard Island and McDonald Islands',\r\n\tVA: 'Holy See (Vatican City State)',\r\n\tHN: 'Honduras',\r\n\tHK: 'Hong Kong',\r\n\tHU: 'Hungary',\r\n\tIS: 'Iceland',\r\n\tIN: 'India',\r\n\tID: 'Indonesia',\r\n\tIR: 'Iran, Islamic Republic of',\r\n\tIQ: 'Iraq',\r\n\tIE: 'Ireland',\r\n\tIM: 'Isle of Man',\r\n\tIL: 'Israel',\r\n\tIT: 'Italy',\r\n\tJM: 'Jamaica',\r\n\tJP: 'Japan',\r\n\tJE: 'Jersey',\r\n\tJO: 'Jordan',\r\n\tKZ: 'Kazakhstan',\r\n\tKE: 'Kenya',\r\n\tKI: 'Kiribati',\r\n\tKP: \"Korea, Democratic People's Republic of\",\r\n\tKR: 'Korea, Republic of',\r\n\tKW: 'Kuwait',\r\n\tKG: 'Kyrgyzstan',\r\n\tLA: \"Lao People's Democratic Republic\",\r\n\tLV: 'Latvia',\r\n\tLB: 'Lebanon',\r\n\tLS: 'Lesotho',\r\n\tLR: 'Liberia',\r\n\tLY: 'Libya',\r\n\tLI: 'Liechtenstein',\r\n\tLT: 'Lithuania',\r\n\tLU: 'Luxembourg',\r\n\tMO: 'Macao',\r\n\tMK: 'Macedonia, the Former Yugoslav Republic of',\r\n\tMG: 'Madagascar',\r\n\tMW: 'Malawi',\r\n\tMY: 'Malaysia',\r\n\tMV: 'Maldives',\r\n\tML: 'Mali',\r\n\tMT: 'Malta',\r\n\tMH: 'Marshall Islands',\r\n\tMQ: 'Martinique',\r\n\tMR: 'Mauritania',\r\n\tMU: 'Mauritius',\r\n\tYT: 'Mayotte',\r\n\tMX: 'Mexico',\r\n\tFM: 'Micronesia, Federated States of',\r\n\tMD: 'Moldova, Republic of',\r\n\tMC: 'Monaco',\r\n\tMN: 'Mongolia',\r\n\tME: 'Montenegro',\r\n\tMS: 'Montserrat',\r\n\tMA: 'Morocco',\r\n\tMZ: 'Mozambique',\r\n\tMM: 'Myanmar',\r\n\tNA: 'Namibia',\r\n\tNR: 'Nauru',\r\n\tNP: 'Nepal',\r\n\tNL: 'Netherlands',\r\n\tNC: 'New Caledonia',\r\n\tNZ: 'New Zealand',\r\n\tNI: 'Nicaragua',\r\n\tNE: 'Niger',\r\n\tNG: 'Nigeria',\r\n\tNU: 'Niue',\r\n\tNF: 'Norfolk Island',\r\n\tMP: 'Northern Mariana Islands',\r\n\tNO: 'Norway',\r\n\tOM: 'Oman',\r\n\tPK: 'Pakistan',\r\n\tPW: 'Palau',\r\n\tPS: 'Palestine, State of',\r\n\tPA: 'Panama',\r\n\tPG: 'Papua New Guinea',\r\n\tPY: 'Paraguay',\r\n\tPE: 'Peru',\r\n\tPH: 'Philippines',\r\n\tPN: 'Pitcairn',\r\n\tPL: 'Poland',\r\n\tPT: 'Portugal',\r\n\tPR: 'Puerto Rico',\r\n\tQA: 'Qatar',\r\n\tRE: 'R\\u00e9union',\r\n\tRO: 'Romania',\r\n\tRU: 'Russian Federation',\r\n\tRW: 'Rwanda',\r\n\tBL: 'Saint Barth\\u00e9lemy',\r\n\tSH: 'Saint Helena, Ascension and Tristan da Cunha',\r\n\tKN: 'Saint Kitts and Nevis',\r\n\tLC: 'Saint Lucia',\r\n\tMF: 'Saint Martin (French part)',\r\n\tPM: 'Saint Pierre and Miquelon',\r\n\tVC: 'Saint Vincent and the Grenadines',\r\n\tWS: 'Samoa',\r\n\tSM: 'San Marino',\r\n\tST: 'Sao Tome and Principe',\r\n\tSA: 'Saudi Arabia',\r\n\tSN: 'Senegal',\r\n\tRS: 'Serbia',\r\n\tSC: 'Seychelles',\r\n\tSL: 'Sierra Leone',\r\n\tSG: 'Singapore',\r\n\tSX: 'Sint Maarten (Dutch part)',\r\n\tSK: 'Slovakia',\r\n\tSI: 'Slovenia',\r\n\tSB: 'Solomon Islands',\r\n\tSO: 'Somalia',\r\n\tZA: 'South Africa',\r\n\tGS: 'South Georgia and the South Sandwich Islands',\r\n\tSS: 'South Sudan',\r\n\tES: 'Spain',\r\n\tLK: 'Sri Lanka',\r\n\tSD: 'Sudan',\r\n\tSR: 'Suriname',\r\n\tSJ: 'Svalbard and Jan Mayen',\r\n\tSZ: 'Swaziland',\r\n\tSE: 'Sweden',\r\n\tCH: 'Switzerland',\r\n\tSY: 'Syrian Arab Republic',\r\n\tTW: 'Taiwan, Province of China',\r\n\tTJ: 'Tajikistan',\r\n\tTZ: 'Tanzania, United Republic of',\r\n\tTH: 'Thailand',\r\n\tTL: 'Timor-Leste',\r\n\tTG: 'Togo',\r\n\tTK: 'Tokelau',\r\n\tTO: 'Tonga',\r\n\tTT: 'Trinidad and Tobago',\r\n\tTN: 'Tunisia',\r\n\tTR: 'Turkey',\r\n\tTM: 'Turkmenistan',\r\n\tTC: 'Turks and Caicos Islands',\r\n\tTV: 'Tuvalu',\r\n\tUG: 'Uganda',\r\n\tUA: 'Ukraine',\r\n\tAE: 'United Arab Emirates',\r\n\tGB: 'United Kingdom',\r\n\tUS: 'United States',\r\n\tUM: 'United States Minor Outlying Islands',\r\n\tUY: 'Uruguay',\r\n\tUZ: 'Uzbekistan',\r\n\tVU: 'Vanuatu',\r\n\tVE: 'Venezuela, Bolivarian Republic of',\r\n\tVN: 'Viet Nam',\r\n\tVG: 'Virgin Islands, British',\r\n\tVI: 'Virgin Islands, U.S.',\r\n\tWF: 'Wallis and Futuna',\r\n\tEH: 'Western Sahara',\r\n\tYE: 'Yemen',\r\n\tZM: 'Zambia',\r\n\tZW: 'Zimbabwe'\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { socket } from '@/utils/socket'\r\nimport { convertDuration } from '@/utils/utils'\r\nimport { COUNTRIES } from '@/utils/countries'\r\nimport EventBus from '@/utils/EventBus'\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tlink: '',\r\n\t\t\ttitle: '',\r\n\t\t\tsubtitle: '',\r\n\t\t\timage: '',\r\n\t\t\tdata: {},\r\n\t\t\ttype: '',\r\n\t\t\tid: '0',\r\n\t\t\tcountries: []\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tconvertDuration,\r\n\t\treset() {\r\n\t\t\tthis.title = 'Loading...'\r\n\t\t\tthis.subtitle = ''\r\n\t\t\tthis.image = ''\r\n\t\t\tthis.data = {}\r\n\t\t\tthis.type = ''\r\n\t\t\tthis.link = ''\r\n\t\t\tthis.countries = []\r\n\t\t},\r\n\t\tshowTrack(data) {\r\n\t\t\tthis.reset()\r\n\t\t\tconst {\r\n\t\t\t\ttitle,\r\n\t\t\t\ttitle_version,\r\n\t\t\t\talbum: { cover_xl },\r\n\t\t\t\tlink,\r\n\t\t\t\tavailable_countries,\r\n\t\t\t\tid\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.title = title + (title_version && title.indexOf(title_version) == -1 ? ' ' + title_version : '')\r\n\t\t\tthis.image = cover_xl\r\n\t\t\tthis.type = 'track'\r\n\t\t\tthis.link = link\r\n\t\t\tthis.id = id\r\n\r\n\t\t\tavailable_countries.forEach(cc => {\r\n\t\t\t\tlet temp = []\r\n\t\t\t\tlet chars = [...cc].map(c => c.charCodeAt() + 127397)\r\n\t\t\t\ttemp.push(String.fromCodePoint(...chars))\r\n\t\t\t\ttemp.push(COUNTRIES[cc])\r\n\t\t\t\tthis.countries.push(temp)\r\n\t\t\t})\r\n\r\n\t\t\tthis.data = data\r\n\t\t},\r\n\t\tshowAlbum(data) {\r\n\t\t\tthis.reset()\r\n\t\t\tconst { title, cover_xl, link, id } = data\r\n\r\n\t\t\tthis.title = title\r\n\t\t\tthis.image = cover_xl\r\n\t\t\tthis.type = 'album'\r\n\t\t\tthis.link = link\r\n\t\t\tthis.data = data\r\n\t\t\tthis.id = id\r\n\t\t},\r\n\t\tnotSupported() {\r\n\t\t\tthis.link = 'error'\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tEventBus.$on('linkAnalyzerTab:reset', this.reset)\r\n\r\n\t\tsocket.on('analyze_track', this.showTrack)\r\n\t\tsocket.on('analyze_album', this.showAlbum)\r\n\t\tsocket.on('analyze_notSupported', this.notSupported)\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"analyzer_tab\" class=\"main_tabcontent image_header\" ref=\"root\">\r\n\t\t<h2 class=\"page_heading page_heading--capitalize\">{{ $t('sidebar.linkAnalyzer') }}</h2>\r\n\r\n\t\t<div v-if=\"link === ''\">\r\n\t\t\t<p>\r\n\t\t\t\t{{ $t('linkAnalyzer.info') }}\r\n\t\t\t</p>\r\n\t\t\t<p>\r\n\t\t\t\t{{ $t('linkAnalyzer.useful') }}\r\n\t\t\t</p>\r\n\t\t</div>\r\n\t\t<div v-else-if=\"link === 'error'\">\r\n\t\t\t<h2>{{ $t('linkAnalyzer.linkNotSupported') }}</h2>\r\n\t\t\t<p>{{ $t('linkAnalyzer.linkNotSupportedYet') }}</p>\r\n\t\t</div>\r\n\r\n\t\t<div v-else>\r\n\t\t\t<header\r\n\t\t\t\tclass=\"inline-flex\"\r\n\t\t\t\t:style=\"{\r\n\t\t\t\t\t'background-image':\r\n\t\t\t\t\t\t'linear-gradient(to bottom, transparent 0%, var(--main-background) 100%), url(\\'' + image + '\\')'\r\n\t\t\t\t}\"\r\n\t\t\t>\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<h1>{{ title }}</h1>\r\n\t\t\t\t\t<h2 v-if=\"type === 'track'\">\r\n\t\t\t\t\t\t<i18n path=\"globals.by\" tag=\"span\">\r\n\t\t\t\t\t\t\t<router-link\r\n\t\t\t\t\t\t\t\ttag=\"span\"\r\n\t\t\t\t\t\t\t\tplace=\"artist\"\r\n\t\t\t\t\t\t\t\tclass=\"clickable\"\r\n\t\t\t\t\t\t\t\t:to=\"{ name: 'Artist', params: { id: data.artist.id } }\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{{ data.artist.name }}\r\n\t\t\t\t\t\t\t</router-link>\r\n\t\t\t\t\t\t</i18n>\r\n\t\t\t\t\t\t•\r\n\t\t\t\t\t\t<i18n path=\"globals.in\" tag=\"span\">\r\n\t\t\t\t\t\t\t<router-link\r\n\t\t\t\t\t\t\t\ttag=\"span\"\r\n\t\t\t\t\t\t\t\tplace=\"album\"\r\n\t\t\t\t\t\t\t\tclass=\"clickable\"\r\n\t\t\t\t\t\t\t\t:to=\"{ name: 'Album', params: { id: data.album.id } }\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{{ data.album.title }}\r\n\t\t\t\t\t\t\t</router-link>\r\n\t\t\t\t\t\t</i18n>\r\n\t\t\t\t\t</h2>\r\n\t\t\t\t\t<h2 v-else-if=\"type === 'album'\">\r\n\t\t\t\t\t\t<i18n path=\"globals.by\" tag=\"span\">\r\n\t\t\t\t\t\t\t<router-link\r\n\t\t\t\t\t\t\t\ttag=\"span\"\r\n\t\t\t\t\t\t\t\tplace=\"artist\"\r\n\t\t\t\t\t\t\t\tclass=\"clickable\"\r\n\t\t\t\t\t\t\t\t:to=\"{ name: 'Artist', params: { id: data.artist.id } }\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{{ data.artist.name }}\r\n\t\t\t\t\t\t\t</router-link>\r\n\t\t\t\t\t\t</i18n>\r\n\t\t\t\t\t\t{{ ` • ${$tc('globals.listTabs.trackN', data.nb_tracks)}` }}\r\n\t\t\t\t\t</h2>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div\r\n\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t@contextmenu.prevent=\"openQualityModal\"\r\n\t\t\t\t\t@click.stop=\"addToQueue\"\r\n\t\t\t\t\t:data-link=\"link\"\r\n\t\t\t\t\tclass=\"fab right\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t</div>\r\n\t\t\t</header>\r\n\t\t\t<table class=\"table\">\r\n\t\t\t\t<tr v-if=\"data.id\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.id') }}</td>\r\n\t\t\t\t\t<td>{{ data.id }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.isrc\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.isrc') }}</td>\r\n\t\t\t\t\t<td>{{ data.isrc }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.upc\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.upc') }}</td>\r\n\t\t\t\t\t<td>{{ data.upc }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.duration\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.duration') }}</td>\r\n\t\t\t\t\t<td>{{ convertDuration(data.duration) }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.disk_number\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.diskNumber') }}</td>\r\n\t\t\t\t\t<td>{{ data.disk_number }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.track_position\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.trackNumber') }}</td>\r\n\t\t\t\t\t<td>{{ data.track_position }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.release_date\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.releaseDate') }}</td>\r\n\t\t\t\t\t<td>{{ data.release_date }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.bpm\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.bpm') }}</td>\r\n\t\t\t\t\t<td>{{ data.bpm }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.label\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.label') }}</td>\r\n\t\t\t\t\t<td>{{ data.label }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.record_type\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.recordType') }}</td>\r\n\t\t\t\t\t<td>{{ $tc(`globals.listTabs.${data.record_type}`, 1) }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr v-if=\"data.genres && data.genres.data.length\">\r\n\t\t\t\t\t<td>{{ $t('linkAnalyzer.table.genres') }}</td>\r\n\t\t\t\t\t<td>{{ data.genres.data.map(x => x.name).join('; ') }}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table>\r\n\r\n\t\t\t<div v-if=\"type == 'album'\">\r\n\t\t\t\t<router-link tag=\"button\" :to=\"{ name: 'Album', params: { id } }\">\r\n\t\t\t\t\t{{ $t('linkAnalyzer.table.tracklist') }}\r\n\t\t\t\t</router-link>\r\n\t\t\t</div>\r\n\t\t\t<div v-if=\"countries.length\">\r\n\t\t\t\t<p v-for=\"country in countries\">{{ country[0] }} - {{ country[1] }}</p>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport { socket } from '@/utils/socket'\r\nimport { convertDuration } from '@/utils/utils'\r\nimport { COUNTRIES } from '@/utils/countries'\r\nimport EventBus from '@/utils/EventBus'\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tlink: '',\r\n\t\t\ttitle: '',\r\n\t\t\tsubtitle: '',\r\n\t\t\timage: '',\r\n\t\t\tdata: {},\r\n\t\t\ttype: '',\r\n\t\t\tid: '0',\r\n\t\t\tcountries: []\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tconvertDuration,\r\n\t\treset() {\r\n\t\t\tthis.title = 'Loading...'\r\n\t\t\tthis.subtitle = ''\r\n\t\t\tthis.image = ''\r\n\t\t\tthis.data = {}\r\n\t\t\tthis.type = ''\r\n\t\t\tthis.link = ''\r\n\t\t\tthis.countries = []\r\n\t\t},\r\n\t\tshowTrack(data) {\r\n\t\t\tthis.reset()\r\n\t\t\tconst {\r\n\t\t\t\ttitle,\r\n\t\t\t\ttitle_version,\r\n\t\t\t\talbum: { cover_xl },\r\n\t\t\t\tlink,\r\n\t\t\t\tavailable_countries,\r\n\t\t\t\tid\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.title = title + (title_version && title.indexOf(title_version) == -1 ? ' ' + title_version : '')\r\n\t\t\tthis.image = cover_xl\r\n\t\t\tthis.type = 'track'\r\n\t\t\tthis.link = link\r\n\t\t\tthis.id = id\r\n\r\n\t\t\tavailable_countries.forEach(cc => {\r\n\t\t\t\tlet temp = []\r\n\t\t\t\tlet chars = [...cc].map(c => c.charCodeAt() + 127397)\r\n\t\t\t\ttemp.push(String.fromCodePoint(...chars))\r\n\t\t\t\ttemp.push(COUNTRIES[cc])\r\n\t\t\t\tthis.countries.push(temp)\r\n\t\t\t})\r\n\r\n\t\t\tthis.data = data\r\n\t\t},\r\n\t\tshowAlbum(data) {\r\n\t\t\tthis.reset()\r\n\t\t\tconst { title, cover_xl, link, id } = data\r\n\r\n\t\t\tthis.title = title\r\n\t\t\tthis.image = cover_xl\r\n\t\t\tthis.type = 'album'\r\n\t\t\tthis.link = link\r\n\t\t\tthis.data = data\r\n\t\t\tthis.id = id\r\n\t\t},\r\n\t\tnotSupported() {\r\n\t\t\tthis.link = 'error'\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t}\r\n\t},\r\n\tmounted() {\r\n\t\tEventBus.$on('linkAnalyzerTab:reset', this.reset)\r\n\r\n\t\tsocket.on('analyze_track', this.showTrack)\r\n\t\tsocket.on('analyze_album', this.showAlbum)\r\n\t\tsocket.on('analyze_notSupported', this.notSupported)\r\n\t}\r\n}\r\n</script>\r\n\r\n<style>\r\n</style>\r\n","/**\r\n * @param {string}\ttext\r\n */\r\nexport const upperCaseFirstLowerCaseRest = text => text.charAt(0).toUpperCase() + text.slice(1).toLowerCase()\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { convertDuration } from '@/utils/utils'\r\nimport { upperCaseFirstLowerCaseRest } from '@/utils/texts'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomputed: {\r\n\t\ttopResultType() {\r\n\t\t\treturn this.results.allTab.TOP_RESULT[0].type\r\n\t\t},\r\n\t\tnoResults() {\r\n\t\t\treturn this.results.allTab.ORDER.every(section =>\r\n\t\t\t\tsection == 'TOP_RESULT'\r\n\t\t\t\t\t? this.results.allTab[section].length == 0\r\n\t\t\t\t\t: this.results.allTab[section].data.length == 0\r\n\t\t\t)\r\n\t\t},\r\n\t\tfansNumber() {\r\n\t\t\tlet number\r\n\r\n\t\t\ttry {\r\n\t\t\t\tnumber = this.$n(this.results.allTab.TOP_RESULT[0].nb_fan)\r\n\t\t\t} catch (error) {\r\n\t\t\t\tnumber = this.$n(this.results.allTab.TOP_RESULT[0].nb_fan, { locale: 'en' })\r\n\t\t\t}\r\n\r\n\t\t\treturn this.results.allTab.TOP_RESULT[0].type == 'artist'\r\n\t\t\t\t? this.$t('search.fans', { n: number })\r\n\t\t\t\t: this.$t('globals.by', { artist: this.results.allTab.TOP_RESULT[0].artist }) +\r\n\t\t\t\t\t\t' - ' +\r\n\t\t\t\t\t\tthis.$tc('globals.listTabs.trackN', this.results.allTab.TOP_RESULT[0].nb_song)\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tconvertDuration,\r\n\t\tupperCaseFirstLowerCaseRest\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"main_search\" class=\"search_tabcontent\">\r\n\t\t<template v-for=\"section in results.allTab.ORDER\">\r\n\t\t\t<section\r\n\t\t\t\tv-if=\"\r\n\t\t\t\t\t(section != 'TOP_RESULT' && results.allTab[section].data.length > 0) || results.allTab[section].length > 0\r\n\t\t\t\t\"\r\n\t\t\t\tclass=\"search_section\"\r\n\t\t\t>\r\n\t\t\t\t<h2\r\n\t\t\t\t\t@click=\"$emit('change-search-tab', section)\"\r\n\t\t\t\t\tclass=\"search_header\"\r\n\t\t\t\t\t:class=\"{ top_result_header: section === 'TOP_RESULT' }\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ $tc(`globals.listTabs.${section.toLowerCase()}`, 2) }}\r\n\t\t\t\t</h2>\r\n\t\t\t\t<!-- Top result -->\r\n\t\t\t\t<router-link\r\n\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\tv-if=\"section == 'TOP_RESULT'\"\r\n\t\t\t\t\tclass=\"top_result clickable\"\r\n\t\t\t\t\t:to=\"{ name: upperCaseFirstLowerCaseRest(topResultType), params: { id: results.allTab.TOP_RESULT[0].id } }\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\taria-hidden=\"true\"\r\n\t\t\t\t\t\t\t:src=\"results.allTab.TOP_RESULT[0].picture\"\r\n\t\t\t\t\t\t\t:class=\"(results.allTab.TOP_RESULT[0].type == 'artist' ? 'circle' : 'rounded') + ' coverart'\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t@click.stop=\"$emit('add-to-queue', $event)\"\r\n\t\t\t\t\t\t\t:data-link=\"results.allTab.TOP_RESULT[0].link\"\r\n\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"info_box\">\r\n\t\t\t\t\t\t<p class=\"primary-text\">{{ results.allTab.TOP_RESULT[0].title }}</p>\r\n\t\t\t\t\t\t<p class=\"secondary-text\">\r\n\t\t\t\t\t\t\t{{ fansNumber }}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t<span class=\"tag\">{{ $tc(`globals.listTabs.${results.allTab.TOP_RESULT[0].type}`, 1) }}</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</router-link>\r\n\t\t\t\t<div v-else-if=\"section == 'TRACK'\">\r\n\t\t\t\t\t<table class=\"table table--tracks\">\r\n\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t<tr v-for=\"track in results.allTab.TRACK.data.slice(0, 6)\" :key=\"track.SNG_ID\">\r\n\t\t\t\t\t\t\t\t<td class=\"table__icon\" aria-hidden=\"true\">\r\n\t\t\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\t\t\tclass=\"rounded coverart\"\r\n\t\t\t\t\t\t\t\t\t\t:src=\"\r\n\t\t\t\t\t\t\t\t\t\t\t'https://e-cdns-images.dzcdn.net/images/cover/' + track.ALB_PICTURE + '/32x32-000000-80-0-0.jpg'\r\n\t\t\t\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t<td class=\"table__cell table__cell--large breakline\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"table__cell-content table__cell-content--vertical-center\">\r\n\t\t\t\t\t\t\t\t\t\t<i v-if=\"track.EXPLICIT_LYRICS == 1\" class=\"material-icons explicit_icon\"> explicit </i>\r\n\t\t\t\t\t\t\t\t\t\t{{ track.SNG_TITLE + (track.VERSION ? ' ' + track.VERSION : '') }}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t<td class=\"table__cell table__cell--medium table__cell--center breakline\">\r\n\t\t\t\t\t\t\t\t\t<router-link\r\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\r\n\t\t\t\t\t\t\t\t\t\tv-for=\"artist in track.ARTISTS\"\r\n\t\t\t\t\t\t\t\t\t\t:key=\"artist.ART_ID\"\r\n\t\t\t\t\t\t\t\t\t\tclass=\"clickable\"\r\n\t\t\t\t\t\t\t\t\t\t:to=\"{\r\n\t\t\t\t\t\t\t\t\t\t\tname: 'Artist',\r\n\t\t\t\t\t\t\t\t\t\t\tparams: { id: artist.ART_ID }\r\n\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{{ artist.ART_NAME }}\r\n\t\t\t\t\t\t\t\t\t</router-link>\r\n\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t<router-link\r\n\t\t\t\t\t\t\t\t\ttag=\"td\"\r\n\t\t\t\t\t\t\t\t\tclass=\"table__cell--medium table__cell--center breakline clickable\"\r\n\t\t\t\t\t\t\t\t\t:to=\"{ name: 'Album', params: { id: track.ALB_ID } }\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t{{ track.ALB_TITLE }}\r\n\t\t\t\t\t\t\t\t</router-link>\r\n\t\t\t\t\t\t\t\t<td class=\"table__cell table__cell--center\">\r\n\t\t\t\t\t\t\t\t\t{{ convertDuration(track.DURATION) }}\r\n\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t\t<td\r\n\t\t\t\t\t\t\t\t\tclass=\"table__cell--download table__cell--center clickable\"\r\n\t\t\t\t\t\t\t\t\t@click.stop=\"$emit('add-to-queue', $event)\"\r\n\t\t\t\t\t\t\t\t\t:data-link=\"'https://www.deezer.com/track/' + track.SNG_ID\"\r\n\t\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\"> get_app </i>\r\n\t\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t</table>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div v-else-if=\"section == 'ARTIST'\" class=\"release_grid firstrow_only\">\r\n\t\t\t\t\t<router-link\r\n\t\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\t\tv-for=\"release in results.allTab.ARTIST.data.slice(0, 10)\"\r\n\t\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\t\t:key=\"release.ART_ID\"\r\n\t\t\t\t\t\t:to=\"{ name: 'Artist', params: { id: release.ART_ID } }\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\r\n\t\t\t\t\t\t\t\tclass=\"circle coverart\"\r\n\t\t\t\t\t\t\t\t:src=\"\r\n\t\t\t\t\t\t\t\t\t'https://e-cdns-images.dzcdn.net/images/artist/' + release.ART_PICTURE + '/156x156-000000-80-0-0.jpg'\r\n\t\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t\t@click.stop=\"$emit('add-to-queue', $event)\"\r\n\t\t\t\t\t\t\t\t:data-link=\"'https://deezer.com/artist/' + release.ART_ID\"\r\n\t\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<p class=\"primary-text\">{{ release.ART_NAME }}</p>\r\n\t\t\t\t\t\t<p class=\"secondary-text\">{{ $t('search.fans', { n: $n(release.NB_FAN) }) }}</p>\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div v-else-if=\"section == 'ALBUM'\" class=\"release_grid firstrow_only\">\r\n\t\t\t\t\t<router-link\r\n\t\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\t\tv-for=\"release in results.allTab.ALBUM.data.slice(0, 10)\"\r\n\t\t\t\t\t\t:key=\"release.ALB_ID\"\r\n\t\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\t\t:to=\"{ name: 'Album', params: { id: release.ALB_ID } }\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\r\n\t\t\t\t\t\t\t\tclass=\"rounded coverart\"\r\n\t\t\t\t\t\t\t\t:src=\"\r\n\t\t\t\t\t\t\t\t\t'https://e-cdns-images.dzcdn.net/images/cover/' + release.ALB_PICTURE + '/156x156-000000-80-0-0.jpg'\r\n\t\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t\t@click.stop=\"$emit('add-to-queue', $event)\"\r\n\t\t\t\t\t\t\t\t:data-link=\"'https://deezer.com/album/' + release.ALB_ID\"\r\n\t\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<p class=\"primary-text inline-flex\">\r\n\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\tv-if=\"[1, 4].indexOf(release.EXPLICIT_ALBUM_CONTENT.EXPLICIT_LYRICS_STATUS) != -1\"\r\n\t\t\t\t\t\t\t\tclass=\"material-icons explicit_icon\"\r\n\t\t\t\t\t\t\t\t>explicit</i\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ release.ALB_TITLE }}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t<p class=\"secondary-text\">\r\n\t\t\t\t\t\t\t{{ release.ART_NAME + ' - ' + $tc('globals.listTabs.trackN', release.NUMBER_TRACK) }}\r\n\t\t\t\t\t\t</p>\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div v-else-if=\"section == 'PLAYLIST'\" class=\"release_grid firstrow_only\">\r\n\t\t\t\t\t<router-link\r\n\t\t\t\t\t\ttag=\"div\"\r\n\t\t\t\t\t\tv-for=\"release in results.allTab.PLAYLIST.data.slice(0, 10)\"\r\n\t\t\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t\t\t:key=\"release.PLAYLIST_ID\"\r\n\t\t\t\t\t\t:to=\"{ name: 'Playlist', params: { id: release.PLAYLIST_ID } }\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\r\n\t\t\t\t\t\t\t\tclass=\"rounded coverart\"\r\n\t\t\t\t\t\t\t\t:src=\"\r\n\t\t\t\t\t\t\t\t\t'https://e-cdns-images.dzcdn.net/images/' +\r\n\t\t\t\t\t\t\t\t\trelease.PICTURE_TYPE +\r\n\t\t\t\t\t\t\t\t\t'/' +\r\n\t\t\t\t\t\t\t\t\trelease.PLAYLIST_PICTURE +\r\n\t\t\t\t\t\t\t\t\t'/156x156-000000-80-0-0.jpg'\r\n\t\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t\t\t@click.stop=\"$emit('add-to-queue', $event)\"\r\n\t\t\t\t\t\t\t\t:data-link=\"'https://deezer.com/playlist/' + release.PLAYLIST_ID\"\r\n\t\t\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<p class=\"primary-text\">{{ release.TITLE }}</p>\r\n\t\t\t\t\t\t<p class=\"secondary-text\">{{ $tc('globals.listTabs.trackN', release.NB_SONG) }}</p>\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t</div>\r\n\t\t\t</section>\r\n\t\t</template>\r\n\t\t<div v-if=\"noResults\">\r\n\t\t\t<h1>{{ $t('search.noResults') }}</h1>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n<script>\r\nimport { convertDuration } from '@/utils/utils'\r\nimport { upperCaseFirstLowerCaseRest } from '@/utils/texts'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomputed: {\r\n\t\ttopResultType() {\r\n\t\t\treturn this.results.allTab.TOP_RESULT[0].type\r\n\t\t},\r\n\t\tnoResults() {\r\n\t\t\treturn this.results.allTab.ORDER.every(section =>\r\n\t\t\t\tsection == 'TOP_RESULT'\r\n\t\t\t\t\t? this.results.allTab[section].length == 0\r\n\t\t\t\t\t: this.results.allTab[section].data.length == 0\r\n\t\t\t)\r\n\t\t},\r\n\t\tfansNumber() {\r\n\t\t\tlet number\r\n\r\n\t\t\ttry {\r\n\t\t\t\tnumber = this.$n(this.results.allTab.TOP_RESULT[0].nb_fan)\r\n\t\t\t} catch (error) {\r\n\t\t\t\tnumber = this.$n(this.results.allTab.TOP_RESULT[0].nb_fan, { locale: 'en' })\r\n\t\t\t}\r\n\r\n\t\t\treturn this.results.allTab.TOP_RESULT[0].type == 'artist'\r\n\t\t\t\t? this.$t('search.fans', { n: number })\r\n\t\t\t\t: this.$t('globals.by', { artist: this.results.allTab.TOP_RESULT[0].artist }) +\r\n\t\t\t\t\t\t' - ' +\r\n\t\t\t\t\t\tthis.$tc('globals.listTabs.trackN', this.results.allTab.TOP_RESULT[0].nb_song)\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\tconvertDuration,\r\n\t\tupperCaseFirstLowerCaseRest\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"album_search\" class=\"search_tabcontent\">\r\n\t\t<BaseLoadingPlaceholder v-if=\"!results.albumTab.loaded\" />\r\n\t\t<div v-else-if=\"results.albumTab.data.length == 0\">\r\n\t\t\t<h1>{{ $t('search.noResultsAlbum') }}</h1>\r\n\t\t</div>\r\n\t\t<div class=\"release_grid\" v-if=\"results.albumTab.data.length > 0\">\r\n\t\t\t<router-link\r\n\t\t\t\ttag=\"div\"\r\n\t\t\t\tv-for=\"release in results.albumTab.data\"\r\n\t\t\t\t:key=\"release.id\"\r\n\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t:to=\"{ name: 'Album', params: { id: release.id } }\"\r\n\t\t\t>\r\n\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t<img aria-hidden=\"true\" class=\"rounded coverart\" :src=\"release.cover_medium\" />\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t@click.stop=\"$emit('add-to-queue', $event)\"\r\n\t\t\t\t\t\t:data-link=\"release.link\"\r\n\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p class=\"primary-text inline-flex\">\r\n\t\t\t\t\t<i v-if=\"release.explicit_lyrics\" class=\"material-icons explicit_icon\">explicit</i>\r\n\t\t\t\t\t{{ release.title }}\r\n\t\t\t\t</p>\r\n\t\t\t\t<p class=\"secondary-text\">\r\n\t\t\t\t\t{{\r\n\t\t\t\t\t\t$t('globals.by', { artist: release.artist.name }) +\r\n\t\t\t\t\t\t' - ' +\r\n\t\t\t\t\t\t$tc('globals.listTabs.trackN', release.nb_tracks)\r\n\t\t\t\t\t}}\r\n\t\t\t\t</p>\r\n\t\t\t</router-link>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"artist_search\" class=\"search_tabcontent\">\r\n\t\t<BaseLoadingPlaceholder v-if=\"!results.artistTab.loaded\"></BaseLoadingPlaceholder>\r\n\t\t<div v-else-if=\"results.artistTab.data.length == 0\">\r\n\t\t\t<h1>{{ $t('search.noResultsArtist') }}</h1>\r\n\t\t</div>\r\n\t\t<div class=\"release_grid\" v-if=\"results.artistTab.data.length > 0\">\r\n\t\t\t<router-link\r\n\t\t\t\ttag=\"div\"\r\n\t\t\t\tv-for=\"release in results.artistTab.data\"\r\n\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t:to=\"{ name: 'Artist', params: { id: release.id } }\"\r\n\t\t\t>\r\n\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t<img aria-hidden=\"true\" class=\"circle coverart\" :src=\"release.picture_medium\" />\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t@click.stop=\"$emit('add-to-queue', $event)\"\r\n\t\t\t\t\t\t:data-link=\"release.link\"\r\n\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p class=\"primary-text\">{{ release.name }}</p>\r\n\t\t\t\t<p class=\"secondary-text\">{{ $tc('globals.listTabs.releaseN', release.nb_album) }}</p>\r\n\t\t\t</router-link>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"playlist_search\" class=\"search_tabcontent\">\r\n\t\t<BaseLoadingPlaceholder v-if=\"!results.playlistTab.loaded\" />\r\n\t\t<div v-else-if=\"results.playlistTab.data.length == 0\">\r\n\t\t\t<h1>{{ $t('search.noResultsPlaylist') }}</h1>\r\n\t\t</div>\r\n\t\t<div class=\"release_grid\" v-if=\"results.playlistTab.data.length > 0\">\r\n\t\t\t<router-link\r\n\t\t\t\ttag=\"div\"\r\n\t\t\t\tv-for=\"release in results.playlistTab.data\"\r\n\t\t\t\tclass=\"release clickable\"\r\n\t\t\t\t:key=\"release.id\"\r\n\t\t\t\t:to=\"{ name: 'Playlist', params: { id: release.id } }\"\r\n\t\t\t>\r\n\t\t\t\t<div class=\"cover_container\">\r\n\t\t\t\t\t<img aria-hidden=\"true\" class=\"rounded coverart\" :src=\"release.picture_medium\" />\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t\t@click.stop=\"$emit('add-to-queue', $event)\"\r\n\t\t\t\t\t\t:data-link=\"release.link\"\r\n\t\t\t\t\t\tclass=\"download_overlay\"\r\n\t\t\t\t\t\ttabindex=\"0\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\">get_app</i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<p class=\"primary-text\">{{ release.title }}</p>\r\n\t\t\t\t<p class=\"secondary-text\">\r\n\t\t\t\t\t{{\r\n\t\t\t\t\t\t`${$t('globals.by', { artist: release.user.name })} - ${$tc('globals.listTabs.trackN', release.nb_tracks)}`\r\n\t\t\t\t\t}}\r\n\t\t\t\t</p>\r\n\t\t\t</router-link>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nimport EventBus from '@/utils/EventBus'\r\nimport { convertDuration } from '@/utils/utils'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t},\r\n\tmethods: {\r\n\t\tconvertDuration,\r\n\t\tplayPausePreview(e) {\r\n\t\t\tEventBus.$emit('trackPreview:playPausePreview', e)\r\n\t\t},\r\n\t\tpreviewMouseEnter(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseEnter', e)\r\n\t\t},\r\n\t\tpreviewMouseLeave(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseLeave', e)\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"track_search\" class=\"search_tabcontent\">\r\n\t\t<BaseLoadingPlaceholder v-if=\"!results.trackTab.loaded\" />\r\n\t\t<div v-else-if=\"results.trackTab.data.length == 0\">\r\n\t\t\t<h1>{{ $t('search.noResultsTrack') }}</h1>\r\n\t\t</div>\r\n\t\t<table class=\"table table--tracks\" v-if=\"results.trackTab.data.length > 0\">\r\n\t\t\t<thead>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th colspan=\"2\">{{ $tc('globals.listTabs.title', 1) }}</th>\r\n\t\t\t\t\t<th>{{ $tc('globals.listTabs.artist', 1) }}</th>\r\n\t\t\t\t\t<th>{{ $tc('globals.listTabs.album', 1) }}</th>\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<i class=\"material-icons\"> timer </i>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<th style=\"width: 56px\"></th>\r\n\t\t\t\t</tr>\r\n\t\t\t</thead>\r\n\t\t\t<tbody>\r\n\t\t\t\t<tr v-for=\"track in results.trackTab.data\">\r\n\t\t\t\t\t<td class=\"table__icon table__icon--big\">\r\n\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\thref=\"#\"\r\n\t\t\t\t\t\t\t@click=\"playPausePreview\"\r\n\t\t\t\t\t\t\t:class=\"'rounded' + (track.preview ? ' single-cover' : '')\"\r\n\t\t\t\t\t\t\t:data-preview=\"track.preview\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t@mouseenter=\"previewMouseEnter\"\r\n\t\t\t\t\t\t\t\t@mouseleave=\"previewMouseLeave\"\r\n\t\t\t\t\t\t\t\tv-if=\"track.preview\"\r\n\t\t\t\t\t\t\t\tclass=\"material-icons preview_controls\"\r\n\t\t\t\t\t\t\t\t:title=\"$t('globals.play_hint')\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tplay_arrow\r\n\t\t\t\t\t\t\t</i>\r\n\t\t\t\t\t\t\t<img class=\"rounded coverart\" :src=\"track.album.cover_small\" />\r\n\t\t\t\t\t\t</a>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td class=\"table__cell table__cell--large breakline\">\r\n\t\t\t\t\t\t<div class=\"table__cell-content table__cell-content--vertical-center\">\r\n\t\t\t\t\t\t\t<i v-if=\"track.explicit_lyrics\" class=\"material-icons explicit_icon\"> explicit </i>\r\n\t\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t\ttrack.title +\r\n\t\t\t\t\t\t\t\t(track.title_version && track.title.indexOf(track.title_version) == -1 ? ' ' + track.title_version : '')\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<router-link\r\n\t\t\t\t\t\ttag=\"td\"\r\n\t\t\t\t\t\tclass=\"table__cell table__cell--medium table__cell--center breakline clickable\"\r\n\t\t\t\t\t\t:to=\"{ name: 'Artist', params: { id: track.artist.id } }\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ track.artist.name }}\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t\t<router-link\r\n\t\t\t\t\t\ttag=\"td\"\r\n\t\t\t\t\t\tclass=\"table__cell table__cell--medium table__cell--center breakline clickable\"\r\n\t\t\t\t\t\t:to=\"{ name: 'Album', params: { id: track.album.id } }\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ track.album.title }}\r\n\t\t\t\t\t</router-link>\r\n\t\t\t\t\t<td class=\"table__cell table__cell--small table__cell--center\">\r\n\t\t\t\t\t\t{{ convertDuration(track.duration) }}\r\n\t\t\t\t\t</td>\r\n\t\t\t\t\t<td\r\n\t\t\t\t\t\tclass=\"table__cell--download table__cell--center clickable\"\r\n\t\t\t\t\t\t@click.stop=\"$emit('add-to-queue', $event)\"\r\n\t\t\t\t\t\t:data-link=\"track.link\"\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\taria-label=\"download\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"material-icons\" :title=\"$t('globals.download_hint')\"> get_app </i>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t</tr>\r\n\t\t\t</tbody>\r\n\t\t</table>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\n\r\nimport EventBus from '@/utils/EventBus'\r\nimport { convertDuration } from '@/utils/utils'\r\n\r\nexport default {\r\n\tprops: ['results'],\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t},\r\n\tmethods: {\r\n\t\tconvertDuration,\r\n\t\tplayPausePreview(e) {\r\n\t\t\tEventBus.$emit('trackPreview:playPausePreview', e)\r\n\t\t},\r\n\t\tpreviewMouseEnter(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseEnter', e)\r\n\t\t},\r\n\t\tpreviewMouseLeave(e) {\r\n\t\t\tEventBus.$emit('trackPreview:previewMouseLeave', e)\r\n\t\t}\r\n\t}\r\n}\r\n</script>","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\nimport ResultsAll from '@components/search/ResultsAll.vue'\r\nimport ResultsAlbums from '@components/search/ResultsAlbums.vue'\r\nimport ResultsArtists from '@components/search/ResultsArtists.vue'\r\nimport ResultsPlaylists from '@components/search/ResultsPlaylists.vue'\r\nimport ResultsTracks from '@components/search/ResultsTracks.vue'\r\n\r\nimport { socket } from '@/utils/socket'\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport { numberWithDots, convertDuration } from '@/utils/utils'\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nexport default {\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t},\r\n\tdata() {\r\n\t\tconst $t = this.$t.bind(this)\r\n\t\tconst $tc = this.$tc.bind(this)\r\n\r\n\t\treturn {\r\n\t\t\tcurrentTab: {\r\n\t\t\t\tname: '',\r\n\t\t\t\tcomponent: {}\r\n\t\t\t},\r\n\t\t\ttabs: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $t('globals.listTabs.all'),\r\n\t\t\t\t\tsearchType: 'all',\r\n\t\t\t\t\tcomponent: ResultsAll\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $tc('globals.listTabs.track', 2),\r\n\t\t\t\t\tsearchType: 'track',\r\n\t\t\t\t\tcomponent: ResultsTracks\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $tc('globals.listTabs.album', 2),\r\n\t\t\t\t\tsearchType: 'album',\r\n\t\t\t\t\tcomponent: ResultsAlbums\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $tc('globals.listTabs.artist', 2),\r\n\t\t\t\t\tsearchType: 'artist',\r\n\t\t\t\t\tcomponent: ResultsArtists\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $tc('globals.listTabs.playlist', 2),\r\n\t\t\t\t\tsearchType: 'playlist',\r\n\t\t\t\t\tcomponent: ResultsPlaylists\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tresults: {\r\n\t\t\t\tquery: '',\r\n\t\t\t\tallTab: {\r\n\t\t\t\t\tORDER: [],\r\n\t\t\t\t\tTOP_RESULT: [],\r\n\t\t\t\t\tALBUM: {},\r\n\t\t\t\t\tARTIST: {},\r\n\t\t\t\t\tTRACK: {},\r\n\t\t\t\t\tPLAYLIST: {}\r\n\t\t\t\t},\r\n\t\t\t\ttrackTab: {\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tnext: 0,\r\n\t\t\t\t\ttotal: 0,\r\n\t\t\t\t\tloaded: false\r\n\t\t\t\t},\r\n\t\t\t\talbumTab: {\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tnext: 0,\r\n\t\t\t\t\ttotal: 0,\r\n\t\t\t\t\tloaded: false\r\n\t\t\t\t},\r\n\t\t\t\tartistTab: {\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tnext: 0,\r\n\t\t\t\t\ttotal: 0,\r\n\t\t\t\t\tloaded: false\r\n\t\t\t\t},\r\n\t\t\t\tplaylistTab: {\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tnext: 0,\r\n\t\t\t\t\ttotal: 0,\r\n\t\t\t\t\tloaded: false\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tshowSearchTab() {\r\n\t\t\treturn this.results.query !== ''\r\n\t\t},\r\n\t\tloadedTabs() {\r\n\t\t\tconst loaded = []\r\n\r\n\t\t\tfor (const resultKey in this.results) {\r\n\t\t\t\tif (this.results.hasOwnProperty(resultKey)) {\r\n\t\t\t\t\tconst result = this.results[resultKey]\r\n\r\n\t\t\t\t\tif (result.loaded) {\r\n\t\t\t\t\t\tloaded.push(resultKey.replace(/Tab/g, ''))\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn loaded\r\n\t\t}\r\n\t},\r\n\tprops: {\r\n\t\tperformScrolledSearch: {\r\n\t\t\ttype: Boolean,\r\n\t\t\trequired: false\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\tthis.currentTab = this.tabs[0]\r\n\t},\r\n\tmounted() {\r\n\t\tEventBus.$on('mainSearch:checkLoadMoreContent', this.checkLoadMoreContent)\r\n\t\tthis.$root.$on('mainSearch:showNewResults', this.checkIfShowNewResults)\r\n\t\tthis.$root.$on('mainSearch:updateResults', this.checkIfUpdateResults)\r\n\r\n\t\tsocket.on('mainSearch', this.handleMainSearch)\r\n\t\tsocket.on('search', this.handleSearch)\r\n\t},\r\n\tmethods: {\r\n\t\tchangeSearchTab(sectionName) {\r\n\t\t\tsectionName = sectionName.toLowerCase()\r\n\r\n\t\t\tlet newTab = this.tabs.find(tab => {\r\n\t\t\t\treturn tab.searchType === sectionName\r\n\t\t\t})\r\n\r\n\t\t\tif (!newTab) {\r\n\t\t\t\tconsole.error(`No tab ${sectionName} found`)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\twindow.scrollTo(0, 0)\r\n\t\t\tthis.currentTab = newTab\r\n\t\t},\r\n\t\tcheckIfShowNewResults(term, mainSelected) {\r\n\t\t\tlet needToPerformNewSearch = term !== this.results.query /* || mainSelected == 'search_tab' */\r\n\r\n\t\t\tif (needToPerformNewSearch) {\r\n\t\t\t\tthis.showNewResults(term)\r\n\t\t\t}\r\n\t\t},\r\n\t\tcheckIfUpdateResults(term) {\r\n\t\t\tlet needToUpdateSearch = term === this.results.query && this.currentTab.searchType !== 'all'\r\n\r\n\t\t\tif (needToUpdateSearch) {\r\n\t\t\t\tlet resetObj = { data: [], next: 0, total: 0, loaded: false }\r\n\t\t\t\tthis.results[this.currentTab.searchType + 'Tab'] = { ...resetObj }\r\n\t\t\t\tthis.search(this.currentTab.searchType)\r\n\t\t\t}\r\n\t\t},\r\n\t\tshowNewResults(term) {\r\n\t\t\tsocket.emit('mainSearch', { term })\r\n\r\n\t\t\t// Showing loading placeholder\r\n\t\t\tthis.$root.$emit('updateSearchLoadingState', true)\r\n\t\t\tthis.currentTab = this.tabs[0]\r\n\t\t},\r\n\t\tcheckLoadMoreContent(searchSelected) {\r\n\t\t\tif (this.results[searchSelected.split('_')[0] + 'Tab'].data.length !== 0) return\r\n\r\n\t\t\tthis.search(searchSelected.split('_')[0])\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tnumberWithDots,\r\n\t\tconvertDuration,\r\n\t\tsearch(type) {\r\n\t\t\tsocket.emit('search', {\r\n\t\t\t\tterm: this.results.query,\r\n\t\t\t\ttype,\r\n\t\t\t\tstart: this.results[`${type}Tab`].next,\r\n\t\t\t\tnb: 30\r\n\t\t\t})\r\n\t\t},\r\n\t\tscrolledSearch() {\r\n\t\t\tif (this.currentTab.searchType === 'all') return\r\n\r\n\t\t\tlet currentTab = `${this.currentTab.searchType}Tab`\r\n\r\n\t\t\tif (this.results[currentTab].next < this.results[currentTab].total) {\r\n\t\t\t\tthis.search(this.currentTab.searchType)\r\n\t\t\t}\r\n\t\t},\r\n\t\thandleMainSearch(result) {\r\n\t\t\t// Hiding loading placeholder\r\n\t\t\tthis.$root.$emit('updateSearchLoadingState', false)\r\n\r\n\t\t\tlet resetObj = { data: [], next: 0, total: 0, loaded: false }\r\n\r\n\t\t\tthis.results.allTab = result\r\n\t\t\tthis.results.trackTab = { ...resetObj }\r\n\t\t\tthis.results.albumTab = { ...resetObj }\r\n\t\t\tthis.results.artistTab = { ...resetObj }\r\n\t\t\tthis.results.playlistTab = { ...resetObj }\r\n\t\t\tthis.results.query = result.QUERY\r\n\t\t},\r\n\t\thandleSearch(result) {\r\n\t\t\tconst { next: nextResult, total, type, data } = result\r\n\r\n\t\t\tlet currentTab = type + 'Tab'\r\n\t\t\tlet next = 0\r\n\r\n\t\t\tif (nextResult) {\r\n\t\t\t\tnext = parseInt(nextResult.match(/index=(\\d*)/)[1])\r\n\t\t\t} else {\r\n\t\t\t\tnext = total\r\n\t\t\t}\r\n\r\n\t\t\tif (this.results[currentTab].total != total) {\r\n\t\t\t\tthis.results[currentTab].total = total\r\n\t\t\t}\r\n\r\n\t\t\tif (this.results[currentTab].next != next) {\r\n\t\t\t\tthis.results[currentTab].next = next\r\n\t\t\t\tthis.results[currentTab].data = this.results[currentTab].data.concat(data)\r\n\t\t\t}\r\n\r\n\t\t\tthis.results[currentTab].loaded = true\r\n\t\t},\r\n\t\tisTabLoaded(tab) {\r\n\t\t\treturn this.loadedTabs.indexOf(tab.searchType) !== -1 || tab.searchType === 'all'\r\n\t\t}\r\n\t},\r\n\twatch: {\r\n\t\tperformScrolledSearch(needToSearch) {\r\n\t\t\tif (!needToSearch) return\r\n\r\n\t\t\tthis.scrolledSearch(needToSearch)\r\n\t\t},\r\n\t\tcurrentTab(newTab) {\r\n\t\t\tif (this.isTabLoaded(newTab)) return\r\n\r\n\t\t\tthis.search(newTab.searchType)\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"search_tab\" class=\"main_tabcontent\" ref=\"root\">\r\n\t\t<div v-show=\"!showSearchTab\">\r\n\t\t\t<h2>{{ $t('search.startSearching') }}</h2>\r\n\t\t\t<p>{{ $t('search.description') }}</p>\r\n\t\t</div>\r\n\r\n\t\t<div v-show=\"showSearchTab\">\r\n\t\t\t<ul class=\"section-tabs\">\r\n\t\t\t\t<li\r\n\t\t\t\t\tclass=\"section-tabs__tab\"\r\n\t\t\t\t\tv-for=\"tab in tabs\"\r\n\t\t\t\t\t:key=\"tab.name\"\r\n\t\t\t\t\t@click=\"currentTab = tab\"\r\n\t\t\t\t\t:class=\"{ active: currentTab.name === tab.name }\"\r\n\t\t\t\t>\r\n\t\t\t\t\t{{ tab.name }}\r\n\t\t\t\t</li>\r\n\t\t\t</ul>\r\n\r\n\t\t\t<keep-alive>\r\n\t\t\t\t<component\r\n\t\t\t\t\t:is=\"currentTab.component\"\r\n\t\t\t\t\t:results=\"results\"\r\n\t\t\t\t\t@add-to-queue=\"addToQueue\"\r\n\t\t\t\t\t@change-search-tab=\"changeSearchTab\"\r\n\t\t\t\t></component>\r\n\t\t\t</keep-alive>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script>\r\nimport BaseLoadingPlaceholder from '@components/globals/BaseLoadingPlaceholder.vue'\r\nimport ResultsAll from '@components/search/ResultsAll.vue'\r\nimport ResultsAlbums from '@components/search/ResultsAlbums.vue'\r\nimport ResultsArtists from '@components/search/ResultsArtists.vue'\r\nimport ResultsPlaylists from '@components/search/ResultsPlaylists.vue'\r\nimport ResultsTracks from '@components/search/ResultsTracks.vue'\r\n\r\nimport { socket } from '@/utils/socket'\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\nimport { numberWithDots, convertDuration } from '@/utils/utils'\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nexport default {\r\n\tcomponents: {\r\n\t\tBaseLoadingPlaceholder\r\n\t},\r\n\tdata() {\r\n\t\tconst $t = this.$t.bind(this)\r\n\t\tconst $tc = this.$tc.bind(this)\r\n\r\n\t\treturn {\r\n\t\t\tcurrentTab: {\r\n\t\t\t\tname: '',\r\n\t\t\t\tcomponent: {}\r\n\t\t\t},\r\n\t\t\ttabs: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $t('globals.listTabs.all'),\r\n\t\t\t\t\tsearchType: 'all',\r\n\t\t\t\t\tcomponent: ResultsAll\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $tc('globals.listTabs.track', 2),\r\n\t\t\t\t\tsearchType: 'track',\r\n\t\t\t\t\tcomponent: ResultsTracks\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $tc('globals.listTabs.album', 2),\r\n\t\t\t\t\tsearchType: 'album',\r\n\t\t\t\t\tcomponent: ResultsAlbums\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $tc('globals.listTabs.artist', 2),\r\n\t\t\t\t\tsearchType: 'artist',\r\n\t\t\t\t\tcomponent: ResultsArtists\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: $tc('globals.listTabs.playlist', 2),\r\n\t\t\t\t\tsearchType: 'playlist',\r\n\t\t\t\t\tcomponent: ResultsPlaylists\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tresults: {\r\n\t\t\t\tquery: '',\r\n\t\t\t\tallTab: {\r\n\t\t\t\t\tORDER: [],\r\n\t\t\t\t\tTOP_RESULT: [],\r\n\t\t\t\t\tALBUM: {},\r\n\t\t\t\t\tARTIST: {},\r\n\t\t\t\t\tTRACK: {},\r\n\t\t\t\t\tPLAYLIST: {}\r\n\t\t\t\t},\r\n\t\t\t\ttrackTab: {\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tnext: 0,\r\n\t\t\t\t\ttotal: 0,\r\n\t\t\t\t\tloaded: false\r\n\t\t\t\t},\r\n\t\t\t\talbumTab: {\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tnext: 0,\r\n\t\t\t\t\ttotal: 0,\r\n\t\t\t\t\tloaded: false\r\n\t\t\t\t},\r\n\t\t\t\tartistTab: {\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tnext: 0,\r\n\t\t\t\t\ttotal: 0,\r\n\t\t\t\t\tloaded: false\r\n\t\t\t\t},\r\n\t\t\t\tplaylistTab: {\r\n\t\t\t\t\tdata: [],\r\n\t\t\t\t\tnext: 0,\r\n\t\t\t\t\ttotal: 0,\r\n\t\t\t\t\tloaded: false\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\tshowSearchTab() {\r\n\t\t\treturn this.results.query !== ''\r\n\t\t},\r\n\t\tloadedTabs() {\r\n\t\t\tconst loaded = []\r\n\r\n\t\t\tfor (const resultKey in this.results) {\r\n\t\t\t\tif (this.results.hasOwnProperty(resultKey)) {\r\n\t\t\t\t\tconst result = this.results[resultKey]\r\n\r\n\t\t\t\t\tif (result.loaded) {\r\n\t\t\t\t\t\tloaded.push(resultKey.replace(/Tab/g, ''))\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn loaded\r\n\t\t}\r\n\t},\r\n\tprops: {\r\n\t\tperformScrolledSearch: {\r\n\t\t\ttype: Boolean,\r\n\t\t\trequired: false\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\tthis.currentTab = this.tabs[0]\r\n\t},\r\n\tmounted() {\r\n\t\tEventBus.$on('mainSearch:checkLoadMoreContent', this.checkLoadMoreContent)\r\n\t\tthis.$root.$on('mainSearch:showNewResults', this.checkIfShowNewResults)\r\n\t\tthis.$root.$on('mainSearch:updateResults', this.checkIfUpdateResults)\r\n\r\n\t\tsocket.on('mainSearch', this.handleMainSearch)\r\n\t\tsocket.on('search', this.handleSearch)\r\n\t},\r\n\tmethods: {\r\n\t\tchangeSearchTab(sectionName) {\r\n\t\t\tsectionName = sectionName.toLowerCase()\r\n\r\n\t\t\tlet newTab = this.tabs.find(tab => {\r\n\t\t\t\treturn tab.searchType === sectionName\r\n\t\t\t})\r\n\r\n\t\t\tif (!newTab) {\r\n\t\t\t\tconsole.error(`No tab ${sectionName} found`)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\twindow.scrollTo(0, 0)\r\n\t\t\tthis.currentTab = newTab\r\n\t\t},\r\n\t\tcheckIfShowNewResults(term, mainSelected) {\r\n\t\t\tlet needToPerformNewSearch = term !== this.results.query /* || mainSelected == 'search_tab' */\r\n\r\n\t\t\tif (needToPerformNewSearch) {\r\n\t\t\t\tthis.showNewResults(term)\r\n\t\t\t}\r\n\t\t},\r\n\t\tcheckIfUpdateResults(term) {\r\n\t\t\tlet needToUpdateSearch = term === this.results.query && this.currentTab.searchType !== 'all'\r\n\r\n\t\t\tif (needToUpdateSearch) {\r\n\t\t\t\tlet resetObj = { data: [], next: 0, total: 0, loaded: false }\r\n\t\t\t\tthis.results[this.currentTab.searchType + 'Tab'] = { ...resetObj }\r\n\t\t\t\tthis.search(this.currentTab.searchType)\r\n\t\t\t}\r\n\t\t},\r\n\t\tshowNewResults(term) {\r\n\t\t\tsocket.emit('mainSearch', { term })\r\n\r\n\t\t\t// Showing loading placeholder\r\n\t\t\tthis.$root.$emit('updateSearchLoadingState', true)\r\n\t\t\tthis.currentTab = this.tabs[0]\r\n\t\t},\r\n\t\tcheckLoadMoreContent(searchSelected) {\r\n\t\t\tif (this.results[searchSelected.split('_')[0] + 'Tab'].data.length !== 0) return\r\n\r\n\t\t\tthis.search(searchSelected.split('_')[0])\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\tsendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\tnumberWithDots,\r\n\t\tconvertDuration,\r\n\t\tsearch(type) {\r\n\t\t\tsocket.emit('search', {\r\n\t\t\t\tterm: this.results.query,\r\n\t\t\t\ttype,\r\n\t\t\t\tstart: this.results[`${type}Tab`].next,\r\n\t\t\t\tnb: 30\r\n\t\t\t})\r\n\t\t},\r\n\t\tscrolledSearch() {\r\n\t\t\tif (this.currentTab.searchType === 'all') return\r\n\r\n\t\t\tlet currentTab = `${this.currentTab.searchType}Tab`\r\n\r\n\t\t\tif (this.results[currentTab].next < this.results[currentTab].total) {\r\n\t\t\t\tthis.search(this.currentTab.searchType)\r\n\t\t\t}\r\n\t\t},\r\n\t\thandleMainSearch(result) {\r\n\t\t\t// Hiding loading placeholder\r\n\t\t\tthis.$root.$emit('updateSearchLoadingState', false)\r\n\r\n\t\t\tlet resetObj = { data: [], next: 0, total: 0, loaded: false }\r\n\r\n\t\t\tthis.results.allTab = result\r\n\t\t\tthis.results.trackTab = { ...resetObj }\r\n\t\t\tthis.results.albumTab = { ...resetObj }\r\n\t\t\tthis.results.artistTab = { ...resetObj }\r\n\t\t\tthis.results.playlistTab = { ...resetObj }\r\n\t\t\tthis.results.query = result.QUERY\r\n\t\t},\r\n\t\thandleSearch(result) {\r\n\t\t\tconst { next: nextResult, total, type, data } = result\r\n\r\n\t\t\tlet currentTab = type + 'Tab'\r\n\t\t\tlet next = 0\r\n\r\n\t\t\tif (nextResult) {\r\n\t\t\t\tnext = parseInt(nextResult.match(/index=(\\d*)/)[1])\r\n\t\t\t} else {\r\n\t\t\t\tnext = total\r\n\t\t\t}\r\n\r\n\t\t\tif (this.results[currentTab].total != total) {\r\n\t\t\t\tthis.results[currentTab].total = total\r\n\t\t\t}\r\n\r\n\t\t\tif (this.results[currentTab].next != next) {\r\n\t\t\t\tthis.results[currentTab].next = next\r\n\t\t\t\tthis.results[currentTab].data = this.results[currentTab].data.concat(data)\r\n\t\t\t}\r\n\r\n\t\t\tthis.results[currentTab].loaded = true\r\n\t\t},\r\n\t\tisTabLoaded(tab) {\r\n\t\t\treturn this.loadedTabs.indexOf(tab.searchType) !== -1 || tab.searchType === 'all'\r\n\t\t}\r\n\t},\r\n\twatch: {\r\n\t\tperformScrolledSearch(needToSearch) {\r\n\t\t\tif (!needToSearch) return\r\n\r\n\t\t\tthis.scrolledSearch(needToSearch)\r\n\t\t},\r\n\t\tcurrentTab(newTab) {\r\n\t\t\tif (this.isTabLoaded(newTab)) return\r\n\r\n\t\t\tthis.search(newTab.searchType)\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n<style>\r\n</style>\r\n","import { socket } from '@/utils/socket'\r\n\r\nlet settingsData = {}\r\nlet defaultSettingsData = {}\r\nlet spotifyCredentials = {}\r\n\r\nlet cached = false\r\n\r\nexport function getSettingsData() {\r\n\tif (cached) {\r\n\t\treturn { settingsData, defaultSettingsData, spotifyCredentials }\r\n\t} else {\r\n\t\tsocket.emit('get_settings_data')\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tsocket.on('init_settings', (settings, credentials, defaults) => {\r\n\t\t\t\tsettingsData = settings\r\n\t\t\t\tdefaultSettingsData = defaults\r\n\t\t\t\tspotifyCredentials = credentials\r\n\t\t\t\t// cached = true\r\n\r\n\t\t\t\tsocket.off('init_settings')\r\n\t\t\t\tresolve({ settingsData, defaultSettingsData, spotifyCredentials })\r\n\t\t\t})\r\n\t\t})\r\n\t}\r\n}\r\n","import it from 'svg-country-flags/svg/it.svg'\r\nimport gb from 'svg-country-flags/svg/gb.svg'\r\nimport es from 'flag-icon-css/flags/4x3/es.svg'\r\nimport de from 'svg-country-flags/svg/de.svg'\r\nimport fr from 'svg-country-flags/svg/fr.svg'\r\nimport id from 'svg-country-flags/svg/id.svg'\r\nimport pt from 'flag-icon-css/flags/4x3/pt.svg'\r\nimport br from 'svg-country-flags/svg/br.svg'\r\nimport ru from 'svg-country-flags/svg/ru.svg'\r\nimport tr from 'svg-country-flags/svg/tr.svg'\r\nimport vn from 'svg-country-flags/svg/vn.svg'\r\nimport hr from 'flag-icon-css/flags/4x3/hr.svg'\r\nimport ar from '@/assets/ar.svg'\r\nimport ko from 'flag-icon-css/flags/4x3/kr.svg'\r\nimport ph from 'flag-icon-css/flags/4x3/ph.svg'\r\nimport tw from 'flag-icon-css/flags/4x3/tw.svg'\r\n\r\nexport const flags = {\r\n\tit,\r\n\ten: gb,\r\n\tes,\r\n\tde,\r\n\tfr,\r\n\tid,\r\n\tpt,\r\n\tpt_br: br,\r\n\tru,\r\n\ttr,\r\n\tvn,\r\n\thr,\r\n\tar,\r\n\tko,\r\n\tph,\r\n\tzh_tw: tw\r\n}\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { mapActions, mapGetters } from 'vuex'\r\n\r\nimport { getSettingsData } from '@/data/settings'\r\n\r\nimport { toast } from '@/utils/toasts'\r\nimport { socket } from '@/utils/socket'\r\nimport { flags } from '@/utils/flags'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tflags,\r\n\t\t\tcurrentLocale: this.$i18n.locale,\r\n\t\t\tlocales: this.$i18n.availableLocales,\r\n\t\t\tsettings: {\r\n\t\t\t\ttags: {}\r\n\t\t\t},\r\n\t\t\tlastSettings: {},\r\n\t\t\tspotifyFeatures: {},\r\n\t\t\tlastCredentials: {},\r\n\t\t\tdefaultSettings: {},\r\n\t\t\tlastUser: '',\r\n\t\t\tspotifyUser: '',\r\n\t\t\tslimDownloads: false,\r\n\t\t\tpreviewVolume: window.vol,\r\n\t\t\taccountNum: 0,\r\n\t\t\taccounts: []\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters({\r\n\t\t\tarl: 'getARL',\r\n\t\t\tuser: 'getUser',\r\n\t\t\tisLoggedIn: 'isLoggedIn',\r\n\t\t\tclientMode: 'getClientMode'\r\n\t\t}),\r\n\t\tneedToWait() {\r\n\t\t\treturn Object.keys(this.getSettings).length === 0\r\n\t\t},\r\n\t\tchangeSlimDownloads: {\r\n\t\t\tget() {\r\n\t\t\t\treturn this.slimDownloads\r\n\t\t\t},\r\n\t\t\tset(wantSlimDownloads) {\r\n\t\t\t\tthis.slimDownloads = wantSlimDownloads\r\n\t\t\t\tdocument.getElementById('download_list').classList.toggle('slim', wantSlimDownloads)\r\n\t\t\t\tlocalStorage.setItem('slimDownloads', wantSlimDownloads)\r\n\t\t\t}\r\n\t\t},\r\n\t\tpictureHref() {\r\n\t\t\t// Default image: https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg\r\n\t\t\treturn `https://e-cdns-images.dzcdn.net/images/user/${this.user.picture}/125x125-000000-80-0-0.jpg`\r\n\t\t}\r\n\t},\r\n\tasync mounted() {\r\n\t\tconst { settingsData, defaultSettingsData, spotifyCredentials } = await getSettingsData()\r\n\r\n\t\tthis.defaultSettings = defaultSettingsData\r\n\t\tthis.initSettings(settingsData, spotifyCredentials)\r\n\r\n\t\tlet storedAccountNum = localStorage.getItem('accountNum')\r\n\r\n\t\tif (storedAccountNum) {\r\n\t\t\tthis.accountNum = storedAccountNum\r\n\t\t}\r\n\r\n\t\tlet spotifyUser = localStorage.getItem('spotifyUser')\r\n\r\n\t\tif (spotifyUser) {\r\n\t\t\tthis.lastUser = spotifyUser\r\n\t\t\tthis.spotifyUser = spotifyUser\r\n\t\t\tsocket.emit('update_userSpotifyPlaylists', spotifyUser)\r\n\t\t}\r\n\r\n\t\tthis.changeSlimDownloads = 'true' === localStorage.getItem('slimDownloads')\r\n\r\n\t\tlet volume = parseInt(localStorage.getItem('previewVolume'))\r\n\r\n\t\tif (isNaN(volume)) {\r\n\t\t\tvolume = 80\r\n\t\t\tlocalStorage.setItem('previewVolume', volume)\r\n\t\t}\r\n\r\n\t\twindow.vol.preview_max_volume = volume\r\n\r\n\t\tsocket.on('updateSettings', this.updateSettings)\r\n\t\tsocket.on('accountChanged', this.accountChanged)\r\n\t\tsocket.on('familyAccounts', this.initAccounts)\r\n\t\tsocket.on('downloadFolderSelected', this.downloadFolderSelected)\r\n\t\tsocket.on('applogin_arl', this.loggedInViaDeezer)\r\n\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tsocket.off('updateSettings')\r\n\t\t\tsocket.off('accountChanged')\r\n\t\t\tsocket.off('familyAccounts')\r\n\t\t\tsocket.off('downloadFolderSelected')\r\n\t\t\tsocket.off('applogin_arl')\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions({\r\n\t\t\tdispatchARL: 'setARL'\r\n\t\t}),\r\n\t\trevertSettings() {\r\n\t\t\tthis.settings = JSON.parse(JSON.stringify(this.lastSettings))\r\n\t\t},\r\n\t\trevertCredentials() {\r\n\t\t\tthis.spotifyCredentials = JSON.parse(JSON.stringify(this.lastCredentials))\r\n\t\t\tthis.spotifyUser = (' ' + this.lastUser).slice(1)\r\n\t\t},\r\n\t\tcopyARLtoClipboard() {\r\n\t\t\tlet copyText = this.$refs.loginInput\r\n\r\n\t\t\tcopyText.setAttribute('type', 'text')\r\n\t\t\tcopyText.select()\r\n\t\t\tcopyText.setSelectionRange(0, 99999)\r\n\t\t\tdocument.execCommand('copy')\r\n\t\t\tcopyText.setAttribute('type', 'password')\r\n\r\n\t\t\ttoast(this.$t('settings.toasts.ARLcopied'), 'assignment')\r\n\t\t},\r\n\t\tchangeLocale(newLocale) {\r\n\t\t\tthis.$i18n.locale = newLocale\r\n\t\t\tthis.currentLocale = newLocale\r\n\t\t\tlocalStorage.setItem('locale', newLocale)\r\n\t\t},\r\n\t\tupdateMaxVolume() {\r\n\t\t\tlocalStorage.setItem('previewVolume', this.previewVolume.preview_max_volume)\r\n\t\t},\r\n\t\tsaveSettings() {\r\n\t\t\tthis.lastSettings = JSON.parse(JSON.stringify(this.settings))\r\n\t\t\tthis.lastCredentials = JSON.parse(JSON.stringify(this.spotifyFeatures))\r\n\r\n\t\t\tlet changed = false\r\n\r\n\t\t\tif (this.lastUser != this.spotifyUser) {\r\n\t\t\t\t// force cloning without linking\r\n\t\t\t\tthis.lastUser = (' ' + this.spotifyUser).slice(1)\r\n\t\t\t\tlocalStorage.setItem('spotifyUser', this.lastUser)\r\n\t\t\t\tchanged = true\r\n\t\t\t}\r\n\r\n\t\t\tsocket.emit('saveSettings', this.lastSettings, this.lastCredentials, changed ? this.lastUser : false)\r\n\t\t},\r\n\t\tselectDownloadFolder() {\r\n\t\t\tsocket.emit('selectDownloadFolder')\r\n\t\t},\r\n\t\tdownloadFolderSelected(folder) {\r\n\t\t\tthis.$set(this.settings, 'downloadLocation', folder)\r\n\t\t},\r\n\t\tloadSettings(data) {\r\n\t\t\tthis.lastSettings = JSON.parse(JSON.stringify(data))\r\n\t\t\tthis.settings = JSON.parse(JSON.stringify(data))\r\n\t\t},\r\n\t\tloadCredentials(credentials) {\r\n\t\t\tthis.lastCredentials = JSON.parse(JSON.stringify(credentials))\r\n\t\t\tthis.spotifyFeatures = JSON.parse(JSON.stringify(credentials))\r\n\t\t},\r\n\t\tloggedInViaDeezer(arl) {\r\n\t\t\tthis.dispatchARL({ arl })\r\n\t\t\tsocket.emit('login', arl, true, this.accountNum)\r\n\t\t\t// this.login()\r\n\t\t},\r\n\t\tlogin() {\r\n\t\t\tlet newArl = this.$refs.loginInput.value.trim()\r\n\r\n\t\t\tif (newArl && newArl !== this.arl) {\r\n\t\t\t\tsocket.emit('login', newArl, true, this.accountNum)\r\n\t\t\t}\r\n\t\t},\r\n\t\tappLogin(e) {\r\n\t\t\tsocket.emit('applogin')\r\n\t\t},\r\n\t\tchangeAccount() {\r\n\t\t\tsocket.emit('changeAccount', this.accountNum)\r\n\t\t},\r\n\t\taccountChanged(user, accountNum) {\r\n\t\t\tthis.$refs.username.innerText = user.name\r\n\t\t\tthis.$refs.userpicture.src = `https://e-cdns-images.dzcdn.net/images/user/${user.picture}/125x125-000000-80-0-0.jpg`\r\n\t\t\tthis.accountNum = accountNum\r\n\r\n\t\t\tlocalStorage.setItem('accountNum', this.accountNum)\r\n\t\t},\r\n\t\tinitAccounts(accounts) {\r\n\t\t\tthis.accounts = accounts\r\n\t\t},\r\n\t\tlogout() {\r\n\t\t\tsocket.emit('logout')\r\n\t\t},\r\n\t\tinitSettings(settings, credentials) {\r\n\t\t\t// this.loadDefaultSettings()\r\n\t\t\tthis.loadSettings(settings)\r\n\t\t\tthis.loadCredentials(credentials)\r\n\r\n\t\t\ttoast(this.$t('settings.toasts.init'), 'settings')\r\n\t\t},\r\n\t\tupdateSettings(newSettings, newCredentials) {\r\n\t\t\tthis.loadSettings(newSettings)\r\n\t\t\tthis.loadCredentials(newCredentials)\r\n\r\n\t\t\ttoast(this.$t('settings.toasts.update'), 'settings')\r\n\t\t},\r\n\t\tresetSettings() {\r\n\t\t\tthis.settings = JSON.parse(JSON.stringify(this.defaultSettings))\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div id=\"settings_tab\" class=\"main_tabcontent fixed_footer\" ref=\"root\">\r\n\t\t<h2 class=\"page_heading\">{{ $t('settings.title') }}</h2>\r\n\r\n\t\t<div id=\"logged_in_info\" v-if=\"isLoggedIn\" ref=\"loggedInInfo\">\r\n\t\t\t<img id=\"settings_picture\" :src=\"pictureHref\" alt=\"Profile Picture\" ref=\"userpicture\" class=\"circle\" />\r\n\r\n\t\t\t<i18n path=\"settings.login.loggedIn\" tag=\"p\">\r\n\t\t\t\t<strong place=\"username\" id=\"settings_username\" ref=\"username\">{{ user.name || 'not logged' }}</strong>\r\n\t\t\t</i18n>\r\n\r\n\t\t\t<button id=\"settings_btn_logout\" @click=\"logout\">{{ $t('settings.login.logout') }}</button>\r\n\r\n\t\t\t<select v-if=\"accounts.length\" id=\"family_account\" v-model=\"accountNum\" @change=\"changeAccount\">\r\n\t\t\t\t<option v-for=\"(account, i) in accounts\" :key=\"account\" :value=\"i.toString()\">{{ account.BLOG_NAME }}</option>\r\n\t\t\t</select>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">person</i>{{ $t('settings.login.title') }}\r\n\t\t\t</h3>\r\n\t\t\t<div class=\"inline-flex\">\r\n\t\t\t\t<input\r\n\t\t\t\t\tautocomplete=\"off\"\r\n\t\t\t\t\ttype=\"password\"\r\n\t\t\t\t\t:value=\"arl\"\r\n\t\t\t\t\tid=\"login_input_arl\"\r\n\t\t\t\t\tref=\"loginInput\"\r\n\t\t\t\t\tplaceholder=\"ARL\"\r\n\t\t\t\t/>\r\n\t\t\t\t<button id=\"settings_btn_copyArl\" class=\"only_icon\" @click=\"copyARLtoClipboard\">\r\n\t\t\t\t\t<i class=\"material-icons\">assignment</i>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t\t<a href=\"https://codeberg.org/RemixDev/deemix/wiki/Getting-your-own-ARL\" target=\"_blank\">\r\n\t\t\t\t{{ $t('settings.login.arl.question') }}\r\n\t\t\t</a>\r\n\t\t\t<a id=\"settings_btn_applogin\" v-if=\"clientMode\" href=\"#\" @click=\"appLogin\">\r\n\t\t\t\t{{ $t('settings.login.login') }}\r\n\t\t\t</a>\r\n\t\t\t<button id=\"settings_btn_updateArl\" @click=\"login\" style=\"width: 100%\">\r\n\t\t\t\t{{ $t('settings.login.arl.update') }}\r\n\t\t\t</button>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">language</i>{{ $t('settings.languages') }}\r\n\t\t\t</h3>\r\n\t\t\t<div>\r\n\t\t\t\t<span\r\n\t\t\t\t\tv-for=\"locale in locales\"\r\n\t\t\t\t\t:key=\"locale\"\r\n\t\t\t\t\tclass=\"locale-flag\"\r\n\t\t\t\t\t:class=\"{ 'locale-flag--current': currentLocale === locale }\"\r\n\t\t\t\t\t@click=\"changeLocale(locale)\"\r\n\t\t\t\t\tv-html=\"flags[locale]\"\r\n\t\t\t\t\t:title=\"locale\"\r\n\t\t\t\t>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">web</i>{{ $t('settings.appearance.title') }}\r\n\t\t\t</h3>\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"changeSlimDownloads\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.appearance.slimDownloadTab') }}</span>\r\n\t\t\t</label>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">folder</i>{{ $t('settings.downloadPath.title') }}\r\n\t\t\t</h3>\r\n\t\t\t<div class=\"inline-flex\">\r\n\t\t\t\t<input autocomplete=\"off\" type=\"text\" v-model=\"settings.downloadLocation\" />\r\n\t\t\t\t<button id=\"select_downloads_folder\" v-if=\"clientMode\" class=\"only_icon\" @click=\"selectDownloadFolder\">\r\n\t\t\t\t\t<i class=\"material-icons\">folder</i>\r\n\t\t\t\t</button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">font_download</i>{{ $t('settings.templates.title') }}\r\n\t\t\t</h3>\r\n\r\n\t\t\t<p>{{ $t('settings.templates.tracknameTemplate') }}</p>\r\n\t\t\t<input type=\"text\" v-model=\"settings.tracknameTemplate\" />\r\n\r\n\t\t\t<p>{{ $t('settings.templates.albumTracknameTemplate') }}</p>\r\n\t\t\t<input type=\"text\" v-model=\"settings.albumTracknameTemplate\" />\r\n\r\n\t\t\t<p>{{ $t('settings.templates.playlistTracknameTemplate') }}</p>\r\n\t\t\t<input type=\"text\" v-model=\"settings.playlistTracknameTemplate\" />\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">create_new_folder</i>{{ $t('settings.folders.title') }}\r\n\t\t\t</h3>\r\n\t\t\t<div class=\"settings-container\">\r\n\t\t\t\t<div class=\"settings-container__third\">\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.createPlaylistFolder\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.folders.createPlaylistFolder') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<div class=\"input_group\" v-if=\"settings.createPlaylistFolder\">\r\n\t\t\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.folders.playlistNameTemplate') }}</p>\r\n\t\t\t\t\t\t<input type=\"text\" v-model=\"settings.playlistNameTemplate\" />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"settings-container__third\">\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.createArtistFolder\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.folders.createArtistFolder') }}</span>\r\n\t\t\t\t\t</label>\r\n\r\n\t\t\t\t\t<div class=\"input_group\" v-if=\"settings.createArtistFolder\">\r\n\t\t\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.folders.artistNameTemplate') }}</p>\r\n\t\t\t\t\t\t<input type=\"text\" v-model=\"settings.artistNameTemplate\" />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"settings-container__third\">\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.createAlbumFolder\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.folders.createAlbumFolder') }}</span>\r\n\t\t\t\t\t</label>\r\n\r\n\t\t\t\t\t<div class=\"input_group\" v-if=\"settings.createAlbumFolder\">\r\n\t\t\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.folders.albumNameTemplate') }}</p>\r\n\t\t\t\t\t\t<input type=\"text\" v-model=\"settings.albumNameTemplate\" />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.createCDFolder\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.folders.createCDFolder') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.createStructurePlaylist\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.folders.createStructurePlaylist') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.createSingleFolder\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.folders.createSingleFolder') }}</span>\r\n\t\t\t</label>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">title</i>{{ $t('settings.trackTitles.title') }}\r\n\t\t\t</h3>\r\n\r\n\t\t\t<div class=\"settings-container\">\r\n\t\t\t\t<div class=\"settings-container__third settings-container__third--only-checkbox\">\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.padTracks\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.trackTitles.padTracks') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"settings-container__third\">\r\n\t\t\t\t\t<div class=\"input_group\">\r\n\t\t\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.trackTitles.paddingSize') }}</p>\r\n\t\t\t\t\t\t<input max=\"10\" type=\"number\" v-model=\"settings.paddingSize\" />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"settings-container__third\">\r\n\t\t\t\t\t<div class=\"input_group\">\r\n\t\t\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.trackTitles.illegalCharacterReplacer') }}</p>\r\n\t\t\t\t\t\t<input type=\"text\" v-model=\"settings.illegalCharacterReplacer\" />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">get_app</i>{{ $t('settings.downloads.title') }}\r\n\t\t\t</h3>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.downloads.queueConcurrency') }}</p>\r\n\t\t\t\t<input type=\"number\" min=\"1\" v-model.number=\"settings.queueConcurrency\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.downloads.maxBitrate.title') }}</p>\r\n\t\t\t\t<select v-model=\"settings.maxBitrate\">\r\n\t\t\t\t\t<option value=\"9\">{{ $t('settings.downloads.maxBitrate.9') }}</option>\r\n\t\t\t\t\t<option value=\"3\">{{ $t('settings.downloads.maxBitrate.3') }}</option>\r\n\t\t\t\t\t<option value=\"1\">{{ $t('settings.downloads.maxBitrate.1') }}</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.downloads.overwriteFile.title') }}</p>\r\n\t\t\t\t<select v-model=\"settings.overwriteFile\">\r\n\t\t\t\t\t<option value=\"y\">{{ $t('settings.downloads.overwriteFile.y') }}</option>\r\n\t\t\t\t\t<option value=\"n\">{{ $t('settings.downloads.overwriteFile.n') }}</option>\r\n\t\t\t\t\t<option value=\"e\">{{ $t('settings.downloads.overwriteFile.e') }}</option>\r\n\t\t\t\t\t<option value=\"b\">{{ $t('settings.downloads.overwriteFile.b') }}</option>\r\n\t\t\t\t\t<option value=\"t\">{{ $t('settings.downloads.overwriteFile.t') }}</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"settings-container\">\r\n\t\t\t\t<div class=\"settings-container__third settings-container__third--only-checkbox\">\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.fallbackBitrate\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.downloads.fallbackBitrate') }}</span>\r\n\t\t\t\t\t</label>\r\n\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.fallbackSearch\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.downloads.fallbackSearch') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"settings-container__third settings-container__third--only-checkbox\">\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.logErrors\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.downloads.logErrors') }}</span>\r\n\t\t\t\t\t</label>\r\n\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.logSearched\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.downloads.logSearched') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"settings-container__third settings-container__third--only-checkbox\">\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.syncedLyrics\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.downloads.syncedLyrics') }}</span>\r\n\t\t\t\t\t</label>\r\n\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.createM3U8File\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.downloads.createM3U8File') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\" v-if=\"settings.createM3U8File\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.downloads.playlistFilenameTemplate') }}</p>\r\n\t\t\t\t<input type=\"text\" v-model=\"settings.playlistFilenameTemplate\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.saveDownloadQueue\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.downloads.saveDownloadQueue') }}</span>\r\n\t\t\t</label>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">album</i>{{ $t('settings.covers.title') }}\r\n\t\t\t</h3>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.saveArtwork\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.covers.saveArtwork') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<div class=\"input_group\" v-if=\"settings.saveArtwork\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.covers.coverImageTemplate') }}</p>\r\n\t\t\t\t<input type=\"text\" v-model=\"settings.coverImageTemplate\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.saveArtworkArtist\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.covers.saveArtworkArtist') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<div class=\"input_group\" v-if=\"settings.saveArtworkArtist\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.covers.artistImageTemplate') }}</p>\r\n\t\t\t\t<input type=\"text\" v-model=\"settings.artistImageTemplate\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.covers.localArtworkSize') }}</p>\r\n\t\t\t\t<input type=\"number\" min=\"100\" max=\"10000\" step=\"100\" v-model.number=\"settings.localArtworkSize\" />\r\n\t\t\t\t<p v-if=\"settings.localArtworkSize > 1200\" class=\"input_group_text\" style=\"opacity: 0.75; color: #ffcc22\">\r\n\t\t\t\t\t⚠ {{ $t('settings.covers.imageSizeWarning') }}\r\n\t\t\t\t</p>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.covers.embeddedArtworkSize') }}</p>\r\n\t\t\t\t<input type=\"number\" min=\"100\" max=\"10000\" step=\"100\" v-model.number=\"settings.embeddedArtworkSize\" />\r\n\t\t\t\t<p v-if=\"settings.embeddedArtworkSize > 1200\" class=\"input_group_text\" style=\"opacity: 0.75; color: #ffcc22\">\r\n\t\t\t\t\t⚠ {{ $t('settings.covers.imageSizeWarning') }}\r\n\t\t\t\t</p>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.covers.localArtworkFormat.title') }}</p>\r\n\t\t\t\t<select v-model=\"settings.localArtworkFormat\">\r\n\t\t\t\t\t<option value=\"jpg\">{{ $t('settings.covers.localArtworkFormat.jpg') }}</option>\r\n\t\t\t\t\t<option value=\"png\">{{ $t('settings.covers.localArtworkFormat.png') }}</option>\r\n\t\t\t\t\t<option value=\"jpg,png\">{{ $t('settings.covers.localArtworkFormat.both') }}</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.embeddedArtworkPNG\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.covers.embeddedArtworkPNG') }}</span>\r\n\t\t\t</label>\r\n\t\t\t<p v-if=\"settings.embeddedArtworkPNG\" style=\"opacity: 0.75; color: #ffcc22\">\r\n\t\t\t\t⚠ {{ $t('settings.covers.embeddedPNGWarning') }}\r\n\t\t\t</p>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.coverDescriptionUTF8\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.covers.coverDescriptionUTF8') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.covers.jpegImageQuality') }}</p>\r\n\t\t\t\t<input type=\"number\" min=\"1\" max=\"100\" v-model.number=\"settings.jpegImageQuality\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\" style=\"width: 1em; height: 1em\">bookmarks</i>{{ $t('settings.tags.head') }}\r\n\t\t\t</h3>\r\n\r\n\t\t\t<div class=\"settings-container\">\r\n\t\t\t\t<div class=\"settings-container__half\">\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.title\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.title') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.artist\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.artist') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.album\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.album') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.cover\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.cover') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.trackNumber\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.trackNumber') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.trackTotal\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.trackTotal') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.discNumber\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.discNumber') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.discTotal\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.discTotal') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.albumArtist\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.albumArtist') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.genre\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.genre') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.year\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.year') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.date\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.date') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"settings-container__half\">\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.explicit\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.explicit') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.isrc\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.isrc') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.length\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.length') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.barcode\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.barcode') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.bpm\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.bpm') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.replayGain\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.replayGain') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.label\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.label') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.lyrics\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.lyrics') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.syncedLyrics\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.syncedLyrics') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.copyright\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.copyright') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.composer\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.composer') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.involvedPeople\" />\r\n\t\t\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.tags.involvedPeople') }}</span>\r\n\t\t\t\t\t</label>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<i class=\"material-icons\">list</i>{{ $t('settings.other.title') }}\r\n\t\t\t</h3>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.savePlaylistAsCompilation\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.other.savePlaylistAsCompilation') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.useNullSeparator\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.other.useNullSeparator') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.saveID3v1\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.other.saveID3v1') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.other.multiArtistSeparator.title') }}</p>\r\n\t\t\t\t<select v-model=\"settings.tags.multiArtistSeparator\">\r\n\t\t\t\t\t<option value=\"nothing\">{{ $t('settings.other.multiArtistSeparator.nothing') }}</option>\r\n\t\t\t\t\t<option value=\"default\">{{ $t('settings.other.multiArtistSeparator.default') }}</option>\r\n\t\t\t\t\t<option value=\"andFeat\">{{ $t('settings.other.multiArtistSeparator.andFeat') }}</option>\r\n\t\t\t\t\t<option value=\" & \">{{ $t('settings.other.multiArtistSeparator.using', { separator: ' & ' }) }}</option>\r\n\t\t\t\t\t<option value=\",\">{{ $t('settings.other.multiArtistSeparator.using', { separator: ',' }) }}</option>\r\n\t\t\t\t\t<option value=\", \">{{ $t('settings.other.multiArtistSeparator.using', { separator: ', ' }) }}</option>\r\n\t\t\t\t\t<option value=\"/\">{{ $t('settings.other.multiArtistSeparator.using', { separator: '/' }) }}</option>\r\n\t\t\t\t\t<option value=\" / \">{{ $t('settings.other.multiArtistSeparator.using', { separator: ' / ' }) }}</option>\r\n\t\t\t\t\t<option value=\";\">{{ $t('settings.other.multiArtistSeparator.using', { separator: ';' }) }}</option>\r\n\t\t\t\t\t<option value=\"; \">{{ $t('settings.other.multiArtistSeparator.using', { separator: '; ' }) }}</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.tags.singleAlbumArtist\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.other.singleAlbumArtist') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.albumVariousArtists\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.other.albumVariousArtists') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.removeAlbumVersion\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.other.removeAlbumVersion') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<label class=\"with_checkbox\">\r\n\t\t\t\t<input type=\"checkbox\" v-model=\"settings.removeDuplicateArtists\" />\r\n\t\t\t\t<span class=\"checkbox_text\">{{ $t('settings.other.removeDuplicateArtists') }}</span>\r\n\t\t\t</label>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.other.dateFormat.title') }}</p>\r\n\t\t\t\t<select v-model=\"settings.dateFormat\">\r\n\t\t\t\t\t<option value=\"Y-M-D\">\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t`${$t('settings.other.dateFormat.year')}-${$t('settings.other.dateFormat.month')}-${$t(\r\n\t\t\t\t\t\t\t\t'settings.other.dateFormat.day'\r\n\t\t\t\t\t\t\t)}`\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</option>\r\n\t\t\t\t\t<option value=\"Y-D-M\">\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t`${$t('settings.other.dateFormat.year')}-${$t('settings.other.dateFormat.day')}-${$t(\r\n\t\t\t\t\t\t\t\t'settings.other.dateFormat.month'\r\n\t\t\t\t\t\t\t)}`\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</option>\r\n\t\t\t\t\t<option value=\"D-M-Y\">\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t`${$t('settings.other.dateFormat.day')}-${$t('settings.other.dateFormat.month')}-${$t(\r\n\t\t\t\t\t\t\t\t'settings.other.dateFormat.year'\r\n\t\t\t\t\t\t\t)}`\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</option>\r\n\t\t\t\t\t<option value=\"M-D-Y\">\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t`${$t('settings.other.dateFormat.month')}-${$t('settings.other.dateFormat.day')}-${$t(\r\n\t\t\t\t\t\t\t\t'settings.other.dateFormat.year'\r\n\t\t\t\t\t\t\t)}`\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</option>\r\n\t\t\t\t\t<option value=\"Y\">{{ $t('settings.other.dateFormat.year') }}</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.other.featuredToTitle.title') }}</p>\r\n\t\t\t\t<select v-model=\"settings.featuredToTitle\">\r\n\t\t\t\t\t<option value=\"0\">{{ $t('settings.other.featuredToTitle.0') }}</option>\r\n\t\t\t\t\t<option value=\"1\">{{ $t('settings.other.featuredToTitle.1') }}</option>\r\n\t\t\t\t\t<option value=\"3\">{{ $t('settings.other.featuredToTitle.3') }}</option>\r\n\t\t\t\t\t<option value=\"2\">{{ $t('settings.other.featuredToTitle.2') }}</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.other.titleCasing') }}</p>\r\n\t\t\t\t<select v-model=\"settings.titleCasing\">\r\n\t\t\t\t\t<option value=\"nothing\">{{ $t('settings.other.casing.nothing') }}</option>\r\n\t\t\t\t\t<option value=\"lower\">{{ $t('settings.other.casing.lower') }}</option>\r\n\t\t\t\t\t<option value=\"upper\">{{ $t('settings.other.casing.upper') }}</option>\r\n\t\t\t\t\t<option value=\"start\">{{ $t('settings.other.casing.start') }}</option>\r\n\t\t\t\t\t<option value=\"sentence\">{{ $t('settings.other.casing.sentence') }}</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.other.artistCasing') }}</p>\r\n\t\t\t\t<select v-model=\"settings.artistCasing\">\r\n\t\t\t\t\t<option value=\"nothing\">{{ $t('settings.other.casing.nothing') }}</option>\r\n\t\t\t\t\t<option value=\"lower\">{{ $t('settings.other.casing.lower') }}</option>\r\n\t\t\t\t\t<option value=\"upper\">{{ $t('settings.other.casing.upper') }}</option>\r\n\t\t\t\t\t<option value=\"start\">{{ $t('settings.other.casing.start') }}</option>\r\n\t\t\t\t\t<option value=\"sentence\">{{ $t('settings.other.casing.sentence') }}</option>\r\n\t\t\t\t</select>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.other.previewVolume') }}</p>\r\n\t\t\t\t<input\r\n\t\t\t\t\ttype=\"range\"\r\n\t\t\t\t\t@change=\"updateMaxVolume\"\r\n\t\t\t\t\tmin=\"0\"\r\n\t\t\t\t\tmax=\"100\"\r\n\t\t\t\t\tstep=\"1\"\r\n\t\t\t\t\tclass=\"slider\"\r\n\t\t\t\t\tv-model.number=\"previewVolume.preview_max_volume\"\r\n\t\t\t\t/>\r\n\t\t\t\t<span>{{ previewVolume.preview_max_volume }}%</span>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.other.executeCommand.title') }}</p>\r\n\t\t\t\t<p class=\"secondary-text\">{{ $t('settings.other.executeCommand.description') }}</p>\r\n\t\t\t\t<input type=\"text\" v-model=\"settings.executeCommand\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"settings-group\">\r\n\t\t\t<h3 class=\"settings-group__header settings-group__header--with-icon\">\r\n\t\t\t\t<svg id=\"spotify_icon\" enable-background=\"new 0 0 24 24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t<path\r\n\t\t\t\t\t\td=\"m12 24c6.624 0 12-5.376 12-12s-5.376-12-12-12-12 5.376-12 12 5.376 12 12 12zm4.872-6.344v.001c-.807 0-3.356-2.828-10.52-1.36-.189.049-.436.126-.576.126-.915 0-1.09-1.369-.106-1.578 3.963-.875 8.013-.798 11.467 1.268.824.526.474 1.543-.265 1.543zm1.303-3.173c-.113-.03-.08.069-.597-.203-3.025-1.79-7.533-2.512-11.545-1.423-.232.063-.358.126-.576.126-1.071 0-1.355-1.611-.188-1.94 4.716-1.325 9.775-.552 13.297 1.543.392.232.547.533.547.953-.005.522-.411.944-.938.944zm-13.627-7.485c4.523-1.324 11.368-.906 15.624 1.578 1.091.629.662 2.22-.498 2.22l-.001-.001c-.252 0-.407-.063-.625-.189-3.443-2.056-9.604-2.549-13.59-1.436-.175.048-.393.125-.625.125-.639 0-1.127-.499-1.127-1.142 0-.657.407-1.029.842-1.155z\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</svg>\r\n\t\t\t\t{{ $t('settings.spotify.title') }}\r\n\t\t\t</h3>\r\n\t\t\t<a href=\"https://codeberg.org/RemixDev/deemix/wiki/Enabling-Spotify-Features\" target=\"_blank\">\r\n\t\t\t\t{{ $t('settings.spotify.question') }}\r\n\t\t\t</a>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.spotify.clientID') }}</p>\r\n\t\t\t\t<input type=\"text\" v-model=\"spotifyFeatures.clientId\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.spotify.clientSecret') }}</p>\r\n\t\t\t\t<input type=\"password\" v-model=\"spotifyFeatures.clientSecret\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"input_group\">\r\n\t\t\t\t<p class=\"input_group_text\">{{ $t('settings.spotify.username') }}</p>\r\n\t\t\t\t<input type=\"text\" v-model=\"spotifyUser\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<footer>\r\n\t\t\t<button @click=\"resetSettings\">{{ $t('settings.reset') }}</button>\r\n\t\t\t<button @click=\"saveSettings\">{{ $t('settings.save') }}</button>\r\n\t\t</footer>\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\">\r\n#logged_in_info {\r\n\theight: 250px;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tjustify-content: space-evenly;\r\n\talign-items: center;\r\n}\r\n\r\n.locale-flag {\r\n\twidth: 60px;\r\n\tdisplay: inline-flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\tcursor: pointer;\r\n\r\n\t&:not(:last-child) {\r\n\t\tmargin-right: 10px;\r\n\t}\r\n\r\n\t&.locale-flag--current {\r\n\t\tsvg {\r\n\t\t\tfilter: brightness(1);\r\n\t\t}\r\n\t}\r\n\r\n\tsvg {\r\n\t\twidth: 40px !important;\r\n\t\theight: 40px !important;\r\n\t\tfilter: brightness(0.5);\r\n\t}\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { mapActions, mapGetters } from 'vuex'\r\n\r\nimport { getSettingsData } from '@/data/settings'\r\n\r\nimport { toast } from '@/utils/toasts'\r\nimport { socket } from '@/utils/socket'\r\nimport { flags } from '@/utils/flags'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tflags,\r\n\t\t\tcurrentLocale: this.$i18n.locale,\r\n\t\t\tlocales: this.$i18n.availableLocales,\r\n\t\t\tsettings: {\r\n\t\t\t\ttags: {}\r\n\t\t\t},\r\n\t\t\tlastSettings: {},\r\n\t\t\tspotifyFeatures: {},\r\n\t\t\tlastCredentials: {},\r\n\t\t\tdefaultSettings: {},\r\n\t\t\tlastUser: '',\r\n\t\t\tspotifyUser: '',\r\n\t\t\tslimDownloads: false,\r\n\t\t\tpreviewVolume: window.vol,\r\n\t\t\taccountNum: 0,\r\n\t\t\taccounts: []\r\n\t\t}\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters({\r\n\t\t\tarl: 'getARL',\r\n\t\t\tuser: 'getUser',\r\n\t\t\tisLoggedIn: 'isLoggedIn',\r\n\t\t\tclientMode: 'getClientMode'\r\n\t\t}),\r\n\t\tneedToWait() {\r\n\t\t\treturn Object.keys(this.getSettings).length === 0\r\n\t\t},\r\n\t\tchangeSlimDownloads: {\r\n\t\t\tget() {\r\n\t\t\t\treturn this.slimDownloads\r\n\t\t\t},\r\n\t\t\tset(wantSlimDownloads) {\r\n\t\t\t\tthis.slimDownloads = wantSlimDownloads\r\n\t\t\t\tdocument.getElementById('download_list').classList.toggle('slim', wantSlimDownloads)\r\n\t\t\t\tlocalStorage.setItem('slimDownloads', wantSlimDownloads)\r\n\t\t\t}\r\n\t\t},\r\n\t\tpictureHref() {\r\n\t\t\t// Default image: https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg\r\n\t\t\treturn `https://e-cdns-images.dzcdn.net/images/user/${this.user.picture}/125x125-000000-80-0-0.jpg`\r\n\t\t}\r\n\t},\r\n\tasync mounted() {\r\n\t\tconst { settingsData, defaultSettingsData, spotifyCredentials } = await getSettingsData()\r\n\r\n\t\tthis.defaultSettings = defaultSettingsData\r\n\t\tthis.initSettings(settingsData, spotifyCredentials)\r\n\r\n\t\tlet storedAccountNum = localStorage.getItem('accountNum')\r\n\r\n\t\tif (storedAccountNum) {\r\n\t\t\tthis.accountNum = storedAccountNum\r\n\t\t}\r\n\r\n\t\tlet spotifyUser = localStorage.getItem('spotifyUser')\r\n\r\n\t\tif (spotifyUser) {\r\n\t\t\tthis.lastUser = spotifyUser\r\n\t\t\tthis.spotifyUser = spotifyUser\r\n\t\t\tsocket.emit('update_userSpotifyPlaylists', spotifyUser)\r\n\t\t}\r\n\r\n\t\tthis.changeSlimDownloads = 'true' === localStorage.getItem('slimDownloads')\r\n\r\n\t\tlet volume = parseInt(localStorage.getItem('previewVolume'))\r\n\r\n\t\tif (isNaN(volume)) {\r\n\t\t\tvolume = 80\r\n\t\t\tlocalStorage.setItem('previewVolume', volume)\r\n\t\t}\r\n\r\n\t\twindow.vol.preview_max_volume = volume\r\n\r\n\t\tsocket.on('updateSettings', this.updateSettings)\r\n\t\tsocket.on('accountChanged', this.accountChanged)\r\n\t\tsocket.on('familyAccounts', this.initAccounts)\r\n\t\tsocket.on('downloadFolderSelected', this.downloadFolderSelected)\r\n\t\tsocket.on('applogin_arl', this.loggedInViaDeezer)\r\n\r\n\t\tthis.$on('hook:destroyed', () => {\r\n\t\t\tsocket.off('updateSettings')\r\n\t\t\tsocket.off('accountChanged')\r\n\t\t\tsocket.off('familyAccounts')\r\n\t\t\tsocket.off('downloadFolderSelected')\r\n\t\t\tsocket.off('applogin_arl')\r\n\t\t})\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions({\r\n\t\t\tdispatchARL: 'setARL'\r\n\t\t}),\r\n\t\trevertSettings() {\r\n\t\t\tthis.settings = JSON.parse(JSON.stringify(this.lastSettings))\r\n\t\t},\r\n\t\trevertCredentials() {\r\n\t\t\tthis.spotifyCredentials = JSON.parse(JSON.stringify(this.lastCredentials))\r\n\t\t\tthis.spotifyUser = (' ' + this.lastUser).slice(1)\r\n\t\t},\r\n\t\tcopyARLtoClipboard() {\r\n\t\t\tlet copyText = this.$refs.loginInput\r\n\r\n\t\t\tcopyText.setAttribute('type', 'text')\r\n\t\t\tcopyText.select()\r\n\t\t\tcopyText.setSelectionRange(0, 99999)\r\n\t\t\tdocument.execCommand('copy')\r\n\t\t\tcopyText.setAttribute('type', 'password')\r\n\r\n\t\t\ttoast(this.$t('settings.toasts.ARLcopied'), 'assignment')\r\n\t\t},\r\n\t\tchangeLocale(newLocale) {\r\n\t\t\tthis.$i18n.locale = newLocale\r\n\t\t\tthis.currentLocale = newLocale\r\n\t\t\tlocalStorage.setItem('locale', newLocale)\r\n\t\t},\r\n\t\tupdateMaxVolume() {\r\n\t\t\tlocalStorage.setItem('previewVolume', this.previewVolume.preview_max_volume)\r\n\t\t},\r\n\t\tsaveSettings() {\r\n\t\t\tthis.lastSettings = JSON.parse(JSON.stringify(this.settings))\r\n\t\t\tthis.lastCredentials = JSON.parse(JSON.stringify(this.spotifyFeatures))\r\n\r\n\t\t\tlet changed = false\r\n\r\n\t\t\tif (this.lastUser != this.spotifyUser) {\r\n\t\t\t\t// force cloning without linking\r\n\t\t\t\tthis.lastUser = (' ' + this.spotifyUser).slice(1)\r\n\t\t\t\tlocalStorage.setItem('spotifyUser', this.lastUser)\r\n\t\t\t\tchanged = true\r\n\t\t\t}\r\n\r\n\t\t\tsocket.emit('saveSettings', this.lastSettings, this.lastCredentials, changed ? this.lastUser : false)\r\n\t\t},\r\n\t\tselectDownloadFolder() {\r\n\t\t\tsocket.emit('selectDownloadFolder')\r\n\t\t},\r\n\t\tdownloadFolderSelected(folder) {\r\n\t\t\tthis.$set(this.settings, 'downloadLocation', folder)\r\n\t\t},\r\n\t\tloadSettings(data) {\r\n\t\t\tthis.lastSettings = JSON.parse(JSON.stringify(data))\r\n\t\t\tthis.settings = JSON.parse(JSON.stringify(data))\r\n\t\t},\r\n\t\tloadCredentials(credentials) {\r\n\t\t\tthis.lastCredentials = JSON.parse(JSON.stringify(credentials))\r\n\t\t\tthis.spotifyFeatures = JSON.parse(JSON.stringify(credentials))\r\n\t\t},\r\n\t\tloggedInViaDeezer(arl) {\r\n\t\t\tthis.dispatchARL({ arl })\r\n\t\t\tsocket.emit('login', arl, true, this.accountNum)\r\n\t\t\t// this.login()\r\n\t\t},\r\n\t\tlogin() {\r\n\t\t\tlet newArl = this.$refs.loginInput.value.trim()\r\n\r\n\t\t\tif (newArl && newArl !== this.arl) {\r\n\t\t\t\tsocket.emit('login', newArl, true, this.accountNum)\r\n\t\t\t}\r\n\t\t},\r\n\t\tappLogin(e) {\r\n\t\t\tsocket.emit('applogin')\r\n\t\t},\r\n\t\tchangeAccount() {\r\n\t\t\tsocket.emit('changeAccount', this.accountNum)\r\n\t\t},\r\n\t\taccountChanged(user, accountNum) {\r\n\t\t\tthis.$refs.username.innerText = user.name\r\n\t\t\tthis.$refs.userpicture.src = `https://e-cdns-images.dzcdn.net/images/user/${user.picture}/125x125-000000-80-0-0.jpg`\r\n\t\t\tthis.accountNum = accountNum\r\n\r\n\t\t\tlocalStorage.setItem('accountNum', this.accountNum)\r\n\t\t},\r\n\t\tinitAccounts(accounts) {\r\n\t\t\tthis.accounts = accounts\r\n\t\t},\r\n\t\tlogout() {\r\n\t\t\tsocket.emit('logout')\r\n\t\t},\r\n\t\tinitSettings(settings, credentials) {\r\n\t\t\t// this.loadDefaultSettings()\r\n\t\t\tthis.loadSettings(settings)\r\n\t\t\tthis.loadCredentials(credentials)\r\n\r\n\t\t\ttoast(this.$t('settings.toasts.init'), 'settings')\r\n\t\t},\r\n\t\tupdateSettings(newSettings, newCredentials) {\r\n\t\t\tthis.loadSettings(newSettings)\r\n\t\t\tthis.loadCredentials(newCredentials)\r\n\r\n\t\t\ttoast(this.$t('settings.toasts.update'), 'settings')\r\n\t\t},\r\n\t\tresetSettings() {\r\n\t\t\tthis.settings = JSON.parse(JSON.stringify(this.defaultSettings))\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport { isEmpty } from 'lodash-es'\r\nimport { socket } from '@/utils/socket'\r\nimport Downloads from '@/utils/downloads'\r\nimport Utils from '@/utils/utils'\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nimport BackButton from '@components/globals/BackButton.vue'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttitle: '',\r\n\t\t\tmetadata: '',\r\n\t\t\trelease_date: '',\r\n\t\t\tlabel: '',\r\n\t\t\texplicit: false,\r\n\t\t\timage: '',\r\n\t\t\ttype: 'empty',\r\n\t\t\tlink: '',\r\n\t\t\tbody: []\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tBackButton\r\n\t},\r\n\tmounted() {\r\n\t\tEventBus.$on('tracklistTab:selectRow', this.selectRow)\r\n\r\n\t\tsocket.on('show_album', this.showAlbum)\r\n\t\tsocket.on('show_playlist', this.showPlaylist)\r\n\t\tsocket.on('show_spotifyplaylist', this.showSpotifyPlaylist)\r\n\t},\r\n\tmethods: {\r\n\t\tplayPausePreview(e) {\r\n\t\t\tEventBus.$emit('trackPreview:playPausePreview', e)\r\n\t\t},\r\n\t\treset() {\r\n\t\t\tthis.title = 'Loading...'\r\n\t\t\tthis.image = ''\r\n\t\t\tthis.metadata = ''\r\n\t\t\tthis.label = ''\r\n\t\t\tthis.release_date = ''\r\n\t\t\tthis.explicit = false\r\n\t\t\tthis.type = 'empty'\r\n\t\t\tthis.body = []\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\tDownloads.sendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\ttoggleAll(e) {\r\n\t\t\tthis.body.forEach(item => {\r\n\t\t\t\tif (item.type == 'track') {\r\n\t\t\t\t\titem.selected = e.currentTarget.checked\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t},\r\n\t\tselectedLinks() {\r\n\t\t\tvar selected = []\r\n\t\t\tif (this.body) {\r\n\t\t\t\tthis.body.forEach(item => {\r\n\t\t\t\t\tif (item.type == 'track' && item.selected)\r\n\t\t\t\t\t\tselected.push(this.type == 'spotifyPlaylist' ? item.uri : item.link)\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn selected.join(';')\r\n\t\t},\r\n\t\tconvertDuration: Utils.convertDuration,\r\n\t\tshowAlbum(data) {\r\n\t\t\tthis.reset()\r\n\r\n\t\t\tconst {\r\n\t\t\t\tid: albumID,\r\n\t\t\t\ttitle: albumTitle,\r\n\t\t\t\texplicit_lyrics,\r\n\t\t\t\tlabel: albumLabel,\r\n\t\t\t\tartist: { name: artistName },\r\n\t\t\t\ttracks: albumTracks,\r\n\t\t\t\ttracks: { length: numberOfTracks },\r\n\t\t\t\trelease_date,\r\n\t\t\t\tcover_xl\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.type = 'album'\r\n\t\t\tthis.link = `https://www.deezer.com/album/${albumID}`\r\n\t\t\tthis.title = albumTitle\r\n\t\t\tthis.explicit = explicit_lyrics\r\n\t\t\tthis.label = albumLabel\r\n\t\t\tthis.metadata = `${artistName} • ${this.$tc('globals.listTabs.trackN', numberOfTracks)}`\r\n\t\t\tthis.release_date = release_date.substring(0, 10)\r\n\t\t\tthis.image = cover_xl\r\n\r\n\t\t\tif (isEmpty(albumTracks)) {\r\n\t\t\t\tthis.body = null\r\n\t\t\t} else {\r\n\t\t\t\tthis.body = albumTracks\r\n\t\t\t}\r\n\t\t},\r\n\t\tshowPlaylist(data) {\r\n\t\t\tthis.reset()\r\n\r\n\t\t\tconst {\r\n\t\t\t\tid: playlistID,\r\n\t\t\t\ttitle: playlistTitle,\r\n\t\t\t\tpicture_xl: playlistCover,\r\n\t\t\t\tcreation_date,\r\n\t\t\t\tcreator: { name: creatorName },\r\n\t\t\t\ttracks: playlistTracks,\r\n\t\t\t\ttracks: { length: numberOfTracks }\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.type = 'playlist'\r\n\t\t\tthis.link = `https://www.deezer.com/playlist/${playlistID}`\r\n\t\t\tthis.title = playlistTitle\r\n\t\t\tthis.image = playlistCover\r\n\t\t\tthis.release_date = creation_date.substring(0, 10)\r\n\t\t\tthis.metadata = `${this.$t('globals.by', { artist: creatorName })} • ${this.$tc(\r\n\t\t\t\t'globals.listTabs.trackN',\r\n\t\t\t\tnumberOfTracks\r\n\t\t\t)}`\r\n\r\n\t\t\tif (isEmpty(playlistTracks)) {\r\n\t\t\t\tthis.body = null\r\n\t\t\t} else {\r\n\t\t\t\tthis.body = playlistTracks\r\n\t\t\t}\r\n\t\t},\r\n\t\tshowSpotifyPlaylist(data) {\r\n\t\t\tthis.reset()\r\n\r\n\t\t\tconst {\r\n\t\t\t\turi: playlistURI,\r\n\t\t\t\tname: playlistName,\r\n\t\t\t\timages,\r\n\t\t\t\timages: { length: numberOfImages },\r\n\t\t\t\towner: { display_name: ownerName },\r\n\t\t\t\ttracks: playlistTracks,\r\n\t\t\t\ttracks: { length: numberOfTracks }\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.type = 'spotifyPlaylist'\r\n\t\t\tthis.link = playlistURI\r\n\t\t\tthis.title = playlistName\r\n\t\t\tthis.image = numberOfImages\r\n\t\t\t\t? images[0].url\r\n\t\t\t\t: 'https://e-cdns-images.dzcdn.net/images/cover/d41d8cd98f00b204e9800998ecf8427e/1000x1000-000000-80-0-0.jpg'\r\n\t\t\tthis.release_date = ''\r\n\t\t\tthis.metadata = `${this.$t('globals.by', { artist: ownerName })} • ${this.$tc(\r\n\t\t\t\t'globals.listTabs.trackN',\r\n\t\t\t\tnumberOfTracks\r\n\t\t\t)}`\r\n\r\n\t\t\tif (isEmpty(playlistTracks)) {\r\n\t\t\t\tthis.body = null\r\n\t\t\t} else {\r\n\t\t\t\tthis.body = playlistTracks\r\n\t\t\t}\r\n\t\t},\r\n\t\tselectRow(index, track) {\r\n\t\t\ttrack.selected = !track.selected\r\n\t\t}\r\n\t}\r\n}\r\n","<template>\r\n\t<div class=\"main_tabcontent fixed_footer image_header\" ref=\"root\">\r\n\t\t<header\r\n\t\t\t:style=\"{\r\n\t\t\t\t'background-image':\r\n\t\t\t\t\t'linear-gradient(to bottom, transparent 0%, var(--main-background) 100%), url(\\'' + image + '\\')'\r\n\t\t\t}\"\r\n\t\t>\r\n\t\t\t<BackButton />\r\n\r\n\t\t\t<h1 class=\"inline-flex\">\r\n\t\t\t\t{{ title }} <i v-if=\"explicit\" class=\"material-icons explicit_icon explicit_icon--right\">explicit</i>\r\n\t\t\t</h1>\r\n\r\n\t\t\t<h2>\r\n\t\t\t\t<p v-if=\"metadata\">{{ metadata }}</p>\r\n\t\t\t\t<p v-if=\"release_date\">{{ release_date }}</p>\r\n\t\t\t</h2>\r\n\t\t</header>\r\n\r\n\t\t<table class=\"table table--tracklist\">\r\n\t\t\t<thead>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<i class=\"material-icons\">music_note</i>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<th>#</th>\r\n\t\t\t\t\t<th>{{ $tc('globals.listTabs.title', 1) }}</th>\r\n\t\t\t\t\t<th>{{ $tc('globals.listTabs.artist', 1) }}</th>\r\n\t\t\t\t\t<th v-if=\"type === 'playlist'\">{{ $tc('globals.listTabs.album', 1) }}</th>\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<i class=\"material-icons\">timer</i>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t\t<th class=\"table__icon table__cell--center clickable\">\r\n\t\t\t\t\t\t<input @click=\"toggleAll\" class=\"selectAll\" type=\"checkbox\" />\r\n\t\t\t\t\t</th>\r\n\t\t\t\t</tr>\r\n\t\t\t</thead>\r\n\t\t\t<tbody>\r\n\t\t\t\t<template v-if=\"type !== 'spotifyPlaylist'\">\r\n\t\t\t\t\t<template v-for=\"(track, index) in body\">\r\n\t\t\t\t\t\t<tr v-if=\"track.type == 'track'\" @click=\"selectRow(index, track)\">\r\n\t\t\t\t\t\t\t<td class=\"table__cell--x-small table__cell--center\">\r\n\t\t\t\t\t\t\t\t<div class=\"table__cell-content table__cell-content--vertical-center\">\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\tclass=\"material-icons\"\r\n\t\t\t\t\t\t\t\t\t\t:class=\"{ preview_playlist_controls: track.preview, disabled: !track.preview }\"\r\n\t\t\t\t\t\t\t\t\t\tv-on=\"{ click: track.preview ? playPausePreview : false }\"\r\n\t\t\t\t\t\t\t\t\t\t:data-preview=\"track.preview\"\r\n\t\t\t\t\t\t\t\t\t\t:title=\"$t('globals.play_hint')\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\tplay_arrow\r\n\t\t\t\t\t\t\t\t\t</i>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td class=\"table__cell--small table__cell--center track_position\">\r\n\t\t\t\t\t\t\t\t{{ type === 'album' ? track.track_position : body.indexOf(track) + 1 }}\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td class=\"table__cell--large table__cell--with-icon\">\r\n\t\t\t\t\t\t\t\t<div class=\"table__cell-content table__cell-content--vertical-center\">\r\n\t\t\t\t\t\t\t\t\t<i v-if=\"track.explicit_lyrics\" class=\"material-icons explicit_icon\"> explicit </i>\r\n\t\t\t\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\t\t\t\ttrack.title +\r\n\t\t\t\t\t\t\t\t\t\t(track.title_version && track.title.indexOf(track.title_version) == -1\r\n\t\t\t\t\t\t\t\t\t\t\t? ' ' + track.title_version\r\n\t\t\t\t\t\t\t\t\t\t\t: '')\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<router-link\r\n\t\t\t\t\t\t\t\ttag=\"td\"\r\n\t\t\t\t\t\t\t\tclass=\"table__cell--medium table__cell--center clickable\"\r\n\t\t\t\t\t\t\t\t:to=\"{ name: 'Artist', params: { id: track.artist.id } }\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{{ track.artist.name }}\r\n\t\t\t\t\t\t\t</router-link>\r\n\t\t\t\t\t\t\t<router-link\r\n\t\t\t\t\t\t\t\ttag=\"td\"\r\n\t\t\t\t\t\t\t\tv-if=\"type === 'playlist'\"\r\n\t\t\t\t\t\t\t\tclass=\"table__cell--medium table__cell--center clickable\"\r\n\t\t\t\t\t\t\t\t:to=\"{ name: 'Album', params: { id: track.album.id } }\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{{ track.album.title }}\r\n\t\t\t\t\t\t\t</router-link>\r\n\t\t\t\t\t\t\t<td\r\n\t\t\t\t\t\t\t\tclass=\"table__cell--center\"\r\n\t\t\t\t\t\t\t\t:class=\"{ 'table__cell--small': type === 'album', 'table__cell--x-small': type === 'playlist' }\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{{ convertDuration(track.duration) }}\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td class=\"table__icon table__cell--center\">\r\n\t\t\t\t\t\t\t\t<input class=\"clickable\" type=\"checkbox\" v-model=\"track.selected\" />\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t<tr v-else-if=\"track.type == 'disc_separator'\" class=\"table__row-no-highlight\" style=\"opacity: 0.54\">\r\n\t\t\t\t\t\t\t<td>\r\n\t\t\t\t\t\t\t\t<div class=\"table__cell-content table__cell-content--vertical-center\" style=\"opacity: 0.54\">\r\n\t\t\t\t\t\t\t\t\t<i class=\"material-icons\">album</i>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td class=\"table__cell--center\">\r\n\t\t\t\t\t\t\t\t{{ track.number }}\r\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t\t<td colspan=\"4\"></td>\r\n\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t</template>\r\n\t\t\t\t</template>\r\n\t\t\t\t<template v-else>\r\n\t\t\t\t\t<tr v-for=\"(track, i) in body\">\r\n\t\t\t\t\t\t<td>\r\n\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\tv-if=\"track.preview_url\"\r\n\t\t\t\t\t\t\t\t@click=\"playPausePreview\"\r\n\t\t\t\t\t\t\t\t:class=\"'material-icons' + (track.preview_url ? ' preview_playlist_controls' : '')\"\r\n\t\t\t\t\t\t\t\t:data-preview=\"track.preview_url\"\r\n\t\t\t\t\t\t\t\t:title=\"$t('globals.play_hint')\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\tplay_arrow\r\n\t\t\t\t\t\t\t</i>\r\n\t\t\t\t\t\t\t<i v-else class=\"material-icons disabled\">play_arrow</i>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{{ i + 1 }}</td>\r\n\t\t\t\t\t\t<td class=\"inline-flex\">\r\n\t\t\t\t\t\t\t<i v-if=\"track.explicit\" class=\"material-icons explicit_icon\">explicit</i>\r\n\t\t\t\t\t\t\t{{ track.name }}\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{{ track.artists[0].name }}</td>\r\n\t\t\t\t\t\t<td>{{ track.album.name }}</td>\r\n\t\t\t\t\t\t<td>{{ convertDuration(Math.floor(track.duration_ms / 1000)) }}</td>\r\n\t\t\t\t\t\t<td><input class=\"clickable\" type=\"checkbox\" v-model=\"track.selected\" /></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</template>\r\n\t\t\t</tbody>\r\n\t\t</table>\r\n\t\t<span v-if=\"label\" style=\"opacity: 0.4; margin-top: 8px; display: inline-block; font-size: 13px\">{{ label }}</span>\r\n\t\t<footer>\r\n\t\t\t<button @click.stop=\"addToQueue\" :data-link=\"link\">\r\n\t\t\t\t{{ `${$t('globals.download', { thing: $tc(`globals.listTabs.${type}`, 1) })}` }}\r\n\t\t\t</button>\r\n\t\t\t<button class=\"with_icon\" @click.stop=\"addToQueue\" :data-link=\"selectedLinks()\">\r\n\t\t\t\t{{ $t('tracklist.downloadSelection') }}<i class=\"material-icons\">file_download</i>\r\n\t\t\t</button>\r\n\t\t</footer>\r\n\t</div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.main_tabcontent {\r\n\tposition: relative;\r\n}\r\n</style>\r\n\r\n<script>\r\nimport { isEmpty } from 'lodash-es'\r\nimport { socket } from '@/utils/socket'\r\nimport Downloads from '@/utils/downloads'\r\nimport Utils from '@/utils/utils'\r\nimport EventBus from '@/utils/EventBus'\r\n\r\nimport BackButton from '@components/globals/BackButton.vue'\r\n\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\ttitle: '',\r\n\t\t\tmetadata: '',\r\n\t\t\trelease_date: '',\r\n\t\t\tlabel: '',\r\n\t\t\texplicit: false,\r\n\t\t\timage: '',\r\n\t\t\ttype: 'empty',\r\n\t\t\tlink: '',\r\n\t\t\tbody: []\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tBackButton\r\n\t},\r\n\tmounted() {\r\n\t\tEventBus.$on('tracklistTab:selectRow', this.selectRow)\r\n\r\n\t\tsocket.on('show_album', this.showAlbum)\r\n\t\tsocket.on('show_playlist', this.showPlaylist)\r\n\t\tsocket.on('show_spotifyplaylist', this.showSpotifyPlaylist)\r\n\t},\r\n\tmethods: {\r\n\t\tplayPausePreview(e) {\r\n\t\t\tEventBus.$emit('trackPreview:playPausePreview', e)\r\n\t\t},\r\n\t\treset() {\r\n\t\t\tthis.title = 'Loading...'\r\n\t\t\tthis.image = ''\r\n\t\t\tthis.metadata = ''\r\n\t\t\tthis.label = ''\r\n\t\t\tthis.release_date = ''\r\n\t\t\tthis.explicit = false\r\n\t\t\tthis.type = 'empty'\r\n\t\t\tthis.body = []\r\n\t\t},\r\n\t\taddToQueue(e) {\r\n\t\t\tDownloads.sendAddToQueue(e.currentTarget.dataset.link)\r\n\t\t},\r\n\t\ttoggleAll(e) {\r\n\t\t\tthis.body.forEach(item => {\r\n\t\t\t\tif (item.type == 'track') {\r\n\t\t\t\t\titem.selected = e.currentTarget.checked\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t},\r\n\t\tselectedLinks() {\r\n\t\t\tvar selected = []\r\n\t\t\tif (this.body) {\r\n\t\t\t\tthis.body.forEach(item => {\r\n\t\t\t\t\tif (item.type == 'track' && item.selected)\r\n\t\t\t\t\t\tselected.push(this.type == 'spotifyPlaylist' ? item.uri : item.link)\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn selected.join(';')\r\n\t\t},\r\n\t\tconvertDuration: Utils.convertDuration,\r\n\t\tshowAlbum(data) {\r\n\t\t\tthis.reset()\r\n\r\n\t\t\tconst {\r\n\t\t\t\tid: albumID,\r\n\t\t\t\ttitle: albumTitle,\r\n\t\t\t\texplicit_lyrics,\r\n\t\t\t\tlabel: albumLabel,\r\n\t\t\t\tartist: { name: artistName },\r\n\t\t\t\ttracks: albumTracks,\r\n\t\t\t\ttracks: { length: numberOfTracks },\r\n\t\t\t\trelease_date,\r\n\t\t\t\tcover_xl\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.type = 'album'\r\n\t\t\tthis.link = `https://www.deezer.com/album/${albumID}`\r\n\t\t\tthis.title = albumTitle\r\n\t\t\tthis.explicit = explicit_lyrics\r\n\t\t\tthis.label = albumLabel\r\n\t\t\tthis.metadata = `${artistName} • ${this.$tc('globals.listTabs.trackN', numberOfTracks)}`\r\n\t\t\tthis.release_date = release_date.substring(0, 10)\r\n\t\t\tthis.image = cover_xl\r\n\r\n\t\t\tif (isEmpty(albumTracks)) {\r\n\t\t\t\tthis.body = null\r\n\t\t\t} else {\r\n\t\t\t\tthis.body = albumTracks\r\n\t\t\t}\r\n\t\t},\r\n\t\tshowPlaylist(data) {\r\n\t\t\tthis.reset()\r\n\r\n\t\t\tconst {\r\n\t\t\t\tid: playlistID,\r\n\t\t\t\ttitle: playlistTitle,\r\n\t\t\t\tpicture_xl: playlistCover,\r\n\t\t\t\tcreation_date,\r\n\t\t\t\tcreator: { name: creatorName },\r\n\t\t\t\ttracks: playlistTracks,\r\n\t\t\t\ttracks: { length: numberOfTracks }\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.type = 'playlist'\r\n\t\t\tthis.link = `https://www.deezer.com/playlist/${playlistID}`\r\n\t\t\tthis.title = playlistTitle\r\n\t\t\tthis.image = playlistCover\r\n\t\t\tthis.release_date = creation_date.substring(0, 10)\r\n\t\t\tthis.metadata = `${this.$t('globals.by', { artist: creatorName })} • ${this.$tc(\r\n\t\t\t\t'globals.listTabs.trackN',\r\n\t\t\t\tnumberOfTracks\r\n\t\t\t)}`\r\n\r\n\t\t\tif (isEmpty(playlistTracks)) {\r\n\t\t\t\tthis.body = null\r\n\t\t\t} else {\r\n\t\t\t\tthis.body = playlistTracks\r\n\t\t\t}\r\n\t\t},\r\n\t\tshowSpotifyPlaylist(data) {\r\n\t\t\tthis.reset()\r\n\r\n\t\t\tconst {\r\n\t\t\t\turi: playlistURI,\r\n\t\t\t\tname: playlistName,\r\n\t\t\t\timages,\r\n\t\t\t\timages: { length: numberOfImages },\r\n\t\t\t\towner: { display_name: ownerName },\r\n\t\t\t\ttracks: playlistTracks,\r\n\t\t\t\ttracks: { length: numberOfTracks }\r\n\t\t\t} = data\r\n\r\n\t\t\tthis.type = 'spotifyPlaylist'\r\n\t\t\tthis.link = playlistURI\r\n\t\t\tthis.title = playlistName\r\n\t\t\tthis.image = numberOfImages\r\n\t\t\t\t? images[0].url\r\n\t\t\t\t: 'https://e-cdns-images.dzcdn.net/images/cover/d41d8cd98f00b204e9800998ecf8427e/1000x1000-000000-80-0-0.jpg'\r\n\t\t\tthis.release_date = ''\r\n\t\t\tthis.metadata = `${this.$t('globals.by', { artist: ownerName })} • ${this.$tc(\r\n\t\t\t\t'globals.listTabs.trackN',\r\n\t\t\t\tnumberOfTracks\r\n\t\t\t)}`\r\n\r\n\t\t\tif (isEmpty(playlistTracks)) {\r\n\t\t\t\tthis.body = null\r\n\t\t\t} else {\r\n\t\t\t\tthis.body = playlistTracks\r\n\t\t\t}\r\n\t\t},\r\n\t\tselectRow(index, track) {\r\n\t\t\ttrack.selected = !track.selected\r\n\t\t}\r\n\t}\r\n}\r\n</script>\r\n\r\n","import Vue from 'vue'\r\nimport VueRouter from 'vue-router'\r\nimport { socket } from '@/utils/socket'\r\nimport EventBus from '@/utils/EventBus'\r\n\r\n// Pages\r\nimport About from '@components/pages/About.vue'\r\nimport Artist from '@components/pages/Artist.vue'\r\nimport Charts from '@components/pages/Charts.vue'\r\nimport Errors from '@components/pages/Errors.vue'\r\nimport Favorites from '@components/pages/Favorites.vue'\r\nimport Home from '@components/pages/Home.vue'\r\nimport LinkAnalyzer from '@components/pages/LinkAnalyzer.vue'\r\nimport Search from '@components/pages/Search.vue'\r\nimport Settings from '@components/pages/Settings.vue'\r\nimport Tracklist from '@components/pages/Tracklist.vue'\r\n\r\nVue.use(VueRouter)\r\n\r\nconst routes = [\r\n\t{\r\n\t\tpath: '/',\r\n\t\tname: 'Home',\r\n\t\tcomponent: Home,\r\n\t\tmeta: {\r\n\t\t\tnotKeepAlive: true\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: '/tracklist/:type/:id',\r\n\t\tname: 'Tracklist',\r\n\t\tcomponent: Tracklist\r\n\t},\r\n\t{\r\n\t\tpath: '/artist/:id',\r\n\t\tname: 'Artist',\r\n\t\tcomponent: Artist\r\n\t},\r\n\t{\r\n\t\tpath: '/album/:id',\r\n\t\tname: 'Album',\r\n\t\tcomponent: Tracklist\r\n\t},\r\n\t{\r\n\t\tpath: '/tracklist/:id',\r\n\t\tname: 'Playlist',\r\n\t\tcomponent: Tracklist\r\n\t},\r\n\t{\r\n\t\tpath: '/tracklist/:id',\r\n\t\tname: 'Spotify Playlist',\r\n\t\tcomponent: Tracklist\r\n\t},\r\n\t{\r\n\t\tpath: '/charts',\r\n\t\tname: 'Charts',\r\n\t\tcomponent: Charts,\r\n\t\tmeta: {\r\n\t\t\tnotKeepAlive: true\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: '/favorites',\r\n\t\tname: 'Favorites',\r\n\t\tcomponent: Favorites,\r\n\t\tmeta: {\r\n\t\t\tnotKeepAlive: true\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tpath: '/errors',\r\n\t\tname: 'Errors',\r\n\t\tcomponent: Errors\r\n\t},\r\n\t{\r\n\t\tpath: '/link-analyzer',\r\n\t\tname: 'Link Analyzer',\r\n\t\tcomponent: LinkAnalyzer\r\n\t},\r\n\t{\r\n\t\tpath: '/about',\r\n\t\tname: 'About',\r\n\t\tcomponent: About\r\n\t},\r\n\t{\r\n\t\tpath: '/settings',\r\n\t\tname: 'Settings',\r\n\t\tcomponent: Settings\r\n\t},\r\n\t{\r\n\t\tpath: '/search',\r\n\t\tname: 'Search',\r\n\t\tcomponent: Search\r\n\t},\r\n\t// 404 client side\r\n\t{\r\n\t\tpath: '*',\r\n\t\tcomponent: Home\r\n\t}\r\n]\r\n\r\nconst router = new VueRouter({\r\n\tmode: 'history',\r\n\t// linkActiveClass: 'open',\r\n\troutes,\r\n\tscrollBehavior(to, from, savedPosition) {\r\n\t\treturn { x: 0, y: 0 }\r\n\t}\r\n})\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n\tlet getTracklistParams = null\r\n\r\n\tswitch (to.name) {\r\n\t\tcase 'Artist':\r\n\t\t\tgetTracklistParams = {\r\n\t\t\t\ttype: 'artist',\r\n\t\t\t\tid: to.params.id\r\n\t\t\t}\r\n\t\t\tbreak\r\n\t\tcase 'Tracklist':\r\n\t\t\tgetTracklistParams = {\r\n\t\t\t\ttype: to.params.type,\r\n\t\t\t\tid: to.params.id\r\n\t\t\t}\r\n\t\t\tbreak\r\n\t\tcase 'Album':\r\n\t\t\tgetTracklistParams = {\r\n\t\t\t\ttype: 'album',\r\n\t\t\t\tid: to.params.id\r\n\t\t\t}\r\n\t\t\tbreak\r\n\t\tcase 'Playlist':\r\n\t\t\tgetTracklistParams = {\r\n\t\t\t\ttype: 'playlist',\r\n\t\t\t\tid: to.params.id\r\n\t\t\t}\r\n\t\t\tbreak\r\n\t\tcase 'Spotify Playlist':\r\n\t\t\tgetTracklistParams = {\r\n\t\t\t\ttype: 'spotifyplaylist',\r\n\t\t\t\tid: to.params.id\r\n\t\t\t}\r\n\t\t\tbreak\r\n\r\n\t\tdefault:\r\n\t\t\tbreak\r\n\t}\r\n\r\n\tif (getTracklistParams) {\r\n\t\tsocket.emit('getTracklist', getTracklistParams)\r\n\t}\r\n\r\n\tEventBus.$emit('trackPreview:stopStackedTabsPreview')\r\n\r\n\tnext()\r\n})\r\n\r\nexport default router\r\n","import Vue from 'vue'\r\n\r\n// Object is needed for vue change detection\r\nwindow.vol = {\r\n\tpreview_max_volume: 100\r\n}\r\n\r\nimport '@/styles/scss/style.scss'\r\nimport App from '@/App.vue'\r\nimport i18n from '@/plugins/i18n'\r\nimport router from '@/router'\r\nimport store from '@/store'\r\n\r\nimport { socket } from '@/utils/socket'\r\nimport { toast } from '@/utils/toasts'\r\nimport { isValidURL } from '@/utils/utils'\r\nimport { sendAddToQueue } from '@/utils/downloads'\r\n\r\n/* ===== App initialization ===== */\r\nfunction startApp() {\r\n\tnew Vue({\r\n\t\tstore,\r\n\t\trouter,\r\n\t\ti18n,\r\n\t\trender: h => h(App)\r\n\t}).$mount('#app')\r\n}\r\n\r\nfunction initClient() {\r\n\tstore.dispatch('setClientMode', true)\r\n\tsetClientModeKeyBindings()\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', startApp)\r\nwindow.addEventListener('pywebviewready', initClient)\r\n\r\n/* ===== Global shortcuts ===== */\r\n\r\ndocument.addEventListener('paste', pasteEvent => {\r\n\tif (pasteEvent.target.localName === 'input') return\r\n\r\n\tlet pastedText = pasteEvent.clipboardData.getData('Text')\r\n\r\n\tif (isValidURL(pastedText)) {\r\n\t\tif (router.currentRoute.name === 'Link Analyzer') {\r\n\t\t\tsocket.emit('analyzeLink', pastedText)\r\n\t\t} else {\r\n\t\t\tsendAddToQueue(pastedText)\r\n\t\t}\r\n\t} else {\r\n\t\tlet searchbar = document.querySelector('#searchbar')\r\n\t\tsearchbar.select()\r\n\t\tsearchbar.setSelectionRange(0, 99999)\r\n\t}\r\n})\r\n\r\n/**\r\n * Sets up key bindings that already work in the browser (server mode)\r\n */\r\nfunction setClientModeKeyBindings() {\r\n\tdocument.addEventListener('keyup', keyEvent => {\r\n\t\t// ALT + left\r\n\t\tif (keyEvent.altKey && keyEvent.key === 'ArrowLeft') {\r\n\t\t\trouter.back()\r\n\t\t}\r\n\r\n\t\t// ALT + right\r\n\t\tif (keyEvent.altKey && keyEvent.key === 'ArrowRight') {\r\n\t\t\trouter.forward()\r\n\t\t}\r\n\t})\r\n}\r\n\r\n/* ===== Socketio listeners ===== */\r\n\r\n// Debug messages for socketio\r\nsocket.on('message', function(msg) {\r\n\tconsole.log(msg)\r\n})\r\n\r\nsocket.on('logging_in', function() {\r\n\ttoast(i18n.t('toasts.loggingIn'), 'loading', false, 'login-toast')\r\n})\r\n\r\nsocket.on('init_autologin', function() {\r\n\tlet arl = localStorage.getItem('arl')\r\n\tlet accountNum = localStorage.getItem('accountNum')\r\n\r\n\tif (arl) {\r\n\t\tarl = arl.trim()\r\n\r\n\t\tif (accountNum != 0) {\r\n\t\t\tsocket.emit('login', arl, true, accountNum)\r\n\t\t} else {\r\n\t\t\tsocket.emit('login', arl)\r\n\t\t}\r\n\t}\r\n})\r\n\r\nsocket.on('logged_in', function(data) {\r\n\tconst { status, user } = data\r\n\r\n\tswitch (status) {\r\n\t\tcase 1:\r\n\t\tcase 3:\r\n\t\t\t// Login ok\r\n\t\t\ttoast(i18n.t('toasts.loggedIn'), 'done', true, 'login-toast')\r\n\r\n\t\t\tstore.dispatch('login', data)\r\n\t\t\tbreak\r\n\t\tcase 2:\r\n\t\t\t// Already logged in\r\n\t\t\ttoast(i18n.t('toasts.alreadyLogged'), 'done', true, 'login-toast')\r\n\r\n\t\t\tstore.dispatch('setUser', user)\r\n\t\t\tbreak\r\n\t\tcase 0:\r\n\t\t\t// Login failed\r\n\t\t\ttoast(i18n.t('toasts.loginFailed'), 'close', true, 'login-toast')\r\n\r\n\t\t\tstore.dispatch('removeARL')\r\n\t\t\tbreak\r\n\t\tcase -1:\r\n\t\t\ttoast(i18n.t('toasts.deezerNotAvailable'), 'close', true, 'login-toast')\r\n\t\t\treturn\r\n\t\t// TODO\r\n\t\t// $('#open_login_prompt').show()\r\n\t\t// document.getElementById('logged_in_info').classList.add('hide')\r\n\t\t// $('#settings_username').text('Not Logged')\r\n\t\t// $('#settings_picture').attr('src', `https://e-cdns-images.dzcdn.net/images/user/125x125-000000-80-0-0.jpg`)\r\n\t\t// document.getElementById('home_not_logged_in').classList.remove('hide')\r\n\t}\r\n})\r\n\r\nsocket.on('logged_out', function() {\r\n\ttoast(i18n.t('toasts.loggedOut'), 'done', true, 'login-toast')\r\n\r\n\tstore.dispatch('logout')\r\n})\r\n\r\nsocket.on('restoringQueue', function() {\r\n\ttoast(i18n.t('toasts.restoringQueue'), 'loading', false, 'restoring_queue')\r\n})\r\n\r\nsocket.on('cancellingCurrentItem', function(uuid) {\r\n\ttoast(i18n.t('toasts.cancellingCurrentItem'), 'loading', false, 'cancelling_' + uuid)\r\n})\r\n\r\nsocket.on('currentItemCancelled', function(uuid) {\r\n\ttoast(i18n.t('toasts.currentItemCancelled'), 'done', true, 'cancelling_' + uuid)\r\n})\r\n\r\nsocket.on('startAddingArtist', function(data) {\r\n\ttoast(i18n.t('toasts.startAddingArtist', { artist: data.name }), 'loading', false, 'artist_' + data.id)\r\n})\r\n\r\nsocket.on('finishAddingArtist', function(data) {\r\n\ttoast(i18n.t('toasts.finishAddingArtist', { artist: data.name }), 'done', true, 'artist_' + data.id)\r\n})\r\n\r\nsocket.on('startConvertingSpotifyPlaylist', function(id) {\r\n\ttoast(i18n.t('toasts.startConvertingSpotifyPlaylist'), 'loading', false, 'spotifyplaylist_' + id)\r\n})\r\n\r\nsocket.on('finishConvertingSpotifyPlaylist', function(id) {\r\n\ttoast(i18n.t('toasts.finishConvertingSpotifyPlaylist'), 'done', true, 'spotifyplaylist_' + id)\r\n})\r\n\r\nsocket.on('errorMessage', function(error) {\r\n\ttoast(error, 'error')\r\n})\r\n\r\nsocket.on('queueError', function(queueItem) {\r\n\tif (queueItem.errid) {\r\n\t\ttoast(i18n.t(`errors.ids.${queueItem.errid}`), 'error')\r\n\t} else {\r\n\t\ttoast(queueItem.error, 'error')\r\n\t}\r\n})\r\n\r\nsocket.on('alreadyInQueue', function(data) {\r\n\ttoast(i18n.t('toasts.alreadyInQueue', { item: data.title }), 'playlist_add_check')\r\n})\r\n\r\nsocket.on('loginNeededToDownload', function(data) {\r\n\ttoast(i18n.t('toasts.loginNeededToDownload'), 'report')\r\n})\r\n"],"names":["target","isObject","isPromise","prototypeAccessors","Vue","prototypeAccessors$1","repeat","index","state","actions","getters","mutations","Vuex","this","Toastify","EventBus","warn","isBoolean","toString","isPlainObject","remove","hasOwnProperty","hasOwn","looseEqual","extend","bind","assert","update","install","parse","parse$1","parsePath","compile","noop","inBrowser","once","hasSymbol","Symbol","objectProto","nativeObjectToString","symToStringTag","isArray","identity","funcProto","funcToString","getValue","MAX_SAFE_INTEGER","argsTag","funcTag","freeExports","freeModule","moduleExports","HASH_UNDEFINED","arrayProto","INFINITY","propertyIsEnumerable","Promise","Set","mapTag","objectTag","setTag","weakMapTag","dataViewTag","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","symbolTag","arrayBufferTag","symbolProto","arrayTag","getTag","cached","flags","it","es","de","fr","id","pt","ru","tr","vn","hr","ar","ko","ph"],"mappings":"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SAAS;AACX,EAAE,eAAe;AACjB,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,aAAa;AACf,EAAE,eAAe;AACjB,EAAE,gBAAgB;AAClB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI;AACd;AACA;AACA;AACA;AACA,EAAE,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5C;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,KAAK;AACf;AACA;AACA;AACA;AACA,EAAE,aAAa,EAAE,aAAoB,KAAK,YAAY;AACtD;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,aAAoB,KAAK,YAAY;AACjD;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,KAAK;AACpB;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAE,IAAI;AACpB;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,IAAI;AACnB;AACA;AACA;AACA;AACA,EAAE,eAAe,EAAE,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,EAAE,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA,EAAE,cAAc,EAAE,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA,EAAE,gBAAgB,EAAE,EAAE;AACtB;AACA;AACA;AACA;AACA,EAAE,eAAe,EAAE,IAAI;AACvB;AACA;AACA;AACA;AACA,EAAE,oBAAoB,EAAE,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,EAAE,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,EAAE,IAAI;AACb;AACA;AACA;AACA;AACA,EAAE,eAAe,EAAE,eAAe;AAClC,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG,6JAA6J,CAAC;AAClL;AACA;AACA;AACA;AACA,SAAS,UAAU,EAAE,GAAG,EAAE;AAC1B,EAA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AI,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7J,CAAC;AACD;AACA,SAASK,QAAM,EAAE,GAAG,EAAE,KAAK,EAAE;AAC7B,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACzC,CAAC;AACD;AACA,SAAS,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE;AAC9B,EAAE,OAAOA,QAAM,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG;AAC7D,CAAC;AACD;AACA,IAAIC,OAAK,GAAG;AACZ,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,YAAY,EAAE,YAAY;AAC5B,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,uBAAuB,EAAE,uBAAuB;AAClD,EAAE,YAAY,EAAE,YAAY;AAC5B,CAAC;;ACntCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,CAAC,IAAI,GAAG;AACR,EAAE,OAAO;AACT,GAAG,SAAS,EAAE,qDAAqD;AACnE,GAAG;AACH,EAAE;AACF,CAAC,OAAO,GAAG;AACX,EAAE,UAAU,CAAC,MAAM;AACnB;AACA;AACA,GAAG,EAAE,IAAI,EAAC;AACV,EAAE;AACF;;;ACjFA,YAAY;AACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,CAAC,IAAI,GAAG;AACR,EAAE,OAAO;AACT,GAAG,SAAS,EAAE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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}