xinference 1.1.1__py3-none-any.whl → 1.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of xinference might be problematic. Click here for more details.
- xinference/_version.py +3 -3
- xinference/api/restful_api.py +49 -65
- xinference/core/model.py +77 -19
- xinference/core/supervisor.py +81 -10
- xinference/core/utils.py +2 -2
- xinference/core/worker.py +32 -0
- xinference/model/image/model_spec.json +18 -0
- xinference/model/image/model_spec_modelscope.json +20 -0
- xinference/model/llm/__init__.py +2 -0
- xinference/model/llm/llm_family.json +96 -0
- xinference/model/llm/llm_family_modelscope.json +99 -0
- xinference/model/llm/mlx/core.py +23 -73
- xinference/model/llm/transformers/cogagent.py +272 -0
- xinference/model/llm/transformers/core.py +1 -0
- xinference/model/llm/transformers/qwen2_vl.py +10 -1
- xinference/model/llm/utils.py +27 -3
- xinference/model/llm/vllm/core.py +37 -7
- xinference/model/llm/vllm/xavier/__init__.py +13 -0
- xinference/model/llm/vllm/xavier/allocator.py +74 -0
- xinference/model/llm/vllm/xavier/block.py +112 -0
- xinference/model/llm/vllm/xavier/block_manager.py +71 -0
- xinference/model/llm/vllm/xavier/block_tracker.py +116 -0
- xinference/model/llm/vllm/xavier/engine.py +247 -0
- xinference/model/llm/vllm/xavier/executor.py +132 -0
- xinference/model/llm/vllm/xavier/scheduler.py +422 -0
- xinference/model/llm/vllm/xavier/test/__init__.py +13 -0
- xinference/model/llm/vllm/xavier/test/test_xavier.py +122 -0
- xinference/model/llm/vllm/xavier/transfer.py +298 -0
- xinference/model/video/diffusers.py +14 -0
- xinference/model/video/model_spec.json +15 -0
- xinference/model/video/model_spec_modelscope.json +16 -0
- xinference/types.py +13 -0
- xinference/web/ui/build/asset-manifest.json +6 -6
- xinference/web/ui/build/index.html +1 -1
- xinference/web/ui/build/static/css/main.51a587ff.css +2 -0
- xinference/web/ui/build/static/css/main.51a587ff.css.map +1 -0
- xinference/web/ui/build/static/js/main.1eb206d1.js +3 -0
- xinference/web/ui/build/static/js/main.1eb206d1.js.map +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/03c4052f1b91f6ba0c5389bdcf49c43319b4076c08e4b8585dab312538ae290a.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/1786b83003b8e9605a0f5f855a185d4d16e38fc893dfb326a2a9cca206b4240a.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/17cbc181dd674b9150b80c73ed6a82656de0082d857f6e5f66d9716129ac0b38.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/185ceb8872d562e032b47e79df6a45670e06345b8ed70aad1a131e0476783c5c.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/2213d49de260e1f67c888081b18f120f5225462b829ae57c9e05a05cec83689d.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/26b8c9f34b0bed789b3a833767672e39302d1e0c09b4276f4d58d1df7b6bd93b.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/2b484da66c724d0d56a40849c109327408796a668b1381511b6e9e03baa48658.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/2cbbbce9b84df73330d4c42b82436ed881b3847628f2fbc346aa62e2859fd88c.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/2ec9b14431ed33ce6901bf9f27007be4e6e472709c99d6e22b50ce528e4b78ee.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3b966db018f96be4a055d6ca205f0990d4d0b370e2980c17d8bca2c9a021819c.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/3eefb411b24c2b3ce053570ef50daccf154022f0e168be5ed0fec21394baf9f4.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/522b229e3cac219123f0d69673f5570e191c2d2a505dc65b312d336eae2279c0.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/52e45f17ba300580ea3fcc9f9228ccba194bb092b76f25e9255af311f8b05aab.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/5a0bc4631f936459afc1a3b1d3ec2420118b1f00e11f60ccac3e08088f3f27a8.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/611fa2c6c53b66039991d06dfb0473b5ab37fc63b4564e0f6e1718523768a045.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/6329bc76c406fe5eb305412383fbde5950f847bb5e43261f73f37622c365acb4.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/63c8e07687ea53a4f8a910ee5e42e0eb26cd1acbfbe820f3e3248a786ee51401.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/69b2d5001684174ec9da57e07914eed3eac4960018bceb6cbfa801d861301d7c.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/710c1acda69e561e30a933b98c6a56d50197868b15c21e2aad55ab6d46649eb6.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/720deca1fce5a1dc5056048fa8258fd138a82ea855f350b6613f104a73fb761f.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/76a23b92d26a499c57e61eea2b895fbc9771bd0849a72e66f8e633192017978b.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/858063f23b34dfe600254eb5afd85518b0002ec4b30b7386616c45600826e3b2.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/920b82c1c89124cf217109eeedbfcd3aae3b917be50c9dfb6bbb4ce26bdfd2e7.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/94d8b7aeb0076f2ce07db598cea0e87b13bc8d5614eb530b8d6e696c2daf6f88.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/9e917fe7022d01b2ccbe5cc0ce73d70bb72bee584ff293bad71bdff6695dee28.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/9f28fdb8399f1d0474f0aca86f1658dc94f5bf0c90f6146352de150692de8862.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/a0dfafa06b2bb7cba8cad41c482503f61944f759f4318139362602ef5cc47ccb.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/afb8084f539534cd594755ea2205ecd5bd1f62dddcfdf75a2eace59a28131278.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/b57b1438b77294c1f3f6cfce12ac487d8106c6f016975ba0aec94d98997e2e1e.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/b9917b0bf8e4d55ccbac1c334aa04d6ff3c5b6ed9e5d38b9ea2c687fa7d3f5a9.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/bbcc94b0149963d1d6f267ee1f4f03d3925b758392ce2f516c3fe8af0e0169fc.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/bdee44abeadc4abc17d41c52eb49c6e19a4b1a267b6e16876ce91bdeeebfc52d.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/beb112b70f4a56db95920a9e20efb6c97c37b68450716730217a9ee1a9ae92be.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/c88db97be0cdf440193b3995996e83510a04cb00048135485fc0e26d197e80b5.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/d49e5314d34310a62d01a03067ce1bec5da00abce84c5196aa9c6842fa79a430.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/d7664d18c4ddbad9c3a6a31b91f7c00fb0dde804608674a9860ee50f33e54708.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/d9072c318b819b7c90a0f7e9cc0b6413b4dbeb8e9859898e53d75ea882fcde99.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/db16a983bc08a05f0439cc61ca0840e49e1d8400eef678909f16c032a418a3d6.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/dc249829767b8abcbc3677e0b07b6d3ecbfdfe6d08cfe23a665eb33373a9aa9d.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/e242c583c2dbc2784f0fcf513523975f7d5df447e106c1c17e49e8578a6fc3ed.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/eac5f1296513e69e4b96f750ddccd4d0264e2bae4e4c449144e83274a48698d9.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/ed57202cb79649bb716400436590245547df241988fc7c8e1d85d132299542d2.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/f125bf72e773a14cdaebd0c343e80adb909d12e317ee5c00cd4a57442fbe2c62.json +1 -0
- xinference/web/ui/node_modules/.cache/babel-loader/f91af913d7f91c410719ab13136aaed3aaf0f8dda06652f25c42cb5231587398.json +1 -0
- xinference/web/ui/node_modules/.package-lock.json +67 -3
- xinference/web/ui/node_modules/@babel/runtime/package.json +592 -538
- xinference/web/ui/node_modules/html-parse-stringify/package.json +50 -0
- xinference/web/ui/node_modules/i18next/dist/esm/package.json +1 -0
- xinference/web/ui/node_modules/i18next/package.json +129 -0
- xinference/web/ui/node_modules/react-i18next/.eslintrc.json +74 -0
- xinference/web/ui/node_modules/react-i18next/dist/es/package.json +1 -0
- xinference/web/ui/node_modules/react-i18next/package.json +162 -0
- xinference/web/ui/node_modules/void-elements/package.json +34 -0
- xinference/web/ui/package-lock.json +69 -3
- xinference/web/ui/package.json +2 -0
- xinference/web/ui/src/locales/en.json +186 -0
- xinference/web/ui/src/locales/zh.json +186 -0
- {xinference-1.1.1.dist-info → xinference-1.2.0.dist-info}/METADATA +9 -6
- {xinference-1.1.1.dist-info → xinference-1.2.0.dist-info}/RECORD +102 -56
- xinference/web/ui/build/static/css/main.5061c4c3.css +0 -2
- xinference/web/ui/build/static/css/main.5061c4c3.css.map +0 -1
- xinference/web/ui/build/static/js/main.4eb4ee80.js +0 -3
- xinference/web/ui/build/static/js/main.4eb4ee80.js.map +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/07ce9e632e6aff24d7aa3ad8e48224433bbfeb0d633fca723453f1fcae0c9f1c.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/1130403f9e46f5738a23b45ac59b57de8f360c908c713e2c0670c2cce9bd367a.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/131091b25d26b17cdca187d7542a21475c211138d900cf667682260e76ef9463.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/1f269fb2a368363c1cb2237825f1dba093b6bdd8c44cc05954fd19ec2c1fff03.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/331312668fa8bd3d7401818f4a25fa98135d7f61371cd6bfff78b18cf4fbdd92.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/40f17338fc75ae095de7d2b4d8eae0d5ca0193a7e2bcece4ee745b22a7a2f4b7.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/4de9a6942c5f1749d6cbfdd54279699975f16016b182848bc253886f52ec2ec3.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/822586ed1077201b64b954f12f25e3f9b45678c1acbabe53d8af3ca82ca71f33.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/8c5eeb02f772d02cbe8b89c05428d0dd41a97866f75f7dc1c2164a67f5a1cf98.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/8d33354bd2100c8602afc3341f131a88cc36aaeecd5a4b365ed038514708e350.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/9375a35b05d56989b2755bf72161fa707c92f28569d33765a75f91a568fda6e9.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/a158a9ffa0c9b169aee53dd4a0c44501a596755b4e4f6ede7746d65a72e2a71f.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/c7bf40bab396765f67d0fed627ed3665890608b2d0edaa3e8cb7cfc96310db45.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/d6c643278a0b28320e6f33a60f5fb64c053997cbdc39a60e53ccc574688ade9e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/e42b72d4cc1ea412ebecbb8d040dc6c6bfee462c33903c2f1f3facb602ad742e.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/e64b7e8cedcf43d4c95deba60ec1341855c887705805bb62431693118b870c69.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f5039ddbeb815c51491a1989532006b96fc3ae49c6c60e3c097f875b4ae915ae.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/f72f011744c4649fabddca6f7a9327861ac0a315a89b1a2e62a39774e7863845.json +0 -1
- xinference/web/ui/node_modules/.cache/babel-loader/feabb04b4aa507102da0a64398a40818e878fd1df9b75dda8461b3e1e7ff3f11.json +0 -1
- /xinference/web/ui/build/static/js/{main.4eb4ee80.js.LICENSE.txt → main.1eb206d1.js.LICENSE.txt} +0 -0
- {xinference-1.1.1.dist-info → xinference-1.2.0.dist-info}/LICENSE +0 -0
- {xinference-1.1.1.dist-info → xinference-1.2.0.dist-info}/WHEEL +0 -0
- {xinference-1.1.1.dist-info → xinference-1.2.0.dist-info}/entry_points.txt +0 -0
- {xinference-1.1.1.dist-info → xinference-1.2.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ast":null,"code":"import _possibleConstructorReturn from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\";\nimport _defineProperty from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _toArray from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toArray.js\";\nimport _createForOfIteratorHelper from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js\";\nimport _assertThisInitialized from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\";\nimport _toConsumableArray from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _inherits from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/inherits.js\";\nimport _createSuper from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/createSuper.js\";\nimport _slicedToArray from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _objectSpread from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\";\nimport _classCallCheck from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/home/runner/work/inference/inference/xinference/web/ui/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nvar isString = function isString(obj) {\n return typeof obj === 'string';\n};\nvar defer = function defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nvar makeString = function makeString(object) {\n if (object == null) return '';\n return '' + object;\n};\nvar copy = function copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n};\nvar lastOfPathSeparatorRegExp = /###/g;\nvar cleanKey = function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n};\nvar canNotTraverseDeeper = function canNotTraverseDeeper(object) {\n return !object || isString(object);\n};\nvar getLastOfPath = function getLastOfPath(object, path, Empty) {\n var stack = !isString(path) ? path : path.split('.');\n var stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n var key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nvar setPath = function setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n var e = path[path.length - 1];\n var p = path.slice(0, path.length - 1);\n var last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = \"\".concat(p[p.length - 1], \".\").concat(e);\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[\"\".concat(last.k, \".\").concat(e)] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[\"\".concat(last.k, \".\").concat(e)] = newValue;\n};\nvar pushPath = function pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nvar getPath = function getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n if (!obj) return undefined;\n return obj[k];\n};\nvar getPathWithDefaults = function getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nvar deepExtend = function deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nvar regexEscape = function regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n};\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nvar escape = function escape(data) {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n return data;\n};\nvar RegExpCache = /*#__PURE__*/function () {\n function RegExpCache(capacity) {\n _classCallCheck(this, RegExpCache);\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n _createClass(RegExpCache, [{\n key: \"getRegExp\",\n value: function getRegExp(pattern) {\n var regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n var regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n }]);\n return RegExpCache;\n}();\nvar chars = [' ', ',', '?', '!', ';'];\nvar looksLikeObjectPathRegExpCache = new RegExpCache(20);\nvar looksLikeObjectPath = function looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = looksLikeObjectPathRegExpCache.getRegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nvar deepFind = function deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var tokens = path.split(keySeparator);\n var current = obj;\n for (var i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n var next = void 0;\n var nextPath = '';\n for (var j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nvar getCleanedCode = function getCleanedCode(code) {\n return code && code.replace('_', '-');\n};\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nvar Logger = /*#__PURE__*/function () {\n function Logger(concreteLogger) {\n _classCallCheck(this, Logger);\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n return Logger;\n}();\nvar baseLogger = new Logger();\nvar EventEmitter = /*#__PURE__*/function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n this.observers = {};\n }\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this4 = this;\n events.split(' ').forEach(function (event) {\n if (!_this4.observers[event]) _this4.observers[event] = new Map();\n var numListeners = _this4.observers[event].get(listener) || 0;\n _this4.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n var cloned = Array.from(this.observers[event].entries());\n cloned.forEach(function (_ref) {\n var _ref3 = _slicedToArray(_ref, 2),\n observer = _ref3[0],\n numTimesAdded = _ref3[1];\n for (var i = 0; i < numTimesAdded; i++) {\n observer.apply(void 0, args);\n }\n });\n }\n if (this.observers['*']) {\n var _cloned = Array.from(this.observers['*'].entries());\n _cloned.forEach(function (_ref2) {\n var _ref4 = _slicedToArray(_ref2, 2),\n observer = _ref4[0],\n numTimesAdded = _ref4[1];\n for (var i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event].concat(args));\n }\n });\n }\n }\n }]);\n return EventEmitter;\n}();\nvar ResourceStore = /*#__PURE__*/function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n var _super = _createSuper(ResourceStore);\n function ResourceStore(data) {\n var _this5;\n _classCallCheck(this, ResourceStore);\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n _this5 = _super.call(this);\n _this5.data = data || {};\n _this5.options = options;\n if (_this5.options.keySeparator === undefined) {\n _this5.options.keySeparator = '.';\n }\n if (_this5.options.ignoreJSONStructure === undefined) {\n _this5.options.ignoreJSONStructure = true;\n }\n return _this5;\n }\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n var _path;\n (_path = path).push.apply(_path, _toConsumableArray(key));\n } else if (isString(key) && keySeparator) {\n var _path2;\n (_path2 = path).push.apply(_path2, _toConsumableArray(key.split(keySeparator)));\n } else {\n path.push(key);\n }\n }\n }\n var result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (var m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n var path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread(_objectSpread({}, pack), resources);\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread(_objectSpread({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n return ResourceStore;\n}(EventEmitter);\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this6 = this;\n processors.forEach(function (processor) {\n if (_this6.processors[processor]) value = _this6.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\nvar checkedLoadedFor = {};\nvar Translator = /*#__PURE__*/function (_EventEmitter2) {\n _inherits(Translator, _EventEmitter2);\n var _super2 = _createSuper(Translator);\n function Translator(services) {\n var _this7;\n _classCallCheck(this, Translator);\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _this7 = _super2.call(this);\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this7));\n _this7.options = options;\n if (_this7.options.keySeparator === undefined) {\n _this7.options.keySeparator = '.';\n }\n _this7.logger = baseLogger.create('translator');\n return _this7;\n }\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key: key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this8 = this;\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = _objectSpread({}, options);\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: \"\".concat(namespace).concat(nsSeparator).concat(key),\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(res))) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread(_objectSpread({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n var resTypeIsArray = Array.isArray(res);\n var _copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n _copy[m] = this.translate(deepKey, _objectSpread(_objectSpread({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (_copy[m] === deepKey) _copy[m] = res[m];\n }\n }\n res = _copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && !isString(options.count);\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n var defaultValue = needsZeroSuffixLookup && options[\"defaultValue\".concat(this.options.pluralSeparator, \"zero\")] || options[\"defaultValue\".concat(defaultValueSuffix)] || options[\"defaultValue\".concat(defaultValueSuffixOrdinalFallback)] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread(_objectSpread({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (_this8.options.missingKeyHandler) {\n _this8.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this8.backendConnector && _this8.backendConnector.saveMissing) {\n _this8.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n _this8.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n var suffixes = _this8.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[\"defaultValue\".concat(_this8.options.pluralSeparator, \"zero\")] && suffixes.indexOf(\"\".concat(_this8.options.pluralSeparator, \"zero\")) < 0) {\n suffixes.push(\"\".concat(_this8.options.pluralSeparator, \"zero\"));\n }\n suffixes.forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread(_objectSpread({}, this.options.interpolation.defaultVariables), options), options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread(_objectSpread({}, options), {\n interpolation: _objectSpread(_objectSpread({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = isString(res) && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n var data = options.replace && !isString(options.replace) ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread(_objectSpread({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language || resolved.usedLng, options);\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = this.language || resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n return null;\n }\n return _this.translate.apply(_this, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: _objectSpread(_objectSpread({}, resolved), {}, {\n usedParams: this.getUsedParamsDetails(options)\n })\n }, options) : options, this);\n }\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this9 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (isString(keys)) keys = [keys];\n keys.forEach(function (k) {\n if (_this9.isValidLookup(found)) return;\n var extracted = _this9.extractFromKey(k, options);\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this9.options.fallbackNS) namespaces = namespaces.concat(_this9.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && !isString(options.count);\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this9.pluralResolver.shouldUseIntlApi();\n var needsContextHandling = options.context !== undefined && (isString(options.context) || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this9.languageUtils.toResolveHierarchy(options.lng || _this9.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this9.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this9.utils && _this9.utils.hasLoadedNamespace && !_this9.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n _this9.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(function (code) {\n if (_this9.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n if (_this9.i18nFormat && _this9.i18nFormat.addLookupKeys) {\n _this9.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this9.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this9.options.pluralSeparator, \"zero\");\n var ordinalPrefix = \"\".concat(_this9.options.pluralSeparator, \"ordinal\").concat(_this9.options.pluralSeparator);\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, _this9.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this9.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, _this9.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n var possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!_this9.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this9.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }, {\n key: \"getUsedParamsDetails\",\n value: function getUsedParamsDetails() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n var useOptionsReplaceForData = options.replace && !isString(options.replace);\n var data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = _objectSpread(_objectSpread({}, this.options.interpolation.defaultVariables), data);\n }\n if (!useOptionsReplaceForData) {\n data = _objectSpread({}, data);\n var _iterator = _createForOfIteratorHelper(optionsKeys),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n delete data[key];\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n return data;\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n }]);\n return Translator;\n}(EventEmitter);\nvar capitalize = function capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\nvar LanguageUtil = /*#__PURE__*/function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n if (typeof Intl !== 'undefined' && typeof Intl.getCanonicalLocales !== 'undefined') {\n try {\n var formattedCode = Intl.getCanonicalLocales(code)[0];\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n } catch (e) {}\n }\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this10 = this;\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n var cleanedLng = _this10.formatLanguageCode(code);\n if (!_this10.options.supportedLngs || _this10.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n var lngOnly = _this10.getLanguagePartFromCode(code);\n if (_this10.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this10.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this11 = this;\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n var addCode = function addCode(c) {\n if (!c) return;\n if (_this11.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this11.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this11.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n return LanguageUtil;\n}();\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar nonIntlVersions = ['v1', 'v2', 'v3'];\nvar intlVersions = ['v4'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nvar createRules = function createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n};\nvar PluralResolver = /*#__PURE__*/function () {\n function PluralResolver(languageUtils) {\n _classCallCheck(this, PluralResolver);\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n this.pluralRulesCache = {};\n }\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"clearCache\",\n value: function clearCache() {\n this.pluralRulesCache = {};\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n var cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n var type = options.ordinal ? 'ordinal' : 'cardinal';\n var cacheKey = JSON.stringify({\n cleanedCode: cleanedCode,\n type: type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n var rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type: type\n });\n } catch (err) {\n if (!code.match(/-|_/)) return;\n var lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this12 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this12.options.prepend).concat(options.ordinal ? \"ordinal\".concat(_this12.options.prepend) : '').concat(pluralCategory);\n });\n }\n return rule.numbers.map(function (number) {\n return _this12.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(options.ordinal ? \"ordinal\".concat(this.options.prepend) : '').concat(rule.select(count));\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this13 = this;\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n var returnSuffix = function returnSuffix() {\n return _this13.options.prepend && suffix.toString() ? _this13.options.prepend + suffix.toString() : suffix.toString();\n };\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n return PluralResolver;\n}();\nvar deepFindWithDefaults = function deepFindWithDefaults(data, defaultData, key) {\n var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nvar regexSafe = function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n};\nvar Interpolator = /*#__PURE__*/function () {\n function Interpolator() {\n _classCallCheck(this, Interpolator);\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n this.init(options);\n }\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var _options$interpolatio = options.interpolation,\n escape$1 = _options$interpolatio.escape,\n escapeValue = _options$interpolatio.escapeValue,\n useRawValueToEscape = _options$interpolatio.useRawValueToEscape,\n prefix = _options$interpolatio.prefix,\n prefixEscaped = _options$interpolatio.prefixEscaped,\n suffix = _options$interpolatio.suffix,\n suffixEscaped = _options$interpolatio.suffixEscaped,\n formatSeparator = _options$interpolatio.formatSeparator,\n unescapeSuffix = _options$interpolatio.unescapeSuffix,\n unescapePrefix = _options$interpolatio.unescapePrefix,\n nestingPrefix = _options$interpolatio.nestingPrefix,\n nestingPrefixEscaped = _options$interpolatio.nestingPrefixEscaped,\n nestingSuffix = _options$interpolatio.nestingSuffix,\n nestingSuffixEscaped = _options$interpolatio.nestingSuffixEscaped,\n nestingOptionsSeparator = _options$interpolatio.nestingOptionsSeparator,\n maxReplaces = _options$interpolatio.maxReplaces,\n alwaysFormat = _options$interpolatio.alwaysFormat;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var getOrResetRegExp = function getOrResetRegExp(existingRegExp, pattern) {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix));\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix));\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix));\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this14 = this;\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this14.formatSeparator) < 0) {\n var path = deepFindWithDefaults(data, defaultData, key, _this14.options.keySeparator, _this14.options.ignoreJSONStructure);\n return _this14.alwaysFormat ? _this14.format(path, undefined, lng, _objectSpread(_objectSpread(_objectSpread({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n var p = key.split(_this14.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this14.formatSeparator).trim();\n return _this14.format(deepFindWithDefaults(data, defaultData, k, _this14.options.keySeparator, _this14.options.ignoreJSONStructure), f, lng, _objectSpread(_objectSpread(_objectSpread({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this14.escapeValue ? regexSafe(_this14.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this14.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n value = '';\n }\n } else if (!isString(value) && !_this14.useRawValueToEscape) {\n value = makeString(value);\n }\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= _this14.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this15 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n var clonedOptions;\n var handleHasOptions = function handleHasOptions(key, inheritedOptions) {\n var sep = _this15.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = _this15.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread(_objectSpread({}, inheritedOptions), clonedOptions);\n } catch (e) {\n _this15.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(_this15.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n clonedOptions = _objectSpread({}, options);\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n var doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this15.format(v, f, options.lng, _objectSpread(_objectSpread({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n }]);\n return Interpolator;\n}();\nvar parseFormatStr = function parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (opt) {\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n var trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n};\nvar createCachedFormatter = function createCachedFormatter(fn) {\n var cache = {};\n return function (val, lng, options) {\n var optForCache = options;\n if (options && options.interpolationkey && options.formatParams && options.formatParams[options.interpolationkey] && options[options.interpolationkey]) {\n optForCache = _objectSpread(_objectSpread({}, optForCache), {}, _defineProperty({}, options.interpolationkey, undefined));\n }\n var key = lng + JSON.stringify(optForCache);\n var formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n};\nvar Formatter = /*#__PURE__*/function () {\n function Formatter() {\n _classCallCheck(this, Formatter);\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread(_objectSpread({}, opt), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread({}, opt));\n return function (val) {\n return formatter.format(val, opt.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.ListFormat(lng, _objectSpread({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng) {\n var _this16 = this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var formats = _format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(function (f) {\n return f.indexOf(')') > -1;\n })) {\n var lastIndex = formats.findIndex(function (f) {\n return f.indexOf(')') > -1;\n });\n formats[0] = [formats[0]].concat(_toConsumableArray(formats.splice(1, lastIndex))).join(this.formatSeparator);\n }\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n if (_this16.formats[formatName]) {\n var formatted = mem;\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this16.formats[formatName](mem, l, _objectSpread(_objectSpread(_objectSpread({}, formatOptions), options), valOptions));\n } catch (error) {\n _this16.logger.warn(error);\n }\n return formatted;\n } else {\n _this16.logger.warn(\"there was no format function for \".concat(formatName));\n }\n return mem;\n }, value);\n return result;\n }\n }]);\n return Formatter;\n}();\nvar removePending = function removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nvar Connector = /*#__PURE__*/function (_EventEmitter3) {\n _inherits(Connector, _EventEmitter3);\n var _super3 = _createSuper(Connector);\n function Connector(backend, store, services) {\n var _this17;\n _classCallCheck(this, Connector);\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n _this17 = _super3.call(this);\n _this17.backend = backend;\n _this17.store = store;\n _this17.services = services;\n _this17.languageUtils = services.languageUtils;\n _this17.options = options;\n _this17.logger = baseLogger.create('backendConnector');\n _this17.waitingReads = [];\n _this17.maxParallelReads = options.maxParallelReads || 10;\n _this17.readingCalls = 0;\n _this17.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this17.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this17.state = {};\n _this17.queue = [];\n if (_this17.backend && _this17.backend.init) {\n _this17.backend.init(services, options.backend, options);\n }\n return _this17;\n }\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this18 = this;\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n if (!options.reload && _this18.store.hasResourceBundle(lng, ns)) {\n _this18.state[name] = 2;\n } else if (_this18.state[name] < 0) ;else if (_this18.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this18.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(function (n) {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this19 = this;\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n this.readingCalls++;\n var resolver = function resolver(err, data) {\n _this19.readingCalls--;\n if (_this19.waitingReads.length > 0) {\n var next = _this19.waitingReads.shift();\n _this19.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < _this19.maxRetries) {\n setTimeout(function () {\n _this19.read.call(_this19, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n var fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n var r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return resolver(null, data);\n }).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this20 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(function (name) {\n _this20.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this21 = this;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this21.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this21.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n _this21.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n var opts = _objectSpread(_objectSpread({}, options), {}, {\n isUpdate: isUpdate\n });\n var fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n var r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return clb(null, data);\n }).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n return Connector;\n}(EventEmitter);\nvar get = function get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function overloadTranslationOptionHandler(args) {\n var ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n};\nvar transformOptions = function transformOptions(options) {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n};\nvar noop = function noop() {};\nvar bindMemberFunctions = function bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nvar I18n = /*#__PURE__*/function (_EventEmitter4) {\n _inherits(I18n, _EventEmitter4);\n var _super4 = _createSuper(I18n);\n function I18n() {\n var _this22;\n _classCallCheck(this, I18n);\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n _this22 = _super4.call(this);\n _this22.options = transformOptions(options);\n _this22.services = {};\n _this22.logger = baseLogger;\n _this22.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this22));\n if (callback && !_this22.isInitialized && !options.isClone) {\n if (!_this22.options.initImmediate) {\n _this22.init(options, callback);\n return _possibleConstructorReturn(_this22, _assertThisInitialized(_this22));\n }\n setTimeout(function () {\n _this22.init(options, callback);\n }, 0);\n }\n return _this22;\n }\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this23 = this;\n var _this = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n var defOpts = get();\n this.options = _objectSpread(_objectSpread(_objectSpread({}, defOpts), this.options), transformOptions(options));\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread(_objectSpread({}, defOpts.interpolation), this.options.interpolation);\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n var createClassOnDemand = function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n var formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit.apply(_this, [event].concat(args));\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit.apply(_this, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this23);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this23[fcName] = function () {\n var _this$store;\n return (_this$store = _this.store)[fcName].apply(_this$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this23[fcName] = function () {\n var _this$store2;\n (_this$store2 = _this.store)[fcName].apply(_this$store2, arguments);\n return _this;\n };\n });\n var deferred = defer();\n var load = function load() {\n var finish = function finish(err, t) {\n _this23.isInitializing = false;\n if (_this23.isInitialized && !_this23.initializedStoreOnce) _this23.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this23.isInitialized = true;\n if (!_this23.options.isClone) _this23.logger.log('initialized', _this23.options);\n _this23.emit('initialized', _this23.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (_this23.languages && _this23.options.compatibilityAPI !== 'v1' && !_this23.isInitialized) return finish(null, _this23.t.bind(_this23));\n _this23.changeLanguage(_this23.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this24 = this;\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n var toLoad = [];\n var append = function append(lng) {\n if (!lng) return;\n if (lng === 'cimode') return;\n var lngs = _this24.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this24.resolvedLanguage && _this24.language) _this24.setResolvedLanguage(_this24.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this25 = this;\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n var setLngProps = function setLngProps(l) {\n _this25.language = l;\n _this25.languages = _this25.services.languageUtils.toResolveHierarchy(l);\n _this25.resolvedLanguage = undefined;\n _this25.setResolvedLanguage(l);\n };\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n _this25.translator.changeLanguage(l);\n _this25.isLanguageChangingTo = undefined;\n _this25.emit('languageChanged', l);\n _this25.logger.log('languageChanged', l);\n } else {\n _this25.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t.apply(_this2, arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t.apply(_this2, arguments);\n });\n };\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this25.services.languageDetector) lngs = [];\n var l = isString(lngs) ? lngs : _this25.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!_this25.language) {\n setLngProps(l);\n }\n if (!_this25.translator.language) _this25.translator.changeLanguage(l);\n if (_this25.services.languageDetector && _this25.services.languageDetector.cacheUserLanguage) _this25.services.languageDetector.cacheUserLanguage(l);\n }\n _this25.loadResources(l, function (err) {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n var fixedT = function fixedT(key, opts) {\n var options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n if (options.keyPrefix !== '') options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this3.options.keySeparator || '.';\n var resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(function (k) {\n return \"\".concat(options.keyPrefix).concat(keySeparator).concat(k);\n });\n } else {\n resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n }\n return _this3.t(resultKey, options);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this26 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n var lng = options.lng || this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this26.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this27 = this;\n var deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(function (n) {\n if (_this27.options.ns.indexOf(n) < 0) _this27.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var _this28 = this;\n var deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0 && _this28.services.languageUtils.isSupportedCode(lng);\n });\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this29 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n var mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, this.options), options), {\n isClone: true\n });\n var clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this29[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }], [{\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }]);\n return I18n;\n}(EventEmitter);\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\nvar createInstance = instance.createInstance;\nvar dir = instance.dir;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };","map":{"version":3,"names":["isString","obj","defer","res","rej","promise","Promise","resolve","reject","makeString","object","copy","a","s","t","forEach","m","lastOfPathSeparatorRegExp","cleanKey","key","indexOf","replace","canNotTraverseDeeper","getLastOfPath","path","Empty","stack","split","stackIndex","length","Object","prototype","hasOwnProperty","call","k","setPath","newValue","_getLastOfPath","undefined","e","p","slice","last","concat","pushPath","_getLastOfPath2","push","getPath","_getLastOfPath3","getPathWithDefaults","data","defaultData","value","deepExtend","target","source","overwrite","prop","String","regexEscape","str","_entityMap","escape","RegExpCache","capacity","_classCallCheck","regExpMap","Map","regExpQueue","_createClass","getRegExp","pattern","regExpFromCache","get","regExpNew","RegExp","delete","shift","set","chars","looksLikeObjectPathRegExpCache","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","filter","c","r","map","join","matched","test","ki","substring","deepFind","arguments","tokens","current","i","next","nextPath","j","getCleanedCode","code","consoleLogger","type","log","args","output","warn","error","console","apply","Logger","concreteLogger","options","init","prefix","logger","debug","_len","Array","_key","forward","_len2","_key2","_len3","_key3","deprecate","_len4","_key4","lvl","debugOnly","create","moduleName","_objectSpread","clone","baseLogger","EventEmitter","observers","on","events","listener","_this4","event","numListeners","off","emit","cloned","from","entries","_ref","_ref3","_slicedToArray","observer","numTimesAdded","_ref2","_ref4","ResourceStore","_EventEmitter","_inherits","_super","_createSuper","_this5","ns","defaultNS","ignoreJSONStructure","addNamespaces","removeNamespaces","index","splice","getResource","lng","isArray","_path","_toConsumableArray","_path2","result","addResource","silent","addResources","resources","addResourceBundle","deep","skipCopy","pack","JSON","parse","stringify","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","getDataByLanguage","hasLanguageSomeTranslations","n","keys","find","v","toJSON","postProcessor","processors","addPostProcessor","module","name","handle","translator","_this6","processor","process","checkedLoadedFor","Translator","_EventEmitter2","_super2","services","_this7","_assertThisInitialized","changeLanguage","language","exists","interpolation","resolved","extractFromKey","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","match","interpolator","nestingRegexp","parts","translate","lastKey","_this8","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","usedKey","exactUsedKey","usedLng","usedNS","usedParams","getUsedParamsDetails","resUsedKey","resExactUsedKey","resType","toString","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","needsZeroSuffixLookup","shouldUseIntlApi","defaultValue","pluralSeparator","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","l","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","suffixes","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this","defaultVariables","skipInterpolation","skipOnVariables","nestBef","nb","interpolate","na","nestAft","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this9","found","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","contextSeparator","possibleKey","pop","returnNull","returnEmptyString","resourceStore","optionsKeys","useOptionsReplaceForData","_iterator","_createForOfIteratorHelper","_step","done","err","f","option","capitalize","string","charAt","toUpperCase","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","Intl","getCanonicalLocales","formattedCode","lowerCaseLng","specialCases","part","cleanCode","isSupportedCode","load","nonExplicitSupportedLngs","getBestMatchFromCodes","_this10","cleanedLng","lngOnly","supportedLng","fallbacks","default","fallbackCode","_this11","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","_","Number","nonIntlVersions","intlVersions","suffixesOrder","zero","one","two","few","many","other","createRules","rules","numbers","plurals","PluralResolver","compatibilityJSON","includes","PluralRules","pluralRulesCache","addRule","clearCache","getRule","cleanedCode","cacheKey","rule","lngPart","needsPlural","resolvedOptions","pluralCategories","getPluralFormsOfKey","_this12","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","number","select","getSuffixRetroCompatible","_this13","idx","noAbs","Math","abs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","regexSafe","val","Interpolator","format","escapeValue","_options$interpolatio","escape$1","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","getOrResetRegExp","existingRegExp","lastIndex","regexp","regexpUnescape","_this14","replaces","handleFormat","interpolationkey","trim","missingInterpolationHandler","todos","regex","safeValue","todo","exec","matchedVar","temp","_this15","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","elem","reduce","parseFormatStr","formatStr","formatName","formatOptions","optStr","currency","range","opts","opt","_opt$split","_opt$split2","_toArray","rest","trimmedKey","isNaN","parseInt","createCachedFormatter","fn","cache","optForCache","formatParams","_defineProperty","formatter","Formatter","formats","NumberFormat","style","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","list","ListFormat","add","addCached","_this16","findIndex","mem","_parseFormatStr","formatted","valOptions","locale","removePending","q","pending","pendingCount","Connector","_EventEmitter3","_super3","backend","store","_this17","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","state","queue","queueLoad","languages","callback","_this18","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","loadedKeys","read","fcName","_this19","tried","wait","resolver","setTimeout","bind","then","catch","prepareLoading","_this20","loadOne","_this21","fallbackValue","isUpdate","clb","initImmediate","preload","partialBundledLanguages","ret","tDescription","transformOptions","noop","bindMemberFunctions","inst","mems","getOwnPropertyNames","getPrototypeOf","I18n","_EventEmitter4","_super4","_this22","modules","external","isInitialized","isClone","_possibleConstructorReturn","_this23","isInitializing","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this$store","storeApiChained","_this$store2","deferred","finish","initializedStoreOnce","loadResources","_this24","usedCallback","append","resolvedLanguage","setResolvedLanguage","reloadResources","use","Error","li","lngInLngs","_this25","_this2","isLanguageChangingTo","setLngProps","setLng","cacheUserLanguage","async","detect","getFixedT","keyPrefix","_this3","fixedT","resultKey","_this$translator","_this$translator2","setDefaultNamespace","_this26","lastLng","loadNotPending","loadState","precheck","preResult","loadNamespaces","_this27","loadLanguages","_this28","preloaded","newLngs","dir","rtlLngs","cloneInstance","_this29","forkResourceStore","mergedOptions","membersToCopy","createInstance","instance"],"sources":["/home/runner/work/inference/inference/xinference/web/ui/node_modules/i18next/dist/esm/i18next.js"],"sourcesContent":["const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = function (obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code && code.replace('_', '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(res))) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(res);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && !isString(options.count);\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && !isString(options.replace) ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language || resolved.usedLng, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = this.language || resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && !isString(options.count);\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (isString(options.context) || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nconst capitalize = string => string.charAt(0).toUpperCase() + string.slice(1);\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n if (typeof Intl !== 'undefined' && typeof Intl.getCanonicalLocales !== 'undefined') {\n try {\n let formattedCode = Intl.getCanonicalLocales(code)[0];\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n } catch (e) {}\n }\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: n => Number(n > 1),\n 2: n => Number(n != 1),\n 3: n => 0,\n 4: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 5: n => Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5),\n 6: n => Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2),\n 7: n => Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 8: n => Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3),\n 9: n => Number(n >= 2),\n 10: n => Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4),\n 11: n => Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3),\n 12: n => Number(n % 10 != 1 || n % 100 == 11),\n 13: n => Number(n !== 0),\n 14: n => Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3),\n 15: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 16: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2),\n 17: n => Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1),\n 18: n => Number(n == 0 ? 0 : n == 1 ? 1 : 2),\n 19: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3),\n 20: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2),\n 21: n => Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0),\n 22: n => Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3)\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst createRules = () => {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n};\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n this.pluralRulesCache = {};\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (!code.match(/-|_/)) return;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nconst deepFindWithDefaults = function (data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (val, lng, options) => {\n let optForCache = options;\n if (options && options.interpolationkey && options.formatParams && options.formatParams[options.interpolationkey] && options[options.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [options.interpolationkey]: undefined\n };\n }\n const key = lng + JSON.stringify(optForCache);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n};\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = isString(lngs) ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n if (options.keyPrefix !== '') options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|