{"version":3,"file":"dae43f8fc889fb8dca72dda8644123e0d56de1e1-16abea46726a6616e3fe.js","mappings":"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","sources":["webpack://commercial-ultramar/./node_modules/i18next-http-backend/node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://commercial-ultramar/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://commercial-ultramar/./node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","webpack://commercial-ultramar/./node_modules/i18next-http-backend/esm/utils.js","webpack://commercial-ultramar/./node_modules/i18next-http-backend/esm/request.js","webpack://commercial-ultramar/./node_modules/i18next-http-backend/esm/index.js","webpack://commercial-ultramar/./node_modules/i18next/dist/esm/i18next.js","webpack://commercial-ultramar/./src/i18next.js","webpack://commercial-ultramar/./src/images/og-logo.jpg","webpack://commercial-ultramar/./node_modules/i18next-http-backend/esm/getFetch.cjs","webpack://commercial-ultramar/./node_modules/@babel/runtime/helpers/esm/toArray.js"],"sourcesContent":["var global = typeof self !== 'undefined' ? self : this;\n\nvar __self__ = function () {\n function F() {\n this.fetch = false;\n this.DOMException = global.DOMException;\n }\n\n F.prototype = global;\n return new F();\n}();\n\n(function (self) {\n var irrelevant = function (exports) {\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && function () {\n try {\n new Blob();\n return true;\n } catch (e) {\n return false;\n }\n }(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj);\n }\n\n if (support.arrayBuffer) {\n var viewClasses = ['[object Int8Array]', '[object Uint8Array]', '[object Uint8ClampedArray]', '[object Int16Array]', '[object Uint16Array]', '[object Int32Array]', '[object Uint32Array]', '[object Float32Array]', '[object Float64Array]'];\n\n var isArrayBufferView = ArrayBuffer.isView || function (obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1;\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name');\n }\n\n return name.toLowerCase();\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n\n return value;\n } // Build a destructive iterator for the value list\n\n\n function iteratorFor(items) {\n var iterator = {\n next: function next() {\n var value = items.shift();\n return {\n done: value === undefined,\n value: value\n };\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function () {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function (value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function (header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function (name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function (name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function (name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function (name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null;\n };\n\n Headers.prototype.has = function (name) {\n return this.map.hasOwnProperty(normalizeName(name));\n };\n\n Headers.prototype.set = function (name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function (callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function () {\n var items = [];\n this.forEach(function (value, name) {\n items.push(name);\n });\n return iteratorFor(items);\n };\n\n Headers.prototype.values = function () {\n var items = [];\n this.forEach(function (value) {\n items.push(value);\n });\n return iteratorFor(items);\n };\n\n Headers.prototype.entries = function () {\n var items = [];\n this.forEach(function (value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items);\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'));\n }\n\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function (resolve, reject) {\n reader.onload = function () {\n resolve(reader.result);\n };\n\n reader.onerror = function () {\n reject(reader.error);\n };\n });\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise;\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise;\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n\n return chars.join('');\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0);\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer;\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function (body) {\n this._bodyInit = body;\n\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer); // IE 10-11 can't handle a DataView body.\n\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function () {\n var rejected = consumed(this);\n\n if (rejected) {\n return rejected;\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob);\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]));\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob');\n } else {\n return Promise.resolve(new Blob([this._bodyText]));\n }\n };\n\n this.arrayBuffer = function () {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer);\n } else {\n return this.blob().then(readBlobAsArrayBuffer);\n }\n };\n }\n\n this.text = function () {\n var rejected = consumed(this);\n\n if (rejected) {\n return rejected;\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob);\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer));\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text');\n } else {\n return Promise.resolve(this._bodyText);\n }\n };\n\n if (support.formData) {\n this.formData = function () {\n return this.text().then(decode);\n };\n }\n\n this.json = function () {\n return this.text().then(JSON.parse);\n };\n\n return this;\n } // HTTP methods whose capitalization should be normalized\n\n\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method;\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read');\n }\n\n this.url = input.url;\n this.credentials = input.credentials;\n\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests');\n }\n\n this._initBody(body);\n }\n\n Request.prototype.clone = function () {\n return new Request(this, {\n body: this._bodyInit\n });\n };\n\n function decode(body) {\n var form = new FormData();\n body.trim().split('&').forEach(function (bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form;\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers(); // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function (line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers;\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function () {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n });\n };\n\n Response.error = function () {\n var response = new Response(null, {\n status: 0,\n statusText: ''\n });\n response.type = 'error';\n return response;\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function (url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code');\n }\n\n return new Response(null, {\n status: status,\n headers: {\n location: url\n }\n });\n };\n\n exports.DOMException = self.DOMException;\n\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function (message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function (resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'));\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function () {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function () {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function () {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function () {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function (value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function () {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n });\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n return exports;\n }({});\n})(__self__);\n\n__self__.fetch.ponyfill = true; // Remove \"polyfill\" property added by whatwg-fetch\n\ndelete __self__.fetch.polyfill; // Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\n\nvar ctx = __self__; // this line disable service worker support temporarily\n\nexports = ctx.fetch; // To enable: import fetch from 'cross-fetch'\n\nexports.default = ctx.fetch; // For TypeScript consumers without esModuleInterop.\n\nexports.fetch = ctx.fetch; // To enable: import {fetch} from 'cross-fetch'\n\nexports.Headers = ctx.Headers;\nexports.Request = ctx.Request;\nexports.Response = ctx.Response;\nmodule.exports = exports;","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context';\nexport function I18nextProvider(_ref) {\n var i18n = _ref.i18n,\n defaultNS = _ref.defaultNS,\n children = _ref.children;\n var value = useMemo(function () {\n return {\n i18n: i18n,\n defaultNS: defaultNS\n };\n }, [i18n, defaultNS]);\n return createElement(I18nContext.Provider, {\n value: value\n }, children);\n}","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\n\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} // eslint-disable-next-line no-control-regex\n\n\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 = name + '=' + value;\n\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += '; Max-Age=' + 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=' + 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=' + 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=' + 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 = 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};\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};\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};\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};\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};\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};\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};\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.href.match(/(?:http[s]*\\:\\/\\/)*(.*?)\\.(?=[^\\/]*\\..{2,5})/gi);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromSubdomainIndex === 'number') {\n found = language[options.lookupFromSubdomainIndex].replace('http://', '').replace('https://', '').replace('.', '');\n } else {\n found = language[0].replace('http://', '').replace('https://', '').replace('.', '');\n }\n }\n }\n\n return found;\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';\nexport { Browser as default };","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function 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}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\n\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\n\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n\n return Promise.resolve(maybePromise);\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nimport { defaults, hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\n\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n }\n}\n\nvar XmlHttpRequestApi;\n\nif (hasXMLHttpRequest) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\n\nvar ActiveXObjectApi;\n\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\n\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\n\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n\n return url;\n};\n\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n var headers = defaults({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (payload) headers['Content-Type'] = 'application/json';\n fetchApi(url, defaults({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions)).then(function (response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n }).catch(callback);\n};\n\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n try {\n var x;\n\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n\n x.open(payload ? '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 (payload) {\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(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\n\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n\n callback = callback || function () {};\n\n if (fetchApi) {\n return requestWithFetch(options, url, payload, callback);\n }\n\n if (hasXMLHttpRequest || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n};\n\nexport default request;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { defaults, makePromise } from './utils.js';\nimport request from './request.js';\n\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\n\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, Backend);\n\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = allOptions;\n\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n\n this.options.request(this.options, url, undefined, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n\n if (finished === languages.length) {\n if (callback) callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\nexport default Backend;","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\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(_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}\n\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\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}\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}\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}\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}\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}\n\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n\nvar _entityMap = {\n '&': '&',\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}\n\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\n\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread$1(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys$1(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$1(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\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\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\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 var _super = _createSuper(ResourceStore);\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 = _super.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$1(_objectSpread$1({}, 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$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\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\nfunction ownKeys$2(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread$2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys$2(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$2(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _createSuper$1(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct$1();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _isNativeReflectConstruct$1() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\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 = _super.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 var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\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 returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\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\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\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 var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\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$2(_objectSpread$2({}, 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, options) : '';\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$2(_objectSpread$2({}, 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, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, 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, options).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\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\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, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? 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$2(_objectSpread$2({}, 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$2({\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\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\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 finalKeys = [key];\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, options);\n var zeroSuffix = '_zero';\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\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.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: \"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};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\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\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\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 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\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 key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread$3(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys$3(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$3(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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$3(_objectSpread$3(_objectSpread$3({}, 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$3(_objectSpread$3(_objectSpread$3({}, 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 !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _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 var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\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 (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" 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$3({}, 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$3(_objectSpread$3({}, 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$3(_objectSpread$3({}, 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 ownKeys$4(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread$4(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys$4(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$4(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val.trim();\n if (val.trim() === 'false') formatOptions[key.trim()] = false;\n if (val.trim() === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val.trim())) formatOptions[key.trim()] = parseInt(val.trim(), 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: function number(val, lng, options) {\n return new Intl.NumberFormat(lng, options).format(val);\n },\n currency: function currency(val, lng, options) {\n return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n })).format(val);\n },\n datetime: function datetime(val, lng, options) {\n return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n },\n relativetime: function relativetime(val, lng, options) {\n return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n },\n list: function list(val, lng, options) {\n return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n }\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread$5(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys$5(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$5(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _createSuper$2(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct$2();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _isNativeReflectConstruct$2() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction removePending(q, name) {\n delete q.pending[name];\n q.pendingCount--;\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\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 = _super.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.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\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[name] !== undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n pending[name] = true;\n toLoad[name] = true;\n toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\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 removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = Object.keys(loaded[l]);\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loadedKeys[ns] !== undefined) loaded[l][ns] = true;\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\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\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 _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\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$5(_objectSpread$5({}, 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 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: true\n }\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.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread$6(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys$6(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys$6(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _createSuper$3(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct$3();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _isNativeReflectConstruct$3() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\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 = _super.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 bindMemberFunctions(_assertThisInitialized(_this));\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.defaultNS && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\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 formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\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\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\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 this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\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, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!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 === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(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 setLngProps(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$6({}, 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.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\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 || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _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.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\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$6(_objectSpread$6(_objectSpread$6({}, 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$6({}, 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 resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\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\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };","/**\n * Created and Added: Gaurav Kapade\n * Purpose: to set up translator package and expose it to application\n *\n */\n\nimport { initReactI18next } from 'react-i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport Backend from 'i18next-http-backend';\nimport translationEN from './translation/en.json';\nimport translationFR from './translation/fr.json';\nimport i18next from 'i18next';\n\nconst resources = {\n en: {\n translation: translationEN,\n },\n fr: {\n translation: translationFR,\n },\n};\n\nconst options = {\n // order and from where user language should be detected\n order: ['path', 'cookie', 'querystring', 'navigator'],\n // keys or params to lookup language from\n lookupCookie: 'language',\n lookupQuerystring: 'lang',\n};\n\nvoid i18next\n .use(Backend)\n .use(LanguageDetector)\n .use(initReactI18next) // passes i18n down to react-i18next\n .init({\n resources,\n // lng: \"en\", to set default language/ Not needed as we are detecting from browser.\n debug: false,\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n },\n react: {\n useSuspense: false,\n },\n // whitelist: ['el', 'en'],\n nonExplicitWhitelist: true,\n load: 'languageOnly',\n keySeparator: false, // we do not use keys in form messages.welcome\n supportedLngs: ['en', 'fr'],\n detection: options,\n fallbackLng: 'en', //when specified/detected language translations are not available.\n });\n\n//* call without param to use language detector\n// i18n.changeLanguage();\nexport default i18next;\n","export default __webpack_public_path__ + \"static/og-logo-a5b431d2128f28c2d6d5caafeb288d5f.jpg\";","var fetchApi\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch\n }\n}\n\nif (typeof require !== 'undefined' && (typeof window === 'undefined' || typeof window.document === 'undefined')) {\n var f = fetchApi || require('cross-fetch')\n if (f.default) f = f.default\n exports.default = f\n module.exports = exports.default\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}"],"names":["global","self","this","__self__","F","fetch","DOMException","prototype","exports","support","Symbol","Blob","e","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","Object","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","map","forEach","append","Array","isArray","header","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","type","rejected","Error","arrayBuffer","then","text","readAsText","chars","length","i","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","Request","input","options","method","upcased","url","credentials","mode","signal","toUpperCase","referrer","form","trim","split","bytes","replace","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","err","message","stack","create","constructor","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","parts","key","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","defineProperty","ponyfill","ctx","module","I18nextProvider","_ref","i18n","defaultNS","children","useMemo","createElement","arr","each","defaults","arguments","source","prop","fieldContentRegExp","serializeCookie","val","opt","path","str","encodeURIComponent","maxAge","isNaN","Math","floor","domain","expires","toUTCString","httpOnly","secure","sameSite","cookie","minutes","cookieOptions","Date","setTime","getTime","document","nameEQ","ca","c","charAt","substring","cookie$1","lookup","found","lookupCookie","cacheUserLanguage","lng","cookieMinutes","cookieDomain","querystring","window","search","hash","params","pos","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","localStorage","testKey","setItem","removeItem","lookupLocalStorage","getItem","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","navigator","languages","userLanguage","language","htmlTag","documentElement","getAttribute","pathname","match","lookupFromPathIndex","subdomain","href","lookupFromSubdomainIndex","Browser","services","detectors","i18nOptions","order","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","_this","detected","detectorName","concat","languageUtils","getBestMatchFromCodes","_this2","cacheName","_typeof","hasXMLHttpRequest","fetchApi","XmlHttpRequestApi","ActiveXObjectApi","g","ActiveXObject","addQueryString","queryString","paramName","payload","queryStringParams","customHeaders","stringify","requestOptions","data","catch","requestWithFetch","x","crossDomain","overrideMimeType","h","console","log","requestWithXmlHttpRequest","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","enumerable","configurable","writable","loadPath","addPath","allowMultiLoading","parsePayload","namespace","fallbackValue","_defineProperty","reloadInterval","cache","Backend","allOptions","protoProps","staticProps","setInterval","reload","namespaces","_readAny","loadUrlLanguages","loadUrlNamespaces","maybePromise","isPromise","resolvedLoadPath","interpolator","interpolate","ns","loadUrl","_this3","res","ret","parseErr","_this4","finished","dataArray","resArray","_this5","_this$services","backendConnector","logger","currentLanguage","toLoad","toResolveHierarchy","l","preload","read","warn","loaded","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread","getOwnPropertyDescriptors","defineProperties","consoleLogger","args","output","Logger","concreteLogger","prefix","debug","bool","_len","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","events","listener","event","cloned","observer","_cloned","defer","rej","makeString","copy","a","s","t","m","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","k","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","isIE10","userAgent","ownKeys$1","_objectSpread$1","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","deepFind","keySeparator","paths","current","j","p","mix","endsWith","joinedPath","ResourceStore","_EventEmitter","_super","ignoreJSONStructure","index","splice","silent","addNamespaces","emit","resources","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","find","v","postProcessor","processors","addPostProcessor","handle","translator","processor","process","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","interpolation","resolved","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","r","RegExp","matched","ki","looksLikeObjectPath","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","getFallbackCodes","fallbackLng","saveMissingTo","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","na","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","utils","hasLoadedNamespace","code","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","contextKey","contextSeparator","pop","returnNull","returnEmptyString","resourceStore","option","capitalize","string","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","n","Number","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","other","createRules","rules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","rule","getRule","resolvedOptions","pluralCategories","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","number","select","getSuffixRetroCompatible","idx","noAbs","abs","simplifyPluralSuffix","returnSuffix","includes","ownKeys$3","_objectSpread$3","Interpolator","format","escapeValue","iOpts","escape","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","f","missingInterpolationHandler","regex","safeValue","todo","exec","matchedVar","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","formatters","doReduce","elem","reduce","ownKeys$4","_objectSpread$4","Formatter","formats","NumberFormat","currency","style","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","range","list","ListFormat","_format","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","_opt$split","_opt$split2","parseInt","parseFormatStr","formatted","valOptions","formatParams","locale","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","state","queue","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","pendingCount","errors","addResourceBundle","q","_getLastOfPath2","pushPath","removePending","loadedKeys","fcName","tried","wait","setTimeout","queueLoad","loadOne","prepareLoading","isUpdate","initImmediate","pluralSeparator","partialBundledLanguages","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","noop","bindMemberFunctions","inst","getPrototypeOf","bind","I18n","modules","external","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","formatter","lu","on","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","finish","initializedStoreOnce","changeLanguage","usedCallback","resolvedLanguage","setResolvedLanguage","li","lngInLngs","hasLanguageSomeTranslations","isLanguageChangingTo","setLngProps","setLng","loadResources","async","detect","keyPrefix","fixedT","opts","rest","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","createInstance","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","en","translation","translationEN","fr","translationFR","i18next","LanguageDetector","initReactI18next","react","useSuspense","nonExplicitWhitelist","default","_toArray"],"sourceRoot":""}