{"version":3,"sources":["webpack:///./node_modules/i18next/dist/esm/i18next.js"],"names":["consoleLogger","type","log","args","this","output","warn","error","console","apply","baseLogger","Logger","concreteLogger","options","arguments","length","undefined","init","key","value","prefix","logger","debug","bool","_len","Array","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","concat","moduleName","EventEmitter","observers","events","listener","_this","split","forEach","event","push","filter","l","cloned","observer","_cloned","defer","res","rej","promise","Promise","resolve","reject","makeString","object","copy","a","s","t","m","getLastOfPath","path","Empty","cleanKey","indexOf","replace","canNotTraverseDeeper","stack","shift","Object","prototype","hasOwnProperty","call","obj","k","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","data","defaultData","deepExtend","target","source","overwrite","prop","String","regexEscape","str","_entityMap","escape","isIE10","window","navigator","userAgent","deepFind","keySeparator","paths","current","i","j","p","slice","join","mix","joinedPath","ResourceStore","_EventEmitter","ns","defaultNS","ignoreJSONStructure","index","splice","lng","result","silent","addNamespaces","emit","resources","toString","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","module","name","handle","translator","processor","process","checkedLoadedFor","Translator","services","create","language","interpolation","resolved","nsSeparator","namespaces","match","interpolator","nestingRegexp","parts","keys","lastKey","_this2","overloadTranslationOptionHandler","isArray","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","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","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","1","n","Number","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","createRules","rules","set","numbers","plurals","PluralResolver","rule","getRule","number","idx","noAbs","Math","abs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","format","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","RegExp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","interpolationkey","trim","f","missingInterpolationHandler","regex","safeValue","todo","exec","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","JSON","e","formatters","doReduce","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","get","initImmediate","nonExplicitWhitelist","preload","pluralSeparator","partialBundledLanguages","ret","tDescription","_format","transformOptions","noop","i18next","I18n","modules","external","isInitialized","isClone","createClassOnDemand","ClassOrObject","lu","bind","on","languageDetector","detection","storeApi","_this2$store","storeApiChained","_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","membersToCopy"],"mappings":"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","file":"yarn.i18next.becc34fe6fa559c58c21.js","sourcesContent":["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\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\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 if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\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 ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\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 var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = 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', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\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, _objectSpread({}, options, data, {\n interpolationkey: key\n })) : 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, _objectSpread({}, options, data, {\n interpolationkey: k\n }));\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 var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += safeValue.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\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].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\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, _objectSpread({}, options, {\n interpolationkey: match[1].trim()\n }));\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 if (!lng && !lngs && _this4.services.languageDetector) 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 key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n"],"sourceRoot":""}