@ohif/i18n 0.53.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dist/ohif-i18n.umd.js","mappings":"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QACJC,GAAI,QACJC,GAAI,YACJC,GAAI,SACJ,QAAS,sBACT,QAAS,wBACTC,GAAI,WACJC,GAAI,UACJC,GAAI,SACJC,GAAI,YACJC,GAAI,UACJC,GAAI,UACJC,GAAI,UACJC,GAAI,QACJC,GAAI,SACJC,GAAI,OACJC,GAAI,UACJC,GAAI,YACJC,GAAI,aACJC,GAAI,UACJ,QAAS,kBACT,QAAS,mBACT,WAAY,iBAGRC,GAAoB9xB,GACjBgvB,GAAahvB,SC1DtB,IACEivB,GAAI,CACF8C,8MCSJ,IACE,QAAS,CACPC,qYACAC,o6BACAC,6SACAC,0SACAC,uGACAC,2NACAC,mNACAC,4EACAC,+EACAC,ufACAV,meACAW,2iBCbJ,IACEjD,GAAI,CACFuC,gaACAC,+6BACAC,gTACAC,kSACAC,4GACAC,0NACAC,iRACAC,2EACAC,yGACAC,6iBACAV,8LACAW,ioBCpBJ,IACE5C,GAAI,CACFmC,q5BACAC,2TACAC,gKACAE,mOACAN,gMCNJ,IACE,QAAS,CACPE,0xBACAC,gSACAC,wIACAE,kKACAN,mLCRJ,IACElB,GAAI,CACFoB,sFACAE,qBACAE,yKCCJ,IACE,QAAS,CACPL,6ZACAC,g4BACAC,6OACAC,gLACAC,4GACAC,+NACAN,qVACAO,yFCXJ,IACEV,GAAI,CACFK,w9BACAC,iTACAC,mRACAE,0MACAI,8NACAV,kMCNJ,IACEF,GAAI,CACFI,gpBACAC,4KACAC,wNACAE,oJACAC,kKACAG,2IACAV,k+JCLJ,OACK9C,MACA0D,MACAlD,MACAK,MACA8C,MACA/B,MACAgC,MACAjB,MACAC,MCHL,CACE,WAAY,CACVG,WAAU,GACVC,QAAO,GACPC,WAAU,GACVC,OAAM,GACNC,WAAU,GACVC,OAAM,GACNC,iBAAgB,GAChBG,UAAS,GACTV,qBAAoB,GACpBW,qBAAoB,GACpBI,0BACAN,aAAY,GACZO,8JACAC,yDACAT,UAAS,GACTU,+mBCGJ,MAAMC,GAAgB,CACpBhP,UAAW7P,GACXsP,OAAQtP,GACRqQ,aAAc,QACdyO,YAAa,SAKTC,GAAmB,QAEzB,SAASC,KAIP,IACIC,EAJJlS,EAASve,UAAA1E,OAAA,QAAA8B,IAAA4C,UAAA,GAAAA,UAAA,GAAGksB,GAEZwE,EAAe1wB,UAAA1E,OAAA,QAAA8B,IAAA4C,UAAA,IAAAA,UAAA,GA+Ef,OAzEEywB,EAPOzwB,UAAA1E,OAAA,QAAA8B,IAAA4C,UAAA,IAAAA,UAAA,GAOO2wB,EAAAA,IAIPC,IAKJC,IAAIC,IAIJD,IAAIE,IAGJF,IAAIG,MAEJH,IAAIlF,IAGJprB,KAAK,CACJqB,YAAa2uB,GACbhc,YAAamc,EACb1jB,MAAOif,GACP7b,cAAc,EACduB,cAAe,CACbwH,aAAa,GAEfoF,YACAhD,QAAS8U,GACT/L,eAAgB+L,GAChBtI,OAAQ,IACHsI,GACH3I,cAAe5I,MAAO9iB,EAAKkU,WAEnBygB,EAAAA,gBAAqB30B,EAAKkU,GAGhCygB,EAAAA,KAAU,cAAc,GAG5B9E,MAAO,CACLJ,aAAa,EACb9O,MAAM,EACNwO,SAAU,iCAKFwF,EAAAA,IAGPK,MAEJH,IAAIlF,IAGJprB,KAAK,CACJqB,YAAa2uB,GACb7f,UAAWugB,GACXjkB,MAAOif,GACP7b,cAAc,EACduB,cAAe,CACbwH,aAAa,GAEfoF,YACAsN,MAAO,CACLlP,MAAM,KAKP8T,EAAYvoB,MAAK,SAAU/D,GAChCwsB,EAAAA,EAASxsB,CAEX,GACF,CAIAwsB,EAAAA,aAAoBH,KACpBG,EAAAA,SAAgBH,GAChBG,EAAAA,WA7HA,SAAoBO,GAGlB,IAAIC,EAAiB,GAErB/2B,OAAOkJ,KAAK4tB,GAAYjuB,KAAIxE,IAC1BrE,OAAOkJ,KAAK4tB,EAAWzyB,IAAMwE,KAAIkP,IAC/B,MAAMif,EAASF,EAAWzyB,GAAK0T,GAC/Bgf,EAAel0B,KAAK,CAAEwB,MAAK0T,YAAWif,WACtCT,EAAAA,kBAAuBlyB,EAAK0T,EAAWif,GAAQ,GAAM,EAAK,GAC1D,GAKN,EA+GAT,EAAAA,mBZ9Ee,SAAmCM,GAChD,MAAMI,EAAyB,GAS/B,OAPAj3B,OAAOkJ,KAAK2tB,GAAS7vB,SAAQ3C,IAC3B4yB,EAAuBp0B,KAAK,CAC1B3C,MAAOmE,EACP6yB,MAAOrC,GAAiBxwB,IAAQA,GAChC,IAGG4yB,CACT,CYmE0BE,CAA0BN,IACpDN,EAAAA,gBAAuB,CAAEW,MAAOrC,GAAiBsB,IAAmBj2B,MAAOi2B,IAC3EI,EAAAA,gBAAuB,KAAM,CAAGW,MAAOrC,GAAiB0B,EAAAA,UAAgBr2B,MAAOq2B,EAAAA,WAE/E","sources":["webpack://ohif-i18n/webpack/universalModuleDefinition","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/cookie.js","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/htmlTag.js","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/localStorage.js","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/navigator.js","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/path.js","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/querystring.js","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/dist/commonjs/browserLookups/subdomain.js","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/dist/commonjs/index.js","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/dist/commonjs/utils.js","webpack://ohif-i18n/../../../node_modules/i18next-browser-languagedetector/index.js","webpack://ohif-i18n/../../../node_modules/object-assign/index.js","webpack://ohif-i18n/../../../node_modules/react/cjs/react.production.min.js","webpack://ohif-i18n/../../../node_modules/react/index.js","webpack://ohif-i18n/../../../node_modules/void-elements/index.js","webpack://ohif-i18n/webpack/bootstrap","webpack://ohif-i18n/webpack/runtime/compat get default export","webpack://ohif-i18n/webpack/runtime/define property getters","webpack://ohif-i18n/webpack/runtime/hasOwnProperty shorthand","webpack://ohif-i18n/webpack/runtime/make namespace object","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://ohif-i18n/../../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://ohif-i18n/../../../node_modules/i18next/dist/esm/i18next.js","webpack://ohif-i18n/../../../node_modules/i18next-locize-backend/dist/esm/i18nextLocizeBackend.js","webpack://ohif-i18n/../../../node_modules/locize-lastused/dist/es/utils.js","webpack://ohif-i18n/../../../node_modules/locize-lastused/dist/es/index.js","webpack://ohif-i18n/../../../node_modules/locize-editor/dist/esm/locize-editor.js","webpack://ohif-i18n/../../../node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://ohif-i18n/../../../node_modules/react-i18next/dist/es/unescape.js","webpack://ohif-i18n/../../../node_modules/react-i18next/dist/es/defaults.js","webpack://ohif-i18n/../../../node_modules/react-i18next/dist/es/initReactI18next.js","webpack://ohif-i18n/../../../node_modules/react-i18next/dist/es/i18nInstance.js","webpack://ohif-i18n/../../../node_modules/react-i18next/dist/es/context.js","webpack://ohif-i18n/./config.js","webpack://ohif-i18n/./utils.js","webpack://ohif-i18n/./locales/ar/index.js","webpack://ohif-i18n/./locales/en-US/index.js","webpack://ohif-i18n/./locales/es/index.js","webpack://ohif-i18n/./locales/fr/index.js","webpack://ohif-i18n/./locales/ja-JP/index.js","webpack://ohif-i18n/./locales/nl/index.js","webpack://ohif-i18n/./locales/pt-BR/index.js","webpack://ohif-i18n/./locales/vi/index.js","webpack://ohif-i18n/./locales/zh/index.js","webpack://ohif-i18n/./locales/index.js","webpack://ohif-i18n/./locales/test-LNG/index.js","webpack://ohif-i18n/./index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ohif-i18n\"] = factory();\n\telse\n\t\troot[\"ohif-i18n\"] = factory();\n})(globalThis, () => {\nreturn ","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var expires = void 0;\n if (minutes) {\n var date = new Date();\n date.setTime(date.getTime() + minutes * 60 * 1000);\n expires = '; expires=' + date.toGMTString();\n } else expires = '';\n domain = domain ? 'domain=' + domain + ';' : '';\n document.cookie = name + '=' + value + expires + ';' + domain + 'path=/';\n },\n\n read: function read(name) {\n var nameEQ = name + '=';\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\n\nexports.default = {\n name: 'cookie',\n\n lookup: function lookup(options) {\n var found = void 0;\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);\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'htmlTag',\n\n lookup: function lookup(options) {\n var found = void 0;\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};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar hasLocalStorageSupport = void 0;\ntry {\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\nexports.default = {\n name: 'localStorage',\n\n lookup: function lookup(options) {\n var found = void 0;\n\n if (options.lookupLocalStorage && hasLocalStorageSupport) {\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 && hasLocalStorageSupport) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'navigator',\n\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 if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n\n return found.length > 0 ? found : undefined;\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'path',\n\n lookup: function lookup(options) {\n var found = void 0;\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n return found;\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'querystring',\n\n lookup: function lookup(options) {\n var found = void 0;\n\n if (typeof window !== 'undefined') {\n var query = window.location.search.substring(1);\n var params = query.split('&');\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n\n return found;\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n name: 'subdomain',\n\n lookup: function lookup(options) {\n var found = void 0;\n if (typeof window !== 'undefined') {\n var language = window.location.href.match(/(?:http[s]*\\:\\/\\/)*(.*?)\\.(?=[^\\/]*\\..{2,5})/gi);\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 return found;\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _utils = require('./utils.js');\n\nvar utils = _interopRequireWildcard(_utils);\n\nvar _cookie = require('./browserLookups/cookie.js');\n\nvar _cookie2 = _interopRequireDefault(_cookie);\n\nvar _querystring = require('./browserLookups/querystring.js');\n\nvar _querystring2 = _interopRequireDefault(_querystring);\n\nvar _localStorage = require('./browserLookups/localStorage.js');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nvar _navigator = require('./browserLookups/navigator.js');\n\nvar _navigator2 = _interopRequireDefault(_navigator);\n\nvar _htmlTag = require('./browserLookups/htmlTag.js');\n\nvar _htmlTag2 = _interopRequireDefault(_htmlTag);\n\nvar _path = require('./browserLookups/path.js');\n\nvar _path2 = _interopRequireDefault(_path);\n\nvar _subdomain = require('./browserLookups/subdomain.js');\n\nvar _subdomain2 = _interopRequireDefault(_subdomain);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n //cookieMinutes: 10,\n //cookieDomain: 'myDomain'\n checkWhitelist: true\n };\n}\n\nvar Browser = 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\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\n this.services = services;\n this.options = utils.defaults(options, this.options || {}, getDefaults());\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n\n this.i18nOptions = i18nOptions;\n\n this.addDetector(_cookie2.default);\n this.addDetector(_querystring2.default);\n this.addDetector(_localStorage2.default);\n this.addDetector(_navigator2.default);\n this.addDetector(_htmlTag2.default);\n this.addDetector(_path2.default);\n this.addDetector(_subdomain2.default);\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\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n\n var found = void 0;\n detected.forEach(function (lng) {\n if (found) return;\n var cleanedLng = _this.services.languageUtils.formatLanguageCode(lng);\n if (!_this.options.checkWhitelist || _this.services.languageUtils.isWhitelisted(cleanedLng)) found = cleanedLng;\n });\n\n if (!found) {\n var fallbacks = this.i18nOptions.fallbackLng;\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (!fallbacks) fallbacks = [];\n\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') {\n found = fallbacks[0];\n } else {\n found = fallbacks[0] || fallbacks.default && fallbacks.default[0];\n }\n }\n\n return found;\n }\n }, {\n key: 'cacheUserLanguage',\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n\n return Browser;\n}();\n\nBrowser.type = 'languageDetector';\n\nexports.default = Browser;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaults = defaults;\nexports.extend = extend;\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}\n\nfunction extend(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}","/* eslint no-var: 0 */\nvar main = require('./dist/commonjs/index.js').default;\n\nmodule.exports = main;\nmodule.exports.default = main;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\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, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\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 var _console;\n\n /* eslint no-console: 0 */\n if (console && console[type]) (_console = console)[type].apply(_console, _toConsumableArray(args));\n }\n};\n\nvar Logger =\n/*#__PURE__*/\nfunction () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter =\n/*#__PURE__*/\nfunction () {\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\n// http://lea.verou.me/2016/12/resolve-promises-externally-with-this-one-weird-trick/\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n /* eslint prefer-template: 0 */\n\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n } // Fallback to default values\n\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n /* eslint no-restricted-syntax: 0 */\n for (var prop in source) {\n if (prop in target) {\n // If we reached a leaf string in target or source then replace with source or skip depending on the 'overwrite' switch\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 return target;\n}\nfunction regexEscape(str) {\n /* eslint no-useless-escape: 0 */\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n/* eslint-disable */\n\nvar _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\n/* eslint-enable */\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 ResourceStore =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n return getPath(this.data, path);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n /* eslint no-restricted-syntax: 0 */\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS; // COMPATIBILITY: remove extend in v2.1.0\n\n if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nvar Translator =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var 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) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n /* eslint prefer-rest-params: 0 */\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {}; // non valid keys handling\n\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)]; // separators\n\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator; // get namespace(s)\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]; // return key on CIMode\n\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n } // resolve from store\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; // object\n\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n } // if we got a separator we loop over children - else we just return object as is\n // as having it set to false means no hierarchy so no lookup for nested values\n\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy$$1 = resTypeIsArray ? [] : {}; // apply child translation on a copy\n\n /* eslint no-restricted-syntax: 0 */\n\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$$1[m] = this.translate(deepKey, _objectSpread({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy$$1[m] === deepKey) copy$$1[m] = res[m]; // if nothing found use orginal value as fallback\n }\n }\n\n res = copy$$1;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n // array special treatment\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options);\n } else {\n // string, empty or null\n var usedDefault = false;\n var usedKey = false; // fallback value\n\n if (!this.isValidLookup(res) && options.defaultValue !== undefined) {\n usedDefault = true;\n\n if (options.count !== undefined) {\n var suffix = this.pluralResolver.getSuffix(lng, options.count);\n res = options[\"defaultValue\".concat(suffix)];\n }\n\n if (!res) res = options.defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n } // save missing\n\n\n var updateMissing = options.defaultValue && options.defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? options.defaultValue : res);\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) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (l) {\n var plurals = _this2.pluralResolver.getPluralFormsOfKey(l, key);\n\n plurals.forEach(function (p) {\n return send([l], p);\n });\n });\n } else {\n send(lngs, key);\n }\n }\n } // extend\n\n\n res = this.extendTranslation(res, keys, options, resolved); // append namespace if still key\n\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key); // parseMissingKeyHandler\n\n if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n } // return\n\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n // i18next.parsing\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n })); // interpolate\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options); // nesting\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n return _this3.translate.apply(_this3, arguments);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n } // post process\n\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey; // plain key\n\n var exactUsedKey; // key with context / plural\n\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys]; // forEach possible key\n\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (_this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for namespace \\\"\").concat(usedNS, \"\\\" won't get resolved as namespace was not yet loaded\"), 'This means something IS WRONG in your application setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count); // fallback for plural if context not found\n\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix); // get key for context if needed\n\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context)); // get key for plural if needed\n\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n } // iterate over finalKeys starting with most specific pluralkey (-> contextkey only) -> singularkey only\n\n\n var possibleKey;\n /* eslint no-cond-assign: 0 */\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\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil =\n/*#__PURE__*/\nfunction () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.whitelist || 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 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 // http://www.iana.org/assignments/language-tags/language-tags.xhtml\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(); // if lenght 2 guess it's a country\n\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitWhitelist) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.whitelist || !this.whitelist.length || this.whitelist.indexOf(code) > -1;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || []; // asume we have an object defining fallbacks\n\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[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this = 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 (_this.isWhitelisted(c)) {\n codes.push(c);\n } else {\n _this.logger.warn(\"rejecting non-whitelisted language code: \".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(_this.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\n/* eslint-disable */\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he'],\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 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n === 1 ? 0 : n === 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n/* eslint-enable */\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 =\n/*#__PURE__*/\nfunction () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var _this = this;\n\n var ret = [];\n var rule = this.getRule(code);\n if (!rule) return ret;\n rule.numbers.forEach(function (n) {\n var suffix = _this.getSuffix(code, n);\n\n ret.push(\"\".concat(key).concat(suffix));\n });\n return ret;\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n // if (rule.numbers.length === 1) return ''; // only singular\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx]; // special treatment for lngs only having singular and plural\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 }; // COMPATIBILITY JSON\n // v1\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 (\n /* v2 */\n this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (\n /* v3 - gettext index */\n this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator =\n/*#__PURE__*/\nfunction () {\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 /* eslint no-param-reassign: 0 */\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.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000; // the regexp\n\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 // the regexp\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 return getPathWithDefaults(data, defaultData, key);\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);\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n replaces = 0; // unescape if has unescapePrefix/Suffix\n\n /* eslint no-cond-assign: 0 */\n\n while (match = this.regexpUnescape.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else {\n this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n str = str.replace(match[0], regexSafe(value));\n this.regexpUnescape.lastIndex = 0;\n replaces++;\n\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n\n replaces = 0; // regular escape on demand\n\n while (match = this.regexp.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var _temp = missingInterpolationHandler(str, match, options);\n\n value = typeof _temp === 'string' ? _temp : '';\n } else {\n this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n value = this.escapeValue ? regexSafe(this.escape(value)) : regexSafe(value);\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n replaces++;\n\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false; // avoid post processing on nested lookup\n\n delete clonedOptions.defaultValue; // assert we do not get a endless loop on interpolating defaultValue again and again\n // if value is something like \"myKey\": \"lorem $(anotherKey, { \"count\": {{aValueInOptions}} })\"\n\n function handleHasOptions(key, inheritedOptions) {\n if (key.indexOf(',') < 0) return key;\n var p = key.split(',');\n key = p.shift();\n var optionsString = p.join(',');\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.error(\"failed parsing options string in nesting for key \".concat(key), e);\n } // assert we do not get a endless loop on interpolating defaultValue again and again\n\n\n delete clonedOptions.defaultValue;\n return key;\n } // regular escape on demand\n\n\n while (match = this.nestingRegexp.exec(str)) {\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions); // is only the nesting key (key1 = '$(key2)') return the value without stringify\n\n if (value && match[0] === str && typeof value !== 'string') return value; // no string to include or empty\n\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 } // Nested keys should not be escaped by default #854\n // value = this.escapeValue ? regexSafe(utils.escape(value)) : regexSafe(value);\n\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n // find what needs to be loaded\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; // loaded\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1; // pending\n\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var _name$split = name.split('|'),\n _name$split2 = _slicedToArray(_name$split, 2),\n lng = _name$split2[0],\n ns = _name$split2[1];\n\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n } // set loaded\n\n\n this.state[name] = err ? -1 : 2; // consolidated loading done in this run - only emit once for a loaded namespace\n\n var loaded = {}; // callback if ready\n\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n // only do once per loaded -> this.emit('loaded', q.loaded);\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n /* eslint no-param-reassign: 0 */\n\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n }); // emit consolidated loaded event\n\n this.emit('loaded', loaded); // remove done load requests\n\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] : 250;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {}); // noting to load\n\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data\n /* = retryFlag */\n && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n /* eslint consistent-return: 0 */\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(); // nothing to load and no pendings...callback now\n\n return null; // pendings will trigger callback\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\n var _name$split3 = name.split('|'),\n _name$split4 = _slicedToArray(_name$split3, 2),\n lng = _name$split4[0],\n ns = _name$split4[1];\n\n this.read(lng, ns, 'read', null, null, 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, \"\\\" for namespace \\\"\").concat(namespace, \"\\\" as the namespace was not yet loaded\"), 'This means something IS WRONG in your application 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 (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null\n /* unused callback */\n , _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n } // write to store to avoid resending\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 // string or array of namespaces\n whitelist: false,\n // array with whitelisted languages\n nonExplicitWhitelist: false,\n load: 'all',\n // | currentOnly | languageOnly\n preload: false,\n // array with preload languages\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n // allow bundling certain languages that are not remotely fetched\n saveMissing: false,\n // enable to send missing values\n updateMissing: false,\n // enable to update default values if different from translated value (only useful on initial development, or when keeping code as source of truth)\n saveMissingTo: 'fallback',\n // 'current' || 'all'\n saveMissingPlurals: true,\n // will save all forms not only singular key\n missingKeyHandler: false,\n // function(lng, ns, key, fallbackValue) -> override if prefer on handling\n missingInterpolationHandler: false,\n // function(str, match)\n postProcess: false,\n // string or array of postProcessor names\n postProcessPassResolved: false,\n // pass resolved object into 'options.i18nResolved' for postprocessor\n returnNull: true,\n // allows null value as valid translation\n returnEmptyString: true,\n // allows empty string value as valid translation\n returnObjects: false,\n joinArrays: false,\n // or string to join array\n returnedObjectHandler: false,\n // function(key, value, options) triggered if key returns object but returnObjects is set to false\n parseMissingKeyHandler: false,\n // function(key) parsed a key that was not found in t() before returning\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) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n // prefixEscaped: '{{',\n // suffixEscaped: '}}',\n // unescapeSuffix: '',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n // nestingPrefixEscaped: '$t(',\n // nestingSuffixEscaped: ')',\n // defaultVariables: undefined // object that can have values to interpolate on - extends passed in interpolation data\n maxReplaces: 1000 // max replaces to prevent endless loop\n\n }\n };\n}\n/* eslint no-param-reassign: 0 */\n\nfunction transformOptions(options) {\n // create namespace object if namespace is passed in as string\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]; // extend whitelist with cimode\n\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n // https://github.com/i18next/i18next/issues/879\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 this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n } // init services\n\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options); // pipe events from backendConnector\n\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); // pipe events from translator\n\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 } // append api\n\n\n var storeApi = ['getResource', 'addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle', '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 deferred = defer();\n\n var load = function load() {\n _this2.changeLanguage(_this2.options.lng, function (err, t) {\n _this2.isInitialized = true;\n\n _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t); // not rejecting on err (as err is only a loading translation failed warning)\n\n callback(err, t);\n });\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 /* eslint consistent-return: 0 */\n\n }, {\n key: \"loadResources\",\n value: function loadResources() {\n var _this3 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (this.language && this.language.toLowerCase() === 'cimode') return callback(); // avoid loading resources for cimode\n\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 (!this.language) {\n // at least load fallbacks in this case\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(this.language);\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, callback);\n } else {\n callback(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(); // not rejecting on err (as err is only a loading translation failed warning)\n\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n _this4.translator.changeLanguage(l);\n\n if (l) {\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\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(l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n return _this5.t(key, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1]; // we're in cimode so this shall pass\n\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 }; // loaded -> SUCCESS\n\n\n if (this.hasResourceBundle(lng, ns)) return true; // were not loading at all -> SEMI SUCCESS\n\n if (!this.services.backendConnector.backend) return true; // failed loading ns - but at least fallback is not pending -> SEMI SUCCESS\n\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 }); // Exit early if all given languages are already preloaded\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n }\n /* eslint class-methods-use-this: 0 */\n\n }, {\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.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; // sync options\n\n return clone;\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nfunction debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\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 var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (!object) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n\n if (!object) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nvar regexp = new RegExp('\\{\\{(.+?)\\}\\}', 'g');\n\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\n\nfunction interpolate(str, data, lng) {\n var match, value;\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n } // regular escape on demand\n\n\n while (match = regexp.exec(str)) {\n value = match[1].trim();\n if (typeof value !== 'string') value = makeString(value);\n if (!value) value = '';\n value = regexSafe(value);\n str = str.replace(match[0], data[value] || value);\n regexp.lastIndex = 0;\n }\n\n return str;\n}\nfunction isMissingOption(obj, props) {\n return props.reduce(function (mem, p) {\n if (mem) return mem;\n\n if (!obj || !obj[p] || typeof obj[p] !== 'string' || !obj[p].toLowerCase() === p.toLowerCase()) {\n var err = \"i18next-locize-backend :: got \\\"\".concat(obj[p], \"\\\" in options for \").concat(p, \" which is invalid.\");\n console.warn(err);\n return err;\n }\n\n return false;\n }, false);\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction ajax(url, options, callback, data, cache) {\n try {\n var x = new (XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');\n x.open(data ? 'POST' : 'GET', url, 1);\n\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n if (options.authorize && options.apiKey) {\n x.setRequestHeader('Authorization', options.apiKey);\n }\n\n if (data || options.setContentTypeJSON) {\n x.setRequestHeader('Content-type', 'application/json');\n }\n\n x.onreadystatechange = function () {\n x.readyState > 3 && callback && callback(x.responseText, x);\n };\n\n x.send(JSON.stringify(data));\n } catch (e) {\n typeof window !== 'undefined' && window.console && console.log(e);\n }\n}\n\nfunction getDefaults() {\n return {\n loadPath: 'https://api.locize.io/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n privatePath: 'https://api.locize.io/private/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n pullPath: 'https://api.locize.io/pull/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n getLanguagesPath: 'https://api.locize.io/languages/{{projectId}}',\n addPath: 'https://api.locize.io/missing/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n updatePath: 'https://api.locize.io/update/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n referenceLng: 'en',\n crossDomain: true,\n setContentTypeJSON: false,\n version: 'latest',\n pull: false,\n \"private\": false,\n whitelistThreshold: 0.9,\n failLoadingOnEmptyJSON: false,\n // useful if using chained backend\n allowedAddOrUpdateHosts: ['localhost'],\n onSaved: false\n };\n}\n\nvar I18NextLocizeBackend =\n/*#__PURE__*/\nfunction () {\n function I18NextLocizeBackend(services, options, callback) {\n _classCallCheck(this, I18NextLocizeBackend);\n\n if (services && services.projectId) {\n this.init(null, services, {}, options);\n } else {\n this.init(null, options, {}, callback);\n }\n\n this.type = 'backend';\n }\n\n _createClass(I18NextLocizeBackend, [{\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 i18nextOptions = arguments.length > 2 ? arguments[2] : undefined;\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n this.options = _objectSpread({}, getDefaults(), {}, this.options, {}, options); // initial\n\n this.services = services;\n if (this.options.pull) console.warn('deprecated: pull will be removed in future versions and should be replaced with locize private versions');\n var hostname = typeof window !== 'undefined' && window.location && window.location.hostname;\n\n if (hostname) {\n this.isAddOrUpdateAllowed = typeof this.options.allowedAddOrUpdateHosts === 'function' ? this.options.allowedAddOrUpdateHosts(hostname) : this.options.allowedAddOrUpdateHosts.indexOf(hostname) > -1;\n if (i18nextOptions.saveMissing && !this.isAddOrUpdateAllowed) services && services.logger && services.logger.warn(\"locize-backend: will not save missings because the host \\\"\".concat(hostname, \"\\\" was not in the list of allowedAddOrUpdateHosts: \").concat(this.options.allowedAddOrUpdateHosts.join(', '), \" (matches need to be exact).\"));\n } else {\n this.isAddOrUpdateAllowed = true;\n }\n\n if (typeof callback === 'function') {\n this.getOptions(function (err, opts) {\n if (err) return callback(err);\n _this.options.referenceLng = options.referenceLng || opts.referenceLng || _this.options.referenceLng;\n callback(null, opts);\n });\n }\n\n this.queuedWrites = {};\n this.debouncedProcess = debounce(this.process, 10000);\n }\n }, {\n key: \"getLanguages\",\n value: function getLanguages(callback) {\n var isMissing = isMissingOption(this.options, ['projectId']);\n if (isMissing) return callback(new Error(isMissing));\n var url = interpolate(this.options.getLanguagesPath, {\n projectId: this.options.projectId\n });\n this.loadUrl(url, {}, callback);\n }\n }, {\n key: \"getOptions\",\n value: function getOptions(callback) {\n var _this2 = this;\n\n this.getLanguages(function (err, data) {\n if (err) return callback(err);\n var keys = Object.keys(data);\n if (!keys.length) return callback(new Error('was unable to load languages via API'));\n var referenceLng = keys.reduce(function (mem, k) {\n var item = data[k];\n if (item.isReferenceLanguage) mem = k;\n return mem;\n }, '');\n var whitelist = keys.reduce(function (mem, k) {\n var item = data[k];\n if (item.translated[_this2.options.version] && item.translated[_this2.options.version] >= _this2.options.whitelistThreshold) mem.push(k);\n return mem;\n }, []);\n var hasRegion = keys.reduce(function (mem, k) {\n if (k.indexOf('-') > -1) return true;\n return mem;\n }, false);\n callback(null, {\n fallbackLng: referenceLng,\n referenceLng: referenceLng,\n whitelist: whitelist,\n load: hasRegion ? 'all' : 'languageOnly'\n });\n });\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var url;\n var options = {};\n\n if (this.options[\"private\"]) {\n var isMissing = isMissingOption(this.options, ['projectId', 'version', 'apiKey']);\n if (isMissing) return callback(new Error(isMissing), false);\n url = interpolate(this.options.privatePath, {\n lng: language,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n options = {\n authorize: true\n };\n } else if (this.options.pull) {\n var _isMissing = isMissingOption(this.options, ['projectId', 'version', 'apiKey']);\n\n if (_isMissing) return callback(new Error(_isMissing), false);\n url = interpolate(this.options.pullPath, {\n lng: language,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n options = {\n authorize: true\n };\n } else {\n var _isMissing2 = isMissingOption(this.options, ['projectId', 'version']);\n\n if (_isMissing2) return callback(new Error(_isMissing2), false);\n url = interpolate(this.options.loadPath, {\n lng: language,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n }\n\n this.loadUrl(url, options, callback);\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, options, callback) {\n var _this3 = this;\n\n ajax(url, _objectSpread({}, this.options, {}, options), function (data, xhr) {\n if (xhr.status >= 500 && xhr.status < 600) return callback('failed loading ' + url, true\n /* retry */\n );\n if (xhr.status >= 400 && xhr.status < 500) return callback('failed loading ' + url, false\n /* no retry */\n );\n var ret, err;\n\n try {\n ret = JSON.parse(data);\n } catch (e) {\n err = 'failed parsing ' + url + ' to json';\n }\n\n if (err) return callback(err, false);\n if (_this3.options.failLoadingOnEmptyJSON && !Object.keys(ret).length) return callback('loaded result empty for ' + url, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback, options) {\n var _this4 = this;\n\n if (!callback) callback = function callback() {}; // missing options\n\n var isMissing = isMissingOption(this.options, ['projectId', 'version', 'apiKey', 'referenceLng']);\n if (isMissing) return callback(new Error(isMissing)); // unallowed host\n\n if (!this.isAddOrUpdateAllowed) return callback('host is not allowed to create key.');\n if (typeof languages === 'string') languages = [languages];\n\n if (languages.filter(function (l) {\n return l === _this4.options.referenceLng;\n }).length < 1) {\n this.services && this.services.logger && this.services.logger.warn(\"locize-backend: will not save missings because the reference language \\\"\".concat(this.options.referenceLng, \"\\\" was not in the list of to save languages: \").concat(languages.join(', '), \" (open your site in the reference language to save missings).\"));\n }\n\n languages.forEach(function (lng) {\n if (lng === _this4.options.referenceLng) _this4.queue.call(_this4, _this4.options.referenceLng, namespace, key, fallbackValue, callback, options);\n });\n }\n }, {\n key: \"update\",\n value: function update(languages, namespace, key, fallbackValue, callback, options) {\n var _this5 = this;\n\n if (!callback) callback = function callback() {}; // missing options\n\n var isMissing = isMissingOption(this.options, ['projectId', 'version', 'apiKey', 'referenceLng']);\n if (isMissing) return callback(new Error(isMissing));\n if (!this.isAddOrUpdateAllowed) return callback('host is not allowed to update key.');\n if (!options) options = {};\n if (typeof languages === 'string') languages = [languages]; // mark as update\n\n options.isUpdate = true;\n languages.forEach(function (lng) {\n if (lng === _this5.options.referenceLng) _this5.queue.call(_this5, _this5.options.referenceLng, namespace, key, fallbackValue, callback, options);\n });\n }\n }, {\n key: \"write\",\n value: function write(lng, namespace) {\n var _this6 = this;\n\n var lock = getPath(this.queuedWrites, ['locks', lng, namespace]);\n if (lock) return;\n var missingUrl = interpolate(this.options.addPath, {\n lng: lng,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n var updatesUrl = interpolate(this.options.updatePath, {\n lng: lng,\n ns: namespace,\n projectId: this.options.projectId,\n version: this.options.version\n });\n var missings = getPath(this.queuedWrites, [lng, namespace]);\n setPath(this.queuedWrites, [lng, namespace], []);\n\n if (missings.length) {\n // lock\n setPath(this.queuedWrites, ['locks', lng, namespace], true);\n var hasMissing = false;\n var hasUpdates = false;\n var payloadMissing = {};\n var payloadUpdate = {};\n missings.forEach(function (item) {\n var value = item.options && item.options.tDescription ? {\n value: item.fallbackValue || '',\n context: {\n text: item.options.tDescription\n }\n } : item.fallbackValue || '';\n\n if (item.options && item.options.isUpdate) {\n if (!hasUpdates) hasUpdates = true;\n payloadUpdate[item.key] = value;\n } else {\n if (!hasMissing) hasMissing = true;\n payloadMissing[item.key] = value;\n }\n });\n var todo = 0;\n if (hasMissing) todo++;\n if (hasUpdates) todo++;\n\n var doneOne = function doneOne() {\n todo--;\n\n if (!todo) {\n // unlock\n setPath(_this6.queuedWrites, ['locks', lng, namespace], false);\n missings.forEach(function (missing) {\n if (missing.callback) missing.callback();\n }); // emit notification onSaved\n\n if (_this6.options.onSaved) _this6.options.onSaved(lng, namespace); // rerun\n\n _this6.debouncedProcess(lng, namespace);\n }\n };\n\n if (!todo) doneOne();\n\n if (hasMissing) {\n ajax(missingUrl, _objectSpread({}, {\n authorize: true\n }, {}, this.options), function (data, xhr) {\n //const statusCode = xhr.status.toString();\n // TODO: if statusCode === 4xx do log\n doneOne();\n }, payloadMissing);\n }\n\n if (hasUpdates) {\n ajax(updatesUrl, _objectSpread({}, {\n authorize: true\n }, {}, this.options), function (data, xhr) {\n //const statusCode = xhr.status.toString();\n // TODO: if statusCode === 4xx do log\n doneOne();\n }, payloadUpdate);\n }\n }\n }\n }, {\n key: \"process\",\n value: function process() {\n var _this7 = this;\n\n Object.keys(this.queuedWrites).forEach(function (lng) {\n if (lng === 'locks') return;\n Object.keys(_this7.queuedWrites[lng]).forEach(function (ns) {\n var todo = _this7.queuedWrites[lng][ns];\n\n if (todo.length) {\n _this7.write(lng, ns);\n }\n });\n });\n }\n }, {\n key: \"queue\",\n value: function queue(lng, namespace, key, fallbackValue, callback, options) {\n pushPath(this.queuedWrites, [lng, namespace], {\n key: key,\n fallbackValue: fallbackValue || '',\n callback: callback,\n options: options\n });\n this.debouncedProcess();\n }\n }]);\n\n return I18NextLocizeBackend;\n}();\n\nI18NextLocizeBackend.type = 'backend';\n\nexport default I18NextLocizeBackend;\n","export function debounce(func, wait, immediate) {\n\tvar timeout;\n\treturn function () {\n\t\tvar context = this,\n\t\t args = arguments;\n\t\tvar later = function later() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n};\n\nexport function replaceIn(str, arr, options) {\n\tvar ret = str;\n\tarr.forEach(function (s) {\n\t\tvar regexp = new RegExp('{{' + s + '}}', 'g');\n\t\tret = ret.replace(regexp, options[s]);\n\t});\n\n\treturn ret;\n}\n\nexport function isMissingOption(obj, props) {\n\treturn props.reduce(function (mem, p) {\n\t\tif (mem) return mem;\n\t\tif (!obj || !obj[p] || typeof obj[p] !== 'string' || !obj[p].toLowerCase() === p.toLowerCase()) {\n\t\t\tvar err = 'i18next-lastused :: got \"' + obj[p] + '\" in options for ' + p + ' which is invalid.';\n\t\t\tconsole.warn(err);\n\t\t\treturn err;\n\t\t}\n\t\treturn false;\n\t}, false);\n}\n\nexport function optionExist(obj, props) {\n\treturn !isMissingOption(obj, props);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport * as utils from './utils';\n\n// https://gist.github.com/Xeoncross/7663273\nfunction ajax(url, options, callback, data, cache) {\n try {\n var x = new (XMLHttpRequest || ActiveXObject)('MSXML2.XMLHTTP.3.0');\n x.open(data ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n if (options.authorize && options.apiKey) {\n x.setRequestHeader('Authorization', options.apiKey);\n }\n if (data || options.setContentTypeJSON) {\n x.setRequestHeader('Content-type', 'application/json');\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback && callback(x.responseText, x);\n };\n x.send(JSON.stringify(data));\n } catch (e) {\n window.console && window.console.log(e);\n }\n};\n\nfunction getDefaults() {\n return {\n lastUsedPath: 'https://api.locize.io/used/{{projectId}}/{{version}}/{{lng}}/{{ns}}',\n referenceLng: 'en',\n crossDomain: true,\n setContentTypeJSON: false,\n version: 'latest',\n debounceSubmit: 90000,\n allowedHosts: ['localhost']\n };\n}\n\nvar locizeLastUsed = {\n init: function init(options) {\n var isI18next = options.t && typeof options.t === 'function';\n\n this.options = isI18next ? _extends({}, getDefaults(), this.options, options.options.locizeLastUsed) : _extends({}, getDefaults(), this.options, options);\n\n var hostname = window.location && window.location.hostname;\n if (hostname) {\n this.isAllowed = this.options.allowedHosts.indexOf(hostname) > -1;\n } else {\n this.isAllowed = true;\n }\n\n this.submitting = null;\n this.pending = {};\n this.done = {};\n\n this.submit = utils.debounce(this.submit, this.options.debounceSubmit);\n\n // intercept\n if (isI18next) this.interceptI18next(options);\n },\n\n interceptI18next: function interceptI18next(i18next) {\n var _this = this;\n\n var origGetResource = i18next.services.resourceStore.getResource;\n\n i18next.services.resourceStore.getResource = function (lng, ns, key, options) {\n // call last used\n if (key) _this.used(ns, key);\n\n // by pass orginal call\n return origGetResource.call(i18next.services.resourceStore, lng, ns, key, options);\n };\n },\n\n used: function used(ns, key) {\n var _this2 = this;\n\n ['pending', 'done'].forEach(function (k) {\n if (_this2.done[ns] && _this2.done[ns][key]) return;\n if (!_this2[k][ns]) _this2[k][ns] = {};\n _this2[k][ns][key] = true;\n });\n\n this.submit();\n },\n\n submit: function submit() {\n var _this3 = this;\n\n if (!this.isAllowed) return;\n if (this.submitting) return this.submit();\n\n // missing options\n var isMissing = utils.isMissingOption(this.options, ['projectId', 'version', 'apiKey', 'referenceLng']);\n if (isMissing) return callback(new Error(isMissing));\n\n this.submitting = this.pending;\n this.pending = {};\n\n var namespaces = Object.keys(this.submitting);\n\n var todo = namespaces.length;\n var doneOne = function doneOne() {\n todo--;\n\n if (!todo) {\n _this3.submitting = null;\n }\n };\n namespaces.forEach(function (ns) {\n var keys = Object.keys(_this3.submitting[ns]);\n var url = utils.replaceIn(_this3.options.lastUsedPath, ['projectId', 'version', 'lng', 'ns'], _extends({}, _this3.options, { lng: _this3.options.referenceLng, ns: ns }));\n\n if (keys.length) {\n ajax(url, _extends({ authorize: true }, _this3.options), function (data, xhr) {\n doneOne();\n }, keys);\n } else {\n doneOne();\n }\n });\n }\n};\n\nlocizeLastUsed.type = '3rdParty';\n\nexport default locizeLastUsed;","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\n\nfunction isWindow(obj) {\n return obj != null && obj === obj.window;\n}\nfunction getWindow(elem) {\n return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;\n}\nfunction offset(elem) {\n var docElem,\n win,\n box = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n },\n doc = elem && elem.ownerDocument;\n docElem = doc && doc.documentElement;\n if (!docElem) return box;\n\n if (_typeof(elem.getBoundingClientRect) !== (\"undefined\")) {\n box = elem.getBoundingClientRect();\n }\n\n win = getWindow(doc);\n var top = box.top + win.pageYOffset - docElem.clientTop;\n var left = box.left + win.pageXOffset - docElem.clientLeft;\n return {\n top: top,\n left: left,\n right: left + (box.right - box.left),\n bottom: top + (box.bottom - box.top)\n };\n}\nfunction getClickedElement(e) {\n // clicked input\n if (e.srcElement && e.srcElement.nodeType === 1) {\n if (e.srcElement.getAttribute && e.srcElement.getAttribute('ignorelocizeeditor') === '') return null;\n return e.srcElement;\n }\n\n var el;\n\n if (e.originalEvent && e.originalEvent.explicitOriginalTarget) {\n el = e.originalEvent.explicitOriginalTarget;\n } else {\n var parent = e.srcElement;\n if (parent.getAttribute && parent.getAttribute('ignorelocizeeditor') === '') return null;\n var left = e.pageX;\n var top = e.pageY;\n var pOffset = offset(parent); // console.warn('click', top, left);\n // console.warn('parent', parent, pOffset, parent.clientHeight, parent.offsetHeight);\n\n var topStartsAt = 0;\n var topBreaksAt;\n\n for (var i = 0; i < parent.childNodes.length; i++) {\n var n = parent.childNodes[i];\n var nOffset = offset(n); // console.warn('child', n, nOffset, n.clientHeight, n.offsetHeight)\n // if a node is with the bottom over the top click set the next child as start index\n\n if (n.nodeType === 1 && nOffset.bottom < top) topStartsAt = i + 1; // if node is below top click set end index to this node\n\n if (!topBreaksAt && nOffset.top + (n.clientHeight || 0) > top) topBreaksAt = i;\n } // check we are inside children lenght\n\n\n if (topStartsAt + 1 > parent.childNodes.length) topStartsAt = parent.childNodes.length - 1;\n if (!topBreaksAt) topBreaksAt = parent.childNodes.length; // console.warn('bound', topStartsAt, topBreaksAt)\n // inside our boundaries check when left is to big and out of clicks left\n\n for (var y = topStartsAt; y < topBreaksAt; y++) {\n var _n = parent.childNodes[y];\n\n var _nOffset = offset(_n);\n\n if (_nOffset.left > left) {\n break;\n }\n\n if (_n && _n.nodeType !== 8) el = _n;\n }\n }\n\n return el;\n}\nfunction removeNamespace(str, i18next) {\n var res = str;\n var nsSeparator = i18next.options.nsSeparator !== undefined ? i18next.options.nsSeparator : ':';\n\n if (str.indexOf(nsSeparator) > -1) {\n var p = str.split(nsSeparator);\n p.shift();\n res = p.join(nsSeparator);\n }\n\n return res;\n}\nfunction getElementNamespace(str, el, i18next) {\n var namespace = i18next.options.defaultNS;\n var nsSeparator = i18next.options.nsSeparator || ':';\n\n if (str.indexOf(nsSeparator) > -1) {\n namespace = str.split(nsSeparator)[0];\n } else {\n var found;\n\n var find = function find(el) {\n var opts = el.getAttribute && el.getAttribute('i18next-options');\n if (!opts) opts = el.getAttribute && el.getAttribute('data-i18next-options');\n if (!opts) opts = el.getAttribute && el.getAttribute('i18n-options');\n if (!opts) opts = el.getAttribute && el.getAttribute('data-i18n-options');\n\n if (opts) {\n var jsonData = {};\n\n try {\n jsonData = JSON.parse(opts);\n } catch (e) {// not our problem here in editor\n }\n\n if (jsonData.ns) found = jsonData.ns;\n }\n\n if (!found) found = el.getAttribute && el.getAttribute('i18next-ns');\n if (!found) found = el.getAttribute && el.getAttribute('data-i18next-ns');\n if (!found) found = el.getAttribute && el.getAttribute('i18n-ns');\n if (!found) found = el.getAttribute && el.getAttribute('data-i18n-ns');\n if (!found && el.parentElement) find(el.parentElement);\n };\n\n find(el);\n if (found) namespace = found;\n }\n\n return namespace;\n}\nfunction getQueryVariable(variable) {\n var query = window.location.search.substring(1);\n var vars = query.split('&');\n\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split('=');\n\n if (pair[0] == variable) {\n return pair[1];\n }\n }\n\n return false;\n}\n\nvar baseBtn = 'font-family: \"Helvetica\", \"Arial\", sans-serif; font-size: 14px; color: #fff; border: none; font-weight: 300; height: 30px; line-height: 30px; padding: 0; text-align: center; min-width: 90px; text-decoration: none; text-transform: uppercase; text-overflow: ellipsis; white-space: nowrap; outline: none; cursor: pointer;';\nfunction initUI(on, off, options) {\n var cont = document.createElement(\"div\");\n cont.setAttribute('style', 'z-index: 2147483647; font-family: \"Helvetica\", \"Arial\", sans-serif; position: fixed; bottom: 20px; right: 20px; padding: 10px; background-color: #fff; border: solid 1px #1976d2; box-shadow: 0px 1px 2px 0px rgba(0,0,0,0.5);');\n cont.setAttribute('ignorelocizeeditor', '');\n cont.setAttribute('translated', '');\n var title = document.createElement(\"h4\");\n title.id = \"locize-title\";\n title.innerHTML = \"locize editor\";\n title.setAttribute('style', 'font-family: \"Helvetica\", \"Arial\", sans-serif; font-size: 14px; margin: 0 0 5px 0; color: #1976d2; font-weight: 300;');\n title.setAttribute('ignorelocizeeditor', '');\n cont.appendChild(title);\n var turnOff = document.createElement(\"button\");\n turnOff.innerHTML = \"On\";\n turnOff.setAttribute('style', \"\".concat(baseBtn, \" display: none; background-color: #54A229;\"));\n turnOff.onclick = off;\n turnOff.setAttribute('ignorelocizeeditor', '');\n cont.appendChild(turnOff);\n var turnOn = document.createElement(\"button\");\n turnOn.innerHTML = \"Off\";\n turnOn.setAttribute('style', \"\".concat(baseBtn, \" display: none; background-color: #D50000;\"));\n turnOn.onclick = on;\n turnOn.setAttribute('ignorelocizeeditor', '');\n cont.appendChild(turnOn);\n document.body.appendChild(cont);\n\n var toggle = function toggle(on) {\n turnOff.style.display = on ? 'block' : 'none';\n turnOn.style.display = !on ? 'block' : 'none';\n };\n\n return toggle;\n}\nfunction appendIframe(url, options) {\n var cont = document.createElement(\"div\");\n cont.setAttribute('style', options.iframeContainerStyle);\n cont.setAttribute('ignorelocizeeditor', '');\n cont.setAttribute('translated', '');\n var iframe = document.createElement(\"iframe\");\n iframe.setAttribute('style', options.iframeStyle);\n iframe.setAttribute('ignorelocizeeditor', '');\n iframe.setAttribute('translated', '');\n iframe.setAttribute('src', url);\n cont.appendChild(iframe);\n document.body.appendChild(cont);\n var bodyStyle = document.body.getAttribute('style');\n document.body.setAttribute('style', \"\".concat(bodyStyle, \"; \").concat(options.bodyStyle));\n return iframe.contentWindow;\n}\n\nvar defaultOptions = {\n url: 'https://www.locize.io',\n openDashboard: false,\n enabled: false,\n enableByQS: 'locize',\n toggleKeyCode: 24,\n toggleKeyModifier: 'ctrlKey',\n lngOverrideQS: 'useLng',\n lngOverride: null,\n hasNamespacePrefixed: false,\n autoOpen: true,\n onEditorSaved: function onEditorSaved(lng, ns) {},\n mode: getQueryVariable('locizeMode') || 'iframe',\n iframeContainerStyle: 'z-index: 2147480000; position: fixed; top: 0; right: 0; bottom: 0; width: 600px; box-shadow: -3px 0 5px 0 rgba(0,0,0,0.5);',\n iframeStyle: 'height: 100%; width: 600px; border: none;',\n bodyStyle: 'margin-right: 605px;'\n};\n\nfunction convertOptionsToI18next(opts) {\n return {\n languages: [opts.lng],\n nsSeparator: opts.nsSeparator || ':',\n options: {\n editor: opts,\n backend: opts,\n defaultNS: opts.defaultNS\n }\n };\n}\n\nvar editor = {\n type: '3rdParty',\n init: function init(i18next) {\n var _this = this;\n\n // convert standalone options\n if (i18next && !i18next.init) i18next = convertOptionsToI18next(i18next);\n this.enabled = false;\n this.i18next = i18next;\n this.options = _objectSpread({}, defaultOptions, i18next.options.editor); //this.locizeUrl = (i18next.options.editor && i18next.options.editor.url) || 'https://www.locize.io';\n\n this.handler = this.handler.bind(this);\n this.handleSavedMissing = this.handleSavedMissing.bind(this);\n\n if (this.options.enabled || this.options.enableByQS && getQueryVariable(this.options.enableByQS) === 'true') {\n setTimeout(function () {\n if (_this.options.autoOpen) _this.open();\n }, 500);\n }\n\n document.addEventListener('keypress', function (e) {\n if (e[_this.options.toggleKeyModifier] && e.which === _this.options.toggleKeyCode) _this.enabled ? _this.off() : _this.on();\n }); // listen to key press on locize service to disable\n\n window.addEventListener('message', function (e) {\n if (e.data[_this.options.toggleKeyModifier] && e.data.which === _this.options.toggleKeyCode) _this.enabled ? _this.off() : _this.on();\n\n if (e.data.type === 'savedSegments') {\n _this.options.onEditorSaved(e.data.lng, e.data.ns);\n }\n });\n },\n handler: function handler(e) {\n var _this2 = this;\n\n var el = getClickedElement(e);\n if (!el) return;\n e.preventDefault();\n e.stopPropagation();\n var str = el.textContent || el.text && el.text.innerText || el.placeholder;\n if (typeof str !== 'string') return;\n var res = str.replace(/\\n +/g, '').trim();\n\n var send = function send() {\n // consume\n // window.addEventListener('message', function(ev) {\n // if (ev.data.message === 'searchForKey') {\n // console.warn(ev.data);\n // }\n // });\n var payload = {\n message: 'searchForKey',\n projectId: _this2.i18next.options.backend.projectId,\n version: _this2.i18next.options.backend.version || 'latest',\n lng: getQueryVariable(_this2.options.lngOverrideQS) || _this2.options.lngOverride || _this2.i18next.languages[0],\n ns: getElementNamespace(res, el, _this2.i18next),\n token: _this2.options.hasNamespacePrefixed ? removeNamespace(res, _this2.i18next) : res\n };\n if (!payload.lng || payload.lng.toLowerCase() === 'cimode') payload.lng = _this2.i18next.options.backend.referenceLng;\n if (_this2.options.handler) return _this2.options.handler(payload);\n\n _this2.locizeInstance.postMessage(payload, _this2.options.url);\n\n _this2.locizeInstance.focus();\n }; // assert the locizeInstance is still open\n\n\n if (this.options.autoOpen && (this.options.mode !== 'iframe' && !this.locizeInstance || this.locizeInstance.closed)) {\n this.open();\n setTimeout(function () {\n send();\n }, 3000);\n } else {\n send();\n }\n },\n handleSavedMissing: function handleSavedMissing(lng, ns) {\n if (!this.locizeInstance || this.locizeInstance.closed) return;\n var payload = {\n message: 'savedMissings',\n projectId: this.i18next.options.backend.projectId,\n version: this.i18next.options.backend.version || 'latest',\n lng: lng,\n ns: ns\n };\n this.locizeInstance.postMessage(payload, this.options.url);\n },\n open: function open() {\n var url = this.options.url;\n if (!this.options.openDashboard) url = \"\".concat(url, \"/pid/\").concat(this.options.projectId || this.i18next.options.backend.projectId, \"/v/\").concat(this.i18next.options.backend.version || 'latest');\n\n if (this.options.mode === 'iframe') {\n this.locizeInstance = appendIframe(url, this.options);\n } else {\n this.locizeInstance = window.open(url);\n } // bind toggle UI\n\n\n this.toggleUI = initUI(this.on.bind(this), this.off.bind(this), this.options); // start listening\n\n this.on();\n },\n on: function on() {\n document.body.addEventListener('click', this.handler, true);\n this.toggleUI(true);\n this.enabled = true;\n },\n off: function off() {\n document.body.removeEventListener('click', this.handler, true);\n this.toggleUI(false);\n this.enabled = false;\n }\n};\n\nexport default editor;\n","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"</\"+t.name+\">\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"</\"+a.name+\">\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,\"tag\"===(a=n(r)).type&&t.components[a.name]&&(a.type=\"component\",m=!0),a.voidElement||m||!d||\"<\"===d||a.children.push({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&\"<\"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&amp;': '&',\n '&#38;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&quot;': '\"',\n '&#34;': '\"',\n '&nbsp;': ' ',\n '&#160;': ' ',\n '&copy;': '©',\n '&#169;': '©',\n '&reg;': '®',\n '&#174;': '®',\n '&hellip;': '…',\n '&#8230;': '…',\n '&#x2F;': '/',\n '&#47;': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { unescape } from './unescape.js';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","var i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport var I18nContext = createContext();\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","const debugMode = !!(\n process.env.NODE_ENV !== 'production' && process.env.REACT_APP_I18N_DEBUG\n);\n\nconst detectionOptions = {\n // order and from where user language should be detected\n order: ['querystring', 'cookie', 'localStorage', 'navigator', 'htmlTag', 'path', 'subdomain'],\n\n // keys or params to lookup language from\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupFromPathIndex: 0,\n lookupFromSubdomainIndex: 0,\n\n // cache user language on\n caches: ['localStorage', 'cookie'],\n excludeCacheFor: ['cimode'], // languages to not persist (cookie, localStorage)\n\n // optional htmlTag with lang attribute, the default is:\n htmlTag: document.documentElement\n};\n\nexport { debugMode, detectionOptions };\n","const languagesMap = {\n ar: 'Arabic',\n am: 'Amharic',\n bg: 'Bulgarian',\n bn: 'Bengali',\n ca: 'Catalan',\n cs: 'Czech',\n da: 'Danish',\n de: 'German',\n el: 'Greek',\n en: 'English',\n 'en-GB': 'English (Great Britain)',\n 'en-US': 'English (USA)',\n es: 'Spanish',\n et: 'Estonian',\n fa: 'Persian',\n fi: 'Finnish',\n fil: 'Filipino',\n fr: 'French',\n gu: 'Gujarati',\n he: 'Hebrew',\n hi: 'Hindi',\n hr: 'Croatian',\n hu: 'Hungarian',\n id: 'Indonesian',\n it: 'Italian',\n ja: 'Japanese',\n 'ja-JP': 'Japanese (Japan)',\n kn: 'Kannada',\n ko: 'Korean',\n lt: 'Lithuanian',\n lv: 'Latvian',\n ml: 'Malayalam',\n mr: 'Marathi',\n ms: 'Malay',\n nl: 'Dutch',\n no: 'Norwegian',\n pl: 'Polish',\n 'pt-BR': 'Portuguese (Brazil)',\n 'pt-PT': 'Portuguese (Portugal)',\n ro: 'Romanian',\n ru: 'Russian',\n sk: 'Slovak',\n sl: 'Slovenian',\n sr: 'Serbian',\n sv: 'Swedish',\n sw: 'Swahili',\n ta: 'Tamil',\n te: 'Telugu',\n th: 'Thai',\n tr: 'Turkish',\n uk: 'Ukrainian',\n vi: 'Vietnamese',\n zh: 'Chinese',\n 'zh-CN': 'Chinese (China)',\n 'zh-TW': 'Chinese (Taiwan)',\n 'test-LNG': 'Test Language',\n};\n\nconst getLanguageLabel = (language) => {\n return languagesMap[language];\n};\n\nexport default function getAvailableLanguagesInfo(locales) {\n const availableLanguagesInfo = [];\n\n Object.keys(locales).forEach(key => {\n availableLanguagesInfo.push({\n value: key,\n label: getLanguageLabel(key) || key,\n });\n });\n\n return availableLanguagesInfo;\n}\n\nexport { getAvailableLanguagesInfo, getLanguageLabel };\n","import UserPreferencesModal from './UserPreferencesModal.json';\n\nexport default {\n ar: {\n UserPreferencesModal,\n },\n};\n","import AboutModal from './AboutModal.json';\nimport Buttons from './Buttons.json';\nimport CineDialog from './CineDialog.json';\nimport Common from './Common.json';\nimport DatePicker from './DatePicker.json';\nimport Header from './Header.json';\nimport MeasurementTable from './MeasurementTable.json';\nimport SidePanel from './SidePanel.json';\nimport StudyBrowser from './StudyBrowser.json';\nimport StudyList from './StudyList.json';\nimport UserPreferencesModal from './UserPreferencesModal.json';\nimport ViewportDownloadForm from './ViewportDownloadForm.json';\n\nexport default {\n 'en-US': {\n AboutModal,\n Buttons,\n CineDialog,\n Common,\n DatePicker,\n Header,\n MeasurementTable,\n SidePanel,\n StudyBrowser,\n StudyList,\n UserPreferencesModal,\n ViewportDownloadForm,\n },\n};\n","import AboutModal from './AboutModal.json';\nimport Buttons from './Buttons.json';\nimport CineDialog from './CineDialog.json';\nimport Common from './Common.json';\nimport DatePicker from './DatePicker.json';\nimport Header from './Header.json';\nimport MeasurementTable from './MeasurementTable.json';\nimport SidePanel from './SidePanel.json';\nimport StudyBrowser from './StudyBrowser.json';\nimport StudyList from './StudyList.json';\nimport UserPreferencesModal from './UserPreferencesModal.json';\nimport ViewportDownloadForm from './ViewportDownloadForm.json';\n\nexport default {\n es: {\n AboutModal,\n Buttons,\n CineDialog,\n Common,\n DatePicker,\n Header,\n MeasurementTable,\n SidePanel,\n StudyBrowser,\n StudyList,\n UserPreferencesModal,\n ViewportDownloadForm,\n },\n};\n","import Buttons from './Buttons.json';\nimport CineDialog from './CineDialog.json';\nimport Common from './Common.json';\nimport Header from './Header.json';\nimport UserPreferencesModal from './UserPreferencesModal.json';\n\nexport default {\n fr: {\n Buttons,\n CineDialog,\n Common,\n Header,\n UserPreferencesModal,\n },\n};\n","import Buttons from './Buttons.json';\nimport CineDialog from './CineDialog.json';\nimport Common from './Common.json';\nimport Header from './Header.json';\nimport UserPreferencesModal from './UserPreferencesModal.json';\n\nexport default {\n 'ja-JP': {\n Buttons,\n CineDialog,\n Common,\n Header,\n UserPreferencesModal,\n },\n};\n","import Buttons from './Buttons.json';\nimport Common from './Common.json';\nimport Header from './Header.json';\n\nexport default {\n nl: {\n Buttons,\n Common,\n Header,\n },\n};\n","import AboutModal from './AboutModal.json';\nimport Buttons from './Buttons.json';\nimport CineDialog from './CineDialog.json';\nimport Common from './Common.json';\nimport DatePicker from './DatePicker.json';\nimport Header from './Header.json';\nimport UserPreferencesModal from './UserPreferencesModal.json';\nimport MeasurementTable from './MeasurementTable.json';\n\nexport default {\n 'pt-BR': {\n AboutModal,\n Buttons,\n CineDialog,\n Common,\n DatePicker,\n Header,\n UserPreferencesModal,\n MeasurementTable,\n },\n};\n","import Buttons from './Buttons.json';\nimport CineDialog from './CineDialog.json';\nimport Common from './Common.json';\nimport Header from './Header.json';\nimport StudyList from './StudyList.json';\nimport UserPreferencesModal from './UserPreferencesModal.json';\n\nexport default {\n vi: {\n Buttons,\n CineDialog,\n Common,\n Header,\n StudyList,\n UserPreferencesModal,\n },\n};\n","import Buttons from './Buttons.json';\nimport CineDialog from './CineDialog.json';\nimport Common from './Common.json';\nimport Header from './Header.json';\nimport MeasurementTable from './MeasurementTable.json';\nimport StudyList from './StudyList.json';\nimport UserPreferencesModal from './UserPreferencesModal.json';\n\nexport default {\n zh: {\n Buttons,\n CineDialog,\n Common,\n Header,\n MeasurementTable,\n StudyList,\n UserPreferencesModal,\n },\n};\n","import ar from './ar/';\nimport en_US from './en-US/';\nimport es from './es/';\nimport fr from './fr/';\nimport ja_JP from './ja-JP/';\nimport nl from './nl/';\nimport pt_BR from './pt-BR/';\nimport vi from './vi/';\nimport zh from './zh/';\nimport test_lng from './test-LNG/';\n\nexport default {\n ...ar,\n ...en_US,\n ...es,\n ...fr,\n ...ja_JP,\n ...nl,\n ...pt_BR,\n ...vi,\n ...zh,\n ...test_lng\n};\n","import AboutModal from './AboutModal.json';\nimport Buttons from './Buttons.json';\nimport CineDialog from './CineDialog.json';\nimport Common from './Common.json';\nimport DatePicker from './DatePicker.json';\nimport Header from './Header.json';\nimport MeasurementTable from './MeasurementTable.json';\nimport StudyList from './StudyList.json';\nimport UserPreferencesModal from './UserPreferencesModal.json';\nimport ViewportDownloadForm from './ViewportDownloadForm.json';\nimport ToolTip from './ToolTip.json';\nimport StudyBrowser from './StudyBrowser.json';\nimport SidePanel from './SidePanel.json';\nimport PatientInfo from './PatientInfo.json';\nimport Modes from './Modes.json';\nimport Modals from './Modals.json';\n\nexport default {\n 'test-LNG': {\n AboutModal,\n Buttons,\n CineDialog,\n Common,\n DatePicker,\n Header,\n MeasurementTable,\n StudyList,\n UserPreferencesModal,\n ViewportDownloadForm,\n ToolTip,\n StudyBrowser,\n PatientInfo,\n Modes,\n SidePanel,\n Modals\n },\n};\n","import i18n from 'i18next';\nimport Backend from 'i18next-locize-backend';\nimport LastUsed from 'locize-lastused';\nimport Editor from 'locize-editor';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\nimport customDebug from './debugger';\nimport pkg from '../package.json';\nimport { debugMode, detectionOptions } from './config';\nimport { getLanguageLabel, getAvailableLanguagesInfo } from './utils.js';\n\n// Note: The index.js files inside src/locales are dynamically generated\n// by the pullTranslations.sh script\nimport locales from './locales';\n\nfunction addLocales(newLocales) {\n customDebug(`Adding locales ${newLocales}`, 'info');\n\n let resourceBundle = [];\n\n Object.keys(newLocales).map(key => {\n Object.keys(newLocales[key]).map(namespace => {\n const locale = newLocales[key][namespace];\n resourceBundle.push({ key, namespace, locale });\n i18n.addResourceBundle(key, namespace, locale, true, true);\n });\n });\n\n customDebug(`Locales added successfully`, 'info');\n customDebug(resourceBundle, 'info');\n}\n\n/*\n * Note: Developers can add the API key to use the\n * in-context editor using environment variables.\n * (DO NOT commit the API key)\n */\nconst locizeOptions = {\n projectId: process.env.LOCIZE_PROJECTID,\n apiKey: process.env.LOCIZE_API_KEY,\n referenceLng: 'en-US',\n fallbacklng: 'en-US',\n};\n\nconst envUseLocize = !!process.env.USE_LOCIZE;\nconst envApiKeyAvailable = !!process.env.LOCIZE_API_KEY;\nconst DEFAULT_LANGUAGE = 'en-US';\n\nfunction initI18n(\n detection = detectionOptions,\n useLocize = envUseLocize,\n apiKeyAvailable = envApiKeyAvailable\n) {\n let initialized;\n\n if (useLocize) {\n customDebug(`Using Locize for translation files`, 'info');\n initialized = i18n\n // i18next-locize-backend\n // loads translations from your project, saves new keys to it (saveMissing: true)\n // https://github.com/locize/i18next-locize-backend\n .use(Backend)\n // locize-lastused\n // sets a timestamp of last access on every translation segment on locize\n // -> safely remove the ones not being touched for weeks/months\n // https://github.com/locize/locize-lastused\n .use(LastUsed)\n // locize-editor\n // InContext Editor of locize ?locize=true to show it\n // https://github.com/locize/locize-editor\n .use(Editor)\n // detect user language\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(LanguageDetector)\n // pass the i18n instance to react-i18next.\n .use(initReactI18next)\n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: DEFAULT_LANGUAGE,\n saveMissing: apiKeyAvailable,\n debug: debugMode,\n keySeparator: false,\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n },\n detection,\n backend: locizeOptions,\n locizeLastUsed: locizeOptions,\n editor: {\n ...locizeOptions,\n onEditorSaved: async (lng, ns) => {\n // reload that namespace in given language\n await i18n.reloadResources(lng, ns);\n // trigger an event on i18n which triggers a rerender\n // based on bindI18n below in react options\n i18n.emit('editorSaved');\n },\n },\n react: {\n useSuspense: false, // TODO: Was seeing weird errors without this\n wait: true,\n bindI18n: 'languageChanged editorSaved',\n },\n });\n } else {\n customDebug(`Using local translation files`, 'info');\n initialized = i18n\n // detect user language\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(LanguageDetector)\n // pass the i18n instance to react-i18next.\n .use(initReactI18next)\n // init i18next\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: DEFAULT_LANGUAGE,\n resources: locales,\n debug: debugMode,\n keySeparator: false,\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n },\n detection,\n react: {\n wait: true,\n },\n });\n }\n\n return initialized.then(function (t) {\n i18n.T = t;\n customDebug(`T function available.`, 'info');\n });\n}\n\ncustomDebug(`version ${pkg.version} loaded.`, 'info');\n\ni18n.initializing = initI18n();\ni18n.initI18n = initI18n;\ni18n.addLocales = addLocales;\ni18n.availableLanguages = getAvailableLanguagesInfo(locales);\ni18n.defaultLanguage = { label: getLanguageLabel(DEFAULT_LANGUAGE), value: DEFAULT_LANGUAGE };\ni18n.currentLanguage = () => ({ label: getLanguageLabel(i18n.language), value: i18n.language });\n\nexport default i18n;\n"],"names":["root","factory","exports","module","define","amd","globalThis","Object","defineProperty","value","cookie","name","minutes","domain","expires","date","Date","setTime","getTime","toGMTString","document","nameEQ","ca","split","i","length","c","charAt","substring","indexOf","lookup","options","found","lookupCookie","cacheUserLanguage","lng","cookieMinutes","cookieDomain","htmlTag","documentElement","getAttribute","hasLocalStorageSupport","window","localStorage","testKey","setItem","removeItem","e","lookupLocalStorage","getItem","navigator","languages","push","userLanguage","language","undefined","location","pathname","match","Array","lookupFromPathIndex","replace","params","search","pos","lookupQuerystring","href","lookupFromSubdomainIndex","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","utils","obj","__esModule","newObj","hasOwnProperty","call","default","_interopRequireWildcard","_cookie2","_interopRequireDefault","_querystring2","_localStorage2","_navigator2","_htmlTag2","_path2","_subdomain2","Browser","services","arguments","instance","TypeError","_classCallCheck","this","type","detectors","init","i18nOptions","defaults","order","caches","excludeCacheFor","checkWhitelist","lookupFromUrlIndex","addDetector","detector","detectionOrder","_this","detected","forEach","detectorName","concat","cleanedLng","languageUtils","formatLanguageCode","isWhitelisted","fallbacks","fallbackLng","toString","apply","_this2","cacheName","each","slice","source","prop","extend","arr","main","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","n","join","test3","letter","keys","err","shouldUseNative","from","symbols","to","val","toObject","s","l","p","q","r","t","u","v","Symbol","for","w","x","iterator","z","a","b","encodeURIComponent","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","C","context","refs","updater","D","E","isReactComponent","setState","Error","forceUpdate","F","constructor","isPureReactComponent","G","current","H","I","ref","__self","__source","J","d","k","h","g","children","f","m","defaultProps","$$typeof","_owner","L","M","N","escape","O","isArray","K","y","next","done","P","Q","_status","_result","then","R","S","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","o","get","toStringTag","_toPropertyKey","arg","input","hint","prim","toPrimitive","res","Number","_objectSpread","ownKeys","filter","sym","getOwnPropertyDescriptor","_defineProperties","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_getPrototypeOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_setPrototypeOf","_inherits","subClass","superClass","create","_arrayLikeToArray","len","arr2","_unsupportedIterableToArray","minLen","test","_toConsumableArray","iter","_i","_s","_e","_x","_r","_arr","_n","_d","consoleLogger","log","args","output","warn","error","_console","console","baseLogger","Logger","concreteLogger","prefix","logger","debug","bool","_len","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","EventEmitter","observers","events","listener","event","observer","defer","rej","promise","Promise","resolve","reject","makeString","object","getLastOfPath","path","Empty","cleanKey","canNotTraverseDeeper","stack","shift","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","data","defaultData","deepExtend","overwrite","regexEscape","str","_entityMap","ResourceStore","_EventEmitter","ns","defaultNS","keySeparator","index","splice","silent","addNamespaces","emit","resources","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","handle","translator","processor","process","Translator","copy","interpolation","resolved","nsSeparator","namespaces","parts","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","copy$$1","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","isValidLookup","defaultValue","count","suffix","pluralResolver","getSuffix","updateMissing","lngs","fallbackLngs","getFallbackCodes","saveMissingTo","toResolveHierarchy","send","missingKeyHandler","backendConnector","saveMissing","needsPluralHandling","saveMissingPlurals","getPluralFormsOfKey","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","parse","usedLng","usedNS","skipInterpolation","interpolator","defaultVariables","interpolate","nest","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsContextHandling","codes","hasLoadedNamespace","code","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","pop","returnNull","returnEmptyString","resourceStore","capitalize","string","toUpperCase","LanguageUtil","whitelist","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitWhitelist","getLanguagePartFromCode","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","PluralResolver","rules","set","numbers","plurals","rule","getRule","ret","idx","noAbs","Math","abs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","format","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","maxReplaces","resetRegExp","regexpStr","regexp","RegExp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","nestingRegexp","replaces","regexSafe","handleFormat","trim","missingInterpolationHandler","exec","temp","lastIndex","_temp","clonedOptions","handleHasOptions","inheritedOptions","optionsString","JSON","Connector","backend","store","state","queue","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","_name$split2","addResourceBundle","_getLastOfPath2","what","remove","fcName","tried","wait","setTimeout","read","queueLoad","loadOne","prepareLoading","_this5","_name$split4","fallbackValue","isUpdate","transformOptions","noop","I18n","modules","external","isInitialized","isClone","initImmediate","createClassOnDemand","ClassOrObject","preload","pluralSeparator","partialBundledLanguages","tDescription","_format","lu","on","languageDetector","detection","_this2$store","deferred","changeLanguage","append","setLng","loadResources","async","detect","fixedT","opts","rest","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","_this7","preloaded","newLngs","_this8","mergedOptions","clone","isMissingOption","reduce","mem","enumerableOnly","getOwnPropertyDescriptors","ajax","url","cache","XMLHttpRequest","ActiveXObject","open","crossDomain","setRequestHeader","authorize","apiKey","setContentTypeJSON","onreadystatechange","readyState","responseText","stringify","I18NextLocizeBackend","projectId","i18nextOptions","loadPath","privatePath","pullPath","getLanguagesPath","addPath","updatePath","referenceLng","version","pull","whitelistThreshold","failLoadingOnEmptyJSON","allowedAddOrUpdateHosts","onSaved","func","immediate","timeout","hostname","isAddOrUpdateAllowed","getOptions","queuedWrites","debouncedProcess","callNow","clearTimeout","isMissing","loadUrl","getLanguages","isReferenceLanguage","item","translated","hasRegion","_isMissing","_isMissing2","xhr","status","missingUrl","updatesUrl","missings","hasMissing","hasUpdates","payloadMissing","payloadUpdate","text","todo","doneOne","missing","write","_extends","locizeLastUsed","isI18next","lastUsedPath","debounceSubmit","allowedHosts","isAllowed","submitting","submit","interceptI18next","i18next","origGetResource","used","offset","elem","docElem","win","box","top","left","right","bottom","doc","ownerDocument","getBoundingClientRect","nodeType","defaultView","getWindow","pageYOffset","clientTop","pageXOffset","clientLeft","removeNamespace","getElementNamespace","el","find","jsonData","parentElement","getQueryVariable","variable","vars","pair","baseBtn","defaultOptions","openDashboard","enabled","enableByQS","toggleKeyCode","toggleKeyModifier","lngOverrideQS","lngOverride","hasNamespacePrefixed","autoOpen","onEditorSaved","mode","iframeContainerStyle","iframeStyle","bodyStyle","editor","handler","handleSavedMissing","addEventListener","which","off","srcElement","originalEvent","explicitOriginalTarget","parent","topBreaksAt","pageX","pageY","topStartsAt","childNodes","nOffset","clientHeight","getClickedElement","preventDefault","stopPropagation","textContent","innerText","placeholder","payload","message","token","locizeInstance","postMessage","focus","closed","cont","createElement","setAttribute","iframe","appendChild","body","contentWindow","appendIframe","toggleUI","title","id","innerHTML","turnOff","onclick","turnOn","style","display","initUI","removeEventListener","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","unescape","initReactI18next","setDefaults","react","setI18n","ReportNamespaces","usedNamespaces","debugMode","detectionOptions","languagesMap","ar","am","bg","bn","cs","da","de","en","es","et","fa","fi","fil","fr","gu","he","hi","hr","hu","it","ja","kn","ko","lt","lv","ml","mr","ms","nl","no","pl","ro","ru","sk","sl","sr","sv","sw","ta","te","th","tr","uk","vi","zh","getLanguageLabel","UserPreferencesModal","AboutModal","Buttons","CineDialog","Common","DatePicker","Header","MeasurementTable","SidePanel","StudyBrowser","StudyList","ViewportDownloadForm","en_US","ja_JP","pt_BR","ToolTip","PatientInfo","Modes","Modals","locizeOptions","fallbacklng","DEFAULT_LANGUAGE","initI18n","initialized","apiKeyAvailable","i18n","Backend","use","LastUsed","Editor","LanguageDetector","locales","newLocales","resourceBundle","locale","availableLanguagesInfo","label","getAvailableLanguagesInfo"],"sourceRoot":""}