{"version":3,"sources":["../node_modules/i18next-chained-backend/dist/esm/i18nextChainedBackend.js"],"names":["arr","each","forEach","slice","defaults","obj","call","arguments","source","prop","undefined","createClassOnDemand","ClassOrObject","Backend","services","options","length","_classCallCheck","this","backends","type","init","_createClass","key","value","_this","i18nextOptions","handleEmptyResourcesAsFailed","b","i","backendOptions","language","namespace","callback","_this2","bLen","savePosition","pos","data","backend","save","loadPosition","Error","isLastBackend","lengthCheckAmount","read","err","Object","keys","languages","fallbackValue","create"],"mappings":"wGAAA,sBAGIA,EAAM,GACNC,EAAOD,EAAIE,QACXC,EAAQH,EAAIG,MAChB,SAASC,EAASC,GAQhB,OAPAJ,EAAKK,KAAKH,EAAMG,KAAKC,UAAW,IAAI,SAAUC,GAC5C,GAAIA,EACF,IAAK,IAAIC,KAAQD,OACGE,IAAdL,EAAII,KAAqBJ,EAAII,GAAQD,EAAOC,OAI/CJ,EAET,SAASM,EAAoBC,GAC3B,OAAKA,EACwB,oBAAlBA,EAAqC,IAAIA,EAC7CA,EAFoB,KAW7B,IAAIC,EAAuB,WACzB,SAASA,EAAQC,GACf,IAAIC,EAAUR,UAAUS,OAAS,QAAsBN,IAAjBH,UAAU,GAAmBA,UAAU,GAAK,GAElFU,YAAgBC,KAAML,GAEtBK,KAAKC,SAAW,GAChBD,KAAKE,KAAO,UACZF,KAAKG,KAAKP,EAAUC,GAqEtB,OAlEAO,YAAaT,EAAS,CAAC,CACrBU,IAAK,OACLC,MAAO,SAAcV,GACnB,IAAIW,EAAQP,KAERH,EAAUR,UAAUS,OAAS,QAAsBN,IAAjBH,UAAU,GAAmBA,UAAU,GAAK,GAC9EmB,EAAiBnB,UAAUS,OAAS,EAAIT,UAAU,QAAKG,EAC3DQ,KAAKJ,SAAWA,EAChBI,KAAKH,QAAUX,EAASW,EAASG,KAAKH,SAAW,GAxB9C,CACLY,8BAA8B,IAwB5BT,KAAKH,QAAQI,UAAYD,KAAKH,QAAQI,SAASjB,SAAQ,SAAU0B,EAAGC,GAClEJ,EAAMN,SAASU,GAAKJ,EAAMN,SAASU,IAAMlB,EAAoBiB,GAE7DH,EAAMN,SAASU,GAAGR,KAAKP,EAAUW,EAAMV,QAAQe,gBAAkBL,EAAMV,QAAQe,eAAeD,IAAM,GAAIH,QAG3G,CACDH,IAAK,OACLC,MAAO,SAAcO,EAAUC,EAAWC,GACxC,IAAIC,EAAShB,KAETiB,EAAOjB,KAAKC,SAASH,OAuBrBoB,EAAe,SAASA,EAAaC,EAAKC,GAC5C,KAAID,EAAM,GAAV,CACA,IAAIE,EAAUL,EAAOf,SAASkB,GAE1BE,EAAQC,MACVD,EAAQC,KAAKT,EAAUC,EAAWM,GAClCF,EAAaC,EAAM,EAAGC,IAEtBF,EAAaC,EAAM,EAAGC,MA7BP,SAASG,EAAaJ,GACvC,GAAIA,GAAOF,EAAM,OAAOF,EAAS,IAAIS,MAAM,mCAAmC,IAE9E,IAAIC,EAAgBN,IAAQF,EAAO,EAC/BS,EAAoBV,EAAOnB,QAAQY,+BAAiCgB,EAAgB,GAAK,EACzFJ,EAAUL,EAAOf,SAASkB,GAE1BE,EAAQM,KACVN,EAAQM,KAAKd,EAAUC,GAAW,SAAUc,EAAKR,IAC1CQ,GAAOR,GAAQS,OAAOC,KAAKV,GAAMtB,OAAS4B,GAC7CX,EAAS,KAAMK,EAAMD,GACrBD,EAAaC,EAAM,EAAGC,IAEtBG,EAAaJ,EAAM,MAIvBI,EAAaJ,EAAM,GAgBvBI,CAAa,KAEd,CACDlB,IAAK,SACLC,MAAO,SAAgByB,EAAWjB,EAAWT,EAAK2B,GAChDhC,KAAKC,SAASjB,SAAQ,SAAU0B,GAC1BA,EAAEuB,QAAQvB,EAAEuB,OAAOF,EAAWjB,EAAWT,EAAK2B,UAKjDrC,EA7EkB,GAgF3BA,EAAQO,KAAO,UAEAP","file":"static/js/i18next-chained-backend.c1d8308a.chunk.js","sourcesContent":["import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n}\n\nfunction getDefaults() {\n return {\n handleEmptyResourcesAsFailed: true\n };\n}\n\nvar Backend = /*#__PURE__*/function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Backend);\n\n this.backends = [];\n this.type = 'backend';\n this.init(services, options);\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nextOptions = arguments.length > 2 ? arguments[2] : undefined;\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.options.backends && this.options.backends.forEach(function (b, i) {\n _this.backends[i] = _this.backends[i] || createClassOnDemand(b);\n\n _this.backends[i].init(services, _this.options.backendOptions && _this.options.backendOptions[i] || {}, i18nextOptions);\n });\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var _this2 = this;\n\n var bLen = this.backends.length;\n\n var loadPosition = function loadPosition(pos) {\n if (pos >= bLen) return callback(new Error('non of the backend loaded data;', true)); // failed pass retry flag\n\n var isLastBackend = pos === bLen - 1;\n var lengthCheckAmount = _this2.options.handleEmptyResourcesAsFailed && !isLastBackend ? 0 : -1;\n var backend = _this2.backends[pos];\n\n if (backend.read) {\n backend.read(language, namespace, function (err, data) {\n if (!err && data && Object.keys(data).length > lengthCheckAmount) {\n callback(null, data, pos);\n savePosition(pos - 1, data); // save one in front\n } else {\n loadPosition(pos + 1); // try load from next\n }\n });\n } else {\n loadPosition(pos + 1); // try load from next\n }\n };\n\n var savePosition = function savePosition(pos, data) {\n if (pos < 0) return;\n var backend = _this2.backends[pos];\n\n if (backend.save) {\n backend.save(language, namespace, data);\n savePosition(pos - 1, data);\n } else {\n savePosition(pos - 1, data);\n }\n };\n\n loadPosition(0);\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n this.backends.forEach(function (b) {\n if (b.create) b.create(languages, namespace, key, fallbackValue);\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\n\nexport default Backend;\n"],"sourceRoot":""}