{"version":3,"file":"i18n-D2sowRbl.js","sources":["../../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../../node_modules/i18next/dist/esm/i18next.js","../../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../../node_modules/i18next-xhr-backend/dist/esm/i18nextXHRBackend.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../node_modules/react-i18next/dist/es/unescape.js","../../node_modules/react-i18next/dist/es/context.js","../../node_modules/react-i18next/dist/es/utils.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../node_modules/react-i18next/dist/es/useTranslation.js","../../node_modules/react-i18next/dist/es/withTranslation.js"],"sourcesContent":["import defineProperty from \"./defineProperty.js\";\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? Object(arguments[r]) : {},\n o = Object.keys(t);\n \"function\" == typeof Object.getOwnPropertySymbols && o.push.apply(o, Object.getOwnPropertySymbols(t).filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), o.forEach(function (r) {\n defineProperty(e, r, t[r]);\n });\n }\n return e;\n}\nexport { _objectSpread as default };","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 (!current) return undefined;\n\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\n if (key === undefined || key === null) {\n return false;\n }\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 if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread({}, options, {\n ns: namespaces\n })) : \"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 missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\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 : resForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : resForMissing, 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 || usedDefault) && 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' || typeof options.context === 'number') && 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.initializedStoreOnce) _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, keyPrefix) {\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 var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = keyPrefix ? \"\".concat(keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, 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 fixedT.keyPrefix = keyPrefix;\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","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = \"\".concat(name, \"=\").concat(value);\n\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += \"; Max-Age=\".concat(Math.floor(maxAge));\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += \"; Domain=\".concat(opt.domain);\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += \"; Path=\".concat(opt.path);\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += \"; Expires=\".concat(opt.expires.toUTCString());\n }\n\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n\n case 'lax':\n str += '; SameSite=Lax';\n break;\n\n case 'strict':\n str += '; SameSite=Strict';\n break;\n\n case 'none':\n str += '; SameSite=None';\n break;\n\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n};\n\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = \"\".concat(name, \"=\");\n var ca = document.cookie.split(';');\n\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var search = window.location.search;\n\n if (!window.location.search && window.location.hash && window.location.hash.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n\n var query = search.substring(1);\n var params = query.split('&');\n\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n\n return found;\n }\n};\n\nvar hasLocalStorageSupport = null;\n\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n\n return hasLocalStorageSupport;\n};\n\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\n\nvar hasSessionStorageSupport = null;\n\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n\n return hasSessionStorageSupport;\n};\n\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n\n return found;\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n // If given get the subdomain index else 1\n var lookupFromSubdomainIndex = typeof options.lookupFromSubdomainIndex === 'number' ? options.lookupFromSubdomainIndex + 1 : 1; // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group macht which sould be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n\n var language = typeof window !== 'undefined' && window.location && window.location.hostname && window.location.hostname.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i); // if there is no match (null) return undefined\n\n if (!language) return undefined; // return the given group match\n\n return language[lookupFromSubdomainIndex];\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'] // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n };\n}\n\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Browser);\n\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n\n _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults()); // backwards compatibility\n\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n\n return Browser;\n}();\n\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\nfunction addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '',\n e = encodeURIComponent; // Must encode data\n\n for (var paramName in params) {\n queryString += '&' + e(paramName) + '=' + e(params[paramName]);\n }\n\n if (!queryString) {\n return url;\n }\n\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n\n return url;\n} // https://gist.github.com/Xeoncross/7663273\n\n\nfunction ajax(url, options, callback, data, cache) {\n if (data && _typeof(data) === 'object') {\n if (!cache) {\n data['_t'] = new Date();\n } // URL encoded form data must be in querystring format\n\n\n data = addQueryString('', data).slice(1);\n }\n\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n try {\n var x;\n\n if (XMLHttpRequest) {\n x = new XMLHttpRequest();\n } else {\n x = new ActiveXObject('MSXML2.XMLHTTP.3.0');\n }\n\n x.open(data ? 'POST' : 'GET', url, 1);\n\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n x.withCredentials = !!options.withCredentials;\n\n if (data) {\n x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n }\n\n if (x.overrideMimeType) {\n x.overrideMimeType(\"application/json\");\n }\n\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n\n x.onreadystatechange = function () {\n x.readyState > 3 && callback && callback(x.responseText, x);\n };\n\n x.send(data);\n } catch (e) {\n console && console.log(e);\n }\n}\n\nfunction getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: JSON.parse,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n crossDomain: false,\n ajax: ajax\n };\n}\n\nvar Backend =\n/*#__PURE__*/\nfunction () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Backend);\n\n this.init(services, options);\n this.type = 'backend';\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath([language], [namespace]);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: language,\n ns: namespace\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback) {\n var _this = this;\n\n this.options.ajax(url, this.options, function (data, xhr) {\n if (xhr.status >= 500 && xhr.status < 600) return callback('failed loading ' + url, true\n /* retry */\n );\n if (xhr.status >= 400 && xhr.status < 500) return callback('failed loading ' + url, false\n /* no retry */\n );\n var ret, err;\n\n try {\n ret = _this.options.parse(data, url);\n } catch (e) {\n err = 'failed parsing ' + url + ' to json';\n }\n\n if (err) return callback(err, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n var _this2 = this;\n\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n languages.forEach(function (lng) {\n var url = _this2.services.interpolator.interpolate(_this2.options.addPath, {\n lng: lng,\n ns: namespace\n });\n\n _this2.options.ajax(url, _this2.options, function (data, xhr) {//const statusCode = xhr.status.toString();\n // TODO: if statusCode === 4xx do log\n }, payload);\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\n\nexport default Backend;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"forwardedRef\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createElement, forwardRef as forwardRefReact } from 'react';\nimport { useTranslation } from './useTranslation';\nimport { getDisplayName } from './utils';\nexport function withTranslation(ns) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function Extend(WrappedComponent) {\n function I18nextWithTranslation(_ref) {\n var forwardedRef = _ref.forwardedRef,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n var _useTranslation = useTranslation(ns, _objectSpread(_objectSpread({}, rest), {}, {\n keyPrefix: options.keyPrefix\n })),\n _useTranslation2 = _slicedToArray(_useTranslation, 3),\n t = _useTranslation2[0],\n i18n = _useTranslation2[1],\n ready = _useTranslation2[2];\n\n var passDownProps = _objectSpread(_objectSpread({}, rest), {}, {\n t: t,\n i18n: i18n,\n tReady: ready\n });\n\n if (options.withRef && forwardedRef) {\n passDownProps.ref = forwardedRef;\n } else if (!options.withRef && forwardedRef) {\n passDownProps.forwardedRef = forwardedRef;\n }\n\n return createElement(WrappedComponent, passDownProps);\n }\n\n I18nextWithTranslation.displayName = \"withI18nextTranslation(\".concat(getDisplayName(WrappedComponent), \")\");\n I18nextWithTranslation.WrappedComponent = WrappedComponent;\n\n var forwardRef = function forwardRef(props, ref) {\n return createElement(I18nextWithTranslation, Object.assign({}, props, {\n forwardedRef: ref\n }));\n };\n\n return options.withRef ? forwardRefReact(forwardRef) : I18nextWithTranslation;\n };\n}"],"names":["_objectSpread","e","r","o","defineProperty","consoleLogger","args","type","Logger","concreteLogger","options","_classCallCheck","_createClass","bool","_len","_key","_len2","_key2","_len3","_key3","_len4","_key4","lvl","prefix","debugOnly","moduleName","baseLogger","EventEmitter","events","listener","_this","event","l","cloned","observer","_cloned","defer","res","rej","promise","resolve","reject","makeString","object","copy","a","s","m","getLastOfPath","path","Empty","cleanKey","key","canNotTraverseDeeper","stack","setPath","newValue","_getLastOfPath","obj","k","pushPath","concat","_getLastOfPath2","getPath","_getLastOfPath3","getPathWithDefaults","data","defaultData","value","deepExtend","target","source","overwrite","prop","regexEscape","str","_entityMap","escape","isIE10","deepFind","keySeparator","paths","current","i","j","p","mix","joinedPath","ResourceStore","_EventEmitter","_inherits","_possibleConstructorReturn","_getPrototypeOf","_assertThisInitialized","ns","index","lng","ignoreJSONStructure","result","resources","deep","pack","postProcessor","module","processors","translator","processor","checkedLoadedFor","Translator","services","resolved","nsSeparator","namespaces","parts","keys","lastKey","_this2","_typeof","_this$extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","resExactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","handleAsObject","resTypeIsArray","newKeyToUse","deepKey","usedDefault","usedKey","needsPluralHandling","hasDefaultValue","defaultValueSuffix","defaultValue","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","send","fallbackValue","language","suffix","_this3","skipOnVariables","nestBef","nb","na","nestAft","postProcess","postProcessorNames","_this4","found","exactUsedKey","usedLng","usedNS","extracted","needsContextHandling","codes","code","finalKey","finalKeys","pluralSuffix","possibleKey","option","capitalize","string","LanguageUtil","specialCases","part","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","c","fc","sets","_rulesPluralsTypes","createRules","rules","set","PluralResolver","languageUtils","rule","number","count","idx","returnSuffix","Interpolator","iOpts","regexpStr","regexpUnescapeStr","nestingRegexpStr","match","replaces","regexSafe","val","handleFormat","f","missingInterpolationHandler","todos","todo","temp","safeValue","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","formatters","doReduce","elem","remove","arr","what","Connector","backend","store","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","name","err","loaded","q","fcName","tried","wait","_this5","isUpdate","get","ret","_format","transformOptions","noop","I18n","createClassOnDemand","ClassOrObject","lu","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","load","finish","t","usedCallback","append","done","setLng","keyPrefix","fixedT","opts","rest","resultKey","_this$translator","_this$translator2","_this6","fallbackLng","lastLng","loadNotPending","n","loadState","preResult","_this7","preloaded","newLngs","rtlLngs","_this8","mergedOptions","clone","membersToCopy","i18next","each","slice","defaults","fieldContentRegExp","serializeCookie","opt","maxAge","sameSite","cookie","minutes","domain","cookieOptions","nameEQ","ca","cookie$1","querystring","search","query","params","pos","hasLocalStorageSupport","localStorageAvailable","testKey","localStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","navigator$1","htmlTag","subdomain","lookupFromSubdomainIndex","getDefaults","Browser","i18nOptions","detector","detectionOrder","detected","detectorName","lookup","caches","cacheName","addQueryString","url","queryString","paramName","ajax","cache","x","h","_defineProperty","Backend","loadPath","xhr","payload","_objectWithoutProperties","objectWithoutPropertiesLoose","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","unescape","text","ownKeys","enumerableOnly","symbols","sym","defaultOptions","i18nInstance","I18nContext","createContext","setDefaults","ReportNamespaces","setI18n","instance","getI18n","initReactI18next","warn","_console","alreadyWarned","warnOnce","loadNamespaces","i18n","cb","initialized","oldI18nextHasLoadedNamespace","hasLoadedNamespace","isNewerI18next","getDisplayName","Component","_arrayWithHoles","_iterableToArrayLimit","u","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","usePrevious","ignore","ref","useRef","useEffect","useTranslation","props","i18nFromProps","_ref","useContext","i18nFromContext","defaultNSFromContext","notReadyT","retNotReady","useSuspense","ready","getT","_useState","useState","_useState2","setT","joinedNS","previousJoinedNS","isMounted","bindI18n","bindI18nStore","boundReset","isInitial","_excluded","withTranslation","WrappedComponent","I18nextWithTranslation","forwardedRef","_useTranslation","_useTranslation2","passDownProps","createElement","forwardRef","forwardRefReact"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}