@openmrs/esm-framework 5.0.2 → 5.0.3-pre.826
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.
- package/.turbo/turbo-build.log +13 -13
- package/dist/530.openmrs-esm-framework.js.map +1 -1
- package/dist/585.openmrs-esm-framework.js.map +1 -1
- package/dist/645.openmrs-esm-framework.js.map +1 -1
- package/dist/71.openmrs-esm-framework.js.map +1 -1
- package/dist/710.openmrs-esm-framework.js.map +1 -1
- package/dist/735.openmrs-esm-framework.js.map +1 -1
- package/dist/788.openmrs-esm-framework.js.map +1 -1
- package/dist/openmrs-esm-framework.js +1 -1
- package/dist/openmrs-esm-framework.js.map +1 -1
- package/docs/API.md +2 -2
- package/package.json +14 -14
- package/webpack.config.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"585.openmrs-esm-framework.js","mappings":"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","sources":["webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://_openmrs_esm_framework/../../../node_modules/i18next/dist/esm/i18next.js","webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://_openmrs_esm_framework/../../../node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n return target;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\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};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\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: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\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\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\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\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\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 (typeof args[0] === 'string') 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({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\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\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction 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}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || 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\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n return _this;\n }\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\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 path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n return getPath(this.data, path);\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 = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\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\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\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 };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\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\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({}, {}, 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: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\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 _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\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 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\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\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\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\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 = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\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({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\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 && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _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\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\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\n var send = function send(l, k, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language).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\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 && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n }));\n var skipOnVariables = options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\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\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\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\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: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\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 (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.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\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.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: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\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\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.supportedLngs || false;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(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 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 (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\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\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n this.logger.deprecate('languageUtils.isWhitelisted', 'function \"isWhitelisted\" will be renamed to \"isSupportedCode\" in the next major - please make sure to rename it\\'s usage asap.');\n return this.isSupportedCode(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\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\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 (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') 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 _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && 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 (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\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', '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', 'kk', '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};\n\nfunction 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}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n return this.getSuffixes(code).map(function (suffix) {\n return key + suffix;\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var rule = this.getRule(code);\n\n if (!rule) {\n return [];\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\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\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\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\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\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 iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.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 regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, options);\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && 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 _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n str = str.replace(match[0], todo.safeValue(value));\n todo.regex.lastIndex = 0;\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.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 = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].includes(this.formatSeparator) && !/{.*}/.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\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, options);\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\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.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\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\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: 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\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n\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 _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\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\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.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 _this5 = this;\n\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) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.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\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\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n whitelist: false,\n nonExplicitWhitelist: 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: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\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\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: false\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.whitelist) {\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n options.supportedLngs = options.whitelist;\n }\n\n if (options.nonExplicitWhitelist) {\n options.nonExplicitSupportedLngs = options.nonExplicitWhitelist;\n }\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (options.whitelist && !options.supportedLngs) {\n this.logger.deprecate('whitelist', 'option \"whitelist\" will be renamed to \"supportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n if (options.nonExplicitWhitelist && !options.nonExplicitSupportedLngs) {\n this.logger.deprecate('whitelist', 'options \"nonExplicitWhitelist\" will be renamed to \"nonExplicitSupportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\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\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 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\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\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\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\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\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\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\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\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\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\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 this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\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\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, 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 return _this5.t(key, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\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\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 _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\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\n var lng = 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\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) 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 _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.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 deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\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.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'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\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 key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\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\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}"],"names":["_objectSpread","target","i","arguments","length","source","Object","ownKeys","keys","getOwnPropertySymbols","push","apply","filter","sym","getOwnPropertyDescriptor","enumerable","forEach","key","defineProperty","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","call","TypeError","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","bind","__proto__","_setPrototypeOf","p","_inherits","subClass","superClass","prototype","create","constructor","value","writable","configurable","consoleLogger","type","log","args","this","output","warn","error","console","baseLogger","Logger","concreteLogger","options","undefined","init","prefix","logger","debug","bool","_len","Array","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","concat","moduleName","EventEmitter","observers","events","listener","_this","split","event","l","observer","defer","res","rej","promise","Promise","resolve","reject","makeString","object","getLastOfPath","path","Empty","cleanKey","indexOf","replace","canNotTraverseDeeper","stack","shift","hasOwnProperty","obj","k","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","data","defaultData","deepExtend","overwrite","prop","String","regexEscape","str","_entityMap","s","isIE10","window","navigator","userAgent","ResourceStore","_EventEmitter","ns","defaultNS","keySeparator","index","splice","lng","silent","addNamespaces","emit","resources","m","toString","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","module","name","handle","translator","processor","process","checkedLoadedFor","Translator","services","a","t","language","interpolation","resolved","nsSeparator","namespaces","match","interpolator","nestingRegexp","parts","join","lastKey","_this2","overloadTranslationOptionHandler","isArray","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","copy","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","fallbackValue","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","parse","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","defaultVariables","interpolate","na","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","code","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","pop","returnNull","returnEmptyString","resourceStore","option","substring","capitalize","string","charAt","toUpperCase","slice","LanguageUtil","whitelist","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","map","part","cleanCode","deprecate","isSupportedCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","lngOnly","find","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","c","fc","sets","nr","_rulesPluralsTypes","n","Number","PluralResolver","rules","set","numbers","plurals","rule","getRule","number","idx","noAbs","Math","abs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","format","escapeValue","iOpts","escape","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","RegExp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","trim","f","missingInterpolationHandler","regex","safeValue","todo","exec","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","JSON","e","formatters","doReduce","includes","test","r","elem","reduce","v","Connector","backend","store","state","queue","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","err","addResourceBundle","q","_getLastOfPath2","arr","what","remove","done","fcName","tried","wait","setTimeout","read","queueLoad","loadOne","prepareLoading","_this5","isUpdate","transformOptions","nonExplicitWhitelist","noop","I18n","modules","external","isInitialized","isClone","initImmediate","createClassOnDemand","ClassOrObject","preload","pluralSeparator","partialBundledLanguages","ret","tDescription","_format","lu","on","languageDetector","detection","_this2$store","_this2$store2","deferred","finish","changeLanguage","usedCallback","append","Error","isLanguageChangingTo","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","fixedT","opts","rest","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","clone","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_defineProperty","_typeof","Symbol","iterator"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"585.openmrs-esm-framework.js","mappings":"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","sources":["webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://@openmrs/esm-framework/../../../node_modules/i18next/dist/esm/i18next.js","webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://@openmrs/esm-framework/../../../node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n return target;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\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};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\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: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\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\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\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\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\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 (typeof args[0] === 'string') 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({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\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\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction 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}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || 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\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n return _this;\n }\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\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 path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n return getPath(this.data, path);\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 = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\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\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\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 };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\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\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({}, {}, 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: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\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 _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\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 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\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\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\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\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 = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\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({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\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 && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _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\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\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\n var send = function send(l, k, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language).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\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 && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n }));\n var skipOnVariables = options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\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\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\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\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: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\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 (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.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\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.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: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\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\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.supportedLngs || false;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(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 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 (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\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\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n this.logger.deprecate('languageUtils.isWhitelisted', 'function \"isWhitelisted\" will be renamed to \"isSupportedCode\" in the next major - please make sure to rename it\\'s usage asap.');\n return this.isSupportedCode(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\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\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 (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') 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 _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && 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 (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\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', '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', 'kk', '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};\n\nfunction 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}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n return this.getSuffixes(code).map(function (suffix) {\n return key + suffix;\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var rule = this.getRule(code);\n\n if (!rule) {\n return [];\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\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\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\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\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\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 iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.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 regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, options);\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && 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 _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n str = str.replace(match[0], todo.safeValue(value));\n todo.regex.lastIndex = 0;\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.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 = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].includes(this.formatSeparator) && !/{.*}/.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\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, options);\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\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.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\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\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: 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\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n\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 _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\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\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.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 _this5 = this;\n\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) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.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\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\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n whitelist: false,\n nonExplicitWhitelist: 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: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\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\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: false\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.whitelist) {\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n options.supportedLngs = options.whitelist;\n }\n\n if (options.nonExplicitWhitelist) {\n options.nonExplicitSupportedLngs = options.nonExplicitWhitelist;\n }\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (options.whitelist && !options.supportedLngs) {\n this.logger.deprecate('whitelist', 'option \"whitelist\" will be renamed to \"supportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n if (options.nonExplicitWhitelist && !options.nonExplicitSupportedLngs) {\n this.logger.deprecate('whitelist', 'options \"nonExplicitWhitelist\" will be renamed to \"nonExplicitSupportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\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\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 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\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\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\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\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\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\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\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\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\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\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 this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\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\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, 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 return _this5.t(key, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\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\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 _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\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\n var lng = 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\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) 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 _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.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 deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\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.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'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\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 key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\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\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}"],"names":["_objectSpread","target","i","arguments","length","source","Object","ownKeys","keys","getOwnPropertySymbols","push","apply","filter","sym","getOwnPropertyDescriptor","enumerable","forEach","key","defineProperty","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","call","TypeError","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","bind","__proto__","_setPrototypeOf","p","_inherits","subClass","superClass","prototype","create","constructor","value","writable","configurable","consoleLogger","type","log","args","this","output","warn","error","console","baseLogger","Logger","concreteLogger","options","undefined","init","prefix","logger","debug","bool","_len","Array","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","concat","moduleName","EventEmitter","observers","events","listener","_this","split","event","l","observer","defer","res","rej","promise","Promise","resolve","reject","makeString","object","getLastOfPath","path","Empty","cleanKey","indexOf","replace","canNotTraverseDeeper","stack","shift","hasOwnProperty","obj","k","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","data","defaultData","deepExtend","overwrite","prop","String","regexEscape","str","_entityMap","s","isIE10","window","navigator","userAgent","ResourceStore","_EventEmitter","ns","defaultNS","keySeparator","index","splice","lng","silent","addNamespaces","emit","resources","m","toString","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","module","name","handle","translator","processor","process","checkedLoadedFor","Translator","services","a","t","language","interpolation","resolved","nsSeparator","namespaces","match","interpolator","nestingRegexp","parts","join","lastKey","_this2","overloadTranslationOptionHandler","isArray","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","copy","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","fallbackValue","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","parse","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","defaultVariables","interpolate","na","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","code","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","pop","returnNull","returnEmptyString","resourceStore","option","substring","capitalize","string","charAt","toUpperCase","slice","LanguageUtil","whitelist","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","map","part","cleanCode","deprecate","isSupportedCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","lngOnly","find","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","c","fc","sets","nr","_rulesPluralsTypes","n","Number","PluralResolver","rules","set","numbers","plurals","rule","getRule","number","idx","noAbs","Math","abs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","format","escapeValue","iOpts","escape","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","RegExp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","trim","f","missingInterpolationHandler","regex","safeValue","todo","exec","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","JSON","e","formatters","doReduce","includes","test","r","elem","reduce","v","Connector","backend","store","state","queue","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","err","addResourceBundle","q","_getLastOfPath2","arr","what","remove","done","fcName","tried","wait","setTimeout","read","queueLoad","loadOne","prepareLoading","_this5","isUpdate","transformOptions","nonExplicitWhitelist","noop","I18n","modules","external","isInitialized","isClone","initImmediate","createClassOnDemand","ClassOrObject","preload","pluralSeparator","partialBundledLanguages","ret","tDescription","_format","lu","on","languageDetector","detection","_this2$store","_this2$store2","deferred","finish","changeLanguage","usedCallback","append","Error","isLanguageChangingTo","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","fixedT","opts","rest","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","clone","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_defineProperty","_typeof","Symbol","iterator"],"sourceRoot":""}
|