UNPKG

@mescius/dsimageviewer

Version:

Document Solutions Image Viewer

1,324 lines 838 kB
var Fe = /* @__PURE__ */ ((l) => (l[l.Default = 0] = "Default", l[l.JPEG = 1] = "JPEG", l[l.PNG = 2] = "PNG", l[l.TIFF = 3] = "TIFF", l[l.GIF = 4] = "GIF", l[l.BMP = 5] = "BMP", l[l.ICO = 6] = "ICO", l[l.SVG = 7] = "SVG", l[l.WEBP = 8] = "WEBP", l))(Fe || {}); navigator.userAgent.indexOf("Trident/") > -1; const ar = { Android: function() { return !!navigator.userAgent.match(/Android/i); }, BlackBerry: function() { return !!navigator.userAgent.match(/BlackBerry/i); }, iOS: function() { return !!navigator.userAgent.match(/iPhone|iPad|iPod/i); }, iOSDesktopMode: function() { return navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1; }, /** * returns array of iOS version numbers: [major, minor, build]. **/ iOSVer() { if (this.iOS()) { const l = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/); return l ? [parseInt(l[1], 10), parseInt(l[2], 10), parseInt(l[3] || "0", 10)] : [0, 0, 0]; } else return [0, 0, 0]; }, likeMac: function() { return !!/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform); }, OperaMini: function() { return !!navigator.userAgent.match(/Opera Mini/i); }, WindowsMobile: function() { return !!(navigator.userAgent.match(/IEMobile/i) || navigator.userAgent.match(/WPDesktop/i)); }, WindowsAny: function() { return !!navigator.userAgent.match(/Windows/i); }, anyMobile: function() { return !!(ar.Android() || ar.BlackBerry() || ar.iOS() || ar.iOSDesktopMode() || ar.OperaMini() || ar.WindowsMobile()); } }; let ir; function Bm() { return ir = document.getElementById("gcdpitest"), ir || (ir = document.createElement("div"), ir.id = "gcdpitest", ir.style.cssText = "z-index: -100; height: 1in; left: -100px; position: absolute; top: -100px; width: 1in; opacity: 0; margin: 0; padding: 0; border: 0;", document.body.appendChild(ir)), ir; } function I1() { return Bm().offsetHeight; } function O1(l, n, i, r) { const s = I1(), a = r ? window.devicePixelRatio : 1, d = l * s * a / i, f = n * s * a / i; return { width: d, height: f }; } function Vm(l, n) { const i = O1(l.width, l.height, n); l.width = i.width, l.height = i.height; } function z1(l) { return { width: l.naturalWidth || l.offsetWidth, height: l.naturalHeight || l.offsetHeight }; } async function Dm(l) { const n = await fetch(l, { mode: "cors" }); if (!n.ok) throw new Error(`Failed to load image: ${n.status} ${n.statusText}`); const i = await n.arrayBuffer(); return new Uint8Array(i); } function R1(l, n, i, r, s, a) { return new Promise((d, f) => { const m = new Image(); m.onload = function() { if (!n) { n = document.createElement("canvas"); const M = z1(m); n.style.width = M.width + "px", n.style.height = M.height + "px", n.width = M.width, n.height = M.height; } const g = n.getContext("2d"); g && (s !== void 0 && a !== void 0 ? g.drawImage(m, i || 0, r || 0, s, a) : g.drawImage(m, i || 0, r || 0), d(n)); }, m.onerror = function(g) { f(g); }, m.crossOrigin = "anonymous", m.src = l; }); } function $1(l, n, i, r, s = !0) { const a = n.getContext("2d"), d = l.naturalWidth, f = l.naturalHeight, m = d / f; (s || r === void 0) && (r = i / m), n.width = i, n.height = r, a && a.drawImage(l, 0, 0, i, r); } async function Fm(l, n, i, r, s = !0) { const a = document.createElement("canvas"), d = await new Promise((f) => { a.width = n.width, a.height = n.height; const m = new Image(); m.onload = () => { $1(m, a, i, r, s); try { f(a.toDataURL()); } catch (g) { console.error(g), f(""); } }, m.onerror = function(g) { console.error(g), f(""); }, m.crossOrigin = "Anonymous"; try { m.src = l; } catch (g) { console.error(g), f(""); } }); return a.width = 0, a.height = 0, d; } function Zm(l, n, i, r, s, a) { const d = n.getContext("2d"), f = l.naturalWidth, m = l.naturalHeight, g = f / m; a === void 0 && (a = s / g), n.width = s, n.height = a, d && d.drawImage(l, i, r, s, a, 0, 0, s, a); } function Um(l, n = "image/png") { l.toBlob(function(i) { if (i) try { const r = new ClipboardItem({ [n]: i }); navigator.clipboard.write([r]); } catch (r) { console.warn("Unable to copy image to clipboard. Reason: " + r); } }); } async function jm(l = "image/png") { try { const n = await navigator.clipboard.read(); for (const i of n) { const r = await i.getType(l); if (r) { const s = await r.arrayBuffer(), a = new Image(), d = new Blob([s], { type: l }); return a.src = URL.createObjectURL(d), new Promise((f) => { a.onload = () => { const m = document.createElement("canvas"); m.width = a.width, m.height = a.height, m.getContext("2d").drawImage(a, 0, 0), f(m); }; }); } } throw new Error("No image found in clipboard."); } catch (n) { throw new Error(`Failed to get image from clipboard: ${n}`); } } async function Wm(l, n, i) { try { const { width: r, height: s } = l, a = l.getContext("2d"); if (!i && !ar.likeMac()) a.putImageData(n, 0, 0, 0, 0, r, s); else { const d = await createImageBitmap(n, 0, 0, r, s); i || a.drawImage(d, 0, 0, r, s); } return !0; } catch (r) { return console.error("safePutImageData error", r), !1; } } function Ym(l) { return new Promise((n, i) => { const r = new Image(); r.onload = () => n(r), r.onerror = i, r.src = l; }); } async function Xm(l) { const n = await R1(l); return new Promise((i, r) => { n.toBlob((s) => { if (!s) { r(new Error("Failed to convert canvas to blob")); return; } const a = new FileReader(); a.onload = () => { a.result instanceof ArrayBuffer ? i(new Uint8Array(a.result)) : r(new Error("Failed to read blob data")); }, a.onerror = r, a.readAsArrayBuffer(s); }); }); } const Gm = { cropImage: Zm, dataUrlToUint8Array: Dm, // url-> bytes dataUrlToUint8ArrayViaCanvas: Xm, // url-> bytes resizeImage: $1, resizeImageDataUrl: Fm, currentDisplayPxPerInch: I1, getImageNaturalSize: z1, imageFromUrl: Ym, // url -> image imageDataToCanvas: R1, // url -> canvas setDpiAdaptiveSize: Vm, getDpiAdaptiveSize: O1, copyImageCanvasToClipboard: Um, getImageCanvasFromClipboard: jm }; let _t; function Km() { return _t || (_t = {}, _t[Fe.TIFF] = ["tif", "tiff", "xif", "xiff", "image/tiff", "image/tiff-fx", "image/x-tif", "image/x-tiff", "image/vnd.xiff", "images/xif", "application/tif", "application/tiff", "application/x-tif", "application/x-tiff"], _t[Fe.BMP] = ["bmp", "bitmap", "application/bmp", "application/x-bmp", "application/x-win-bitmap", "image/ms-bmp", "image/x-bitmap", "image/x-bmp", "image/x-ms-bmp", "image/x-win-bitmap", "image/x-windows-bmp", "image/x-xbitmap"], _t[Fe.SVG] = ["svg", "svg+xml", "text/xml-svg", "text/xml+svg", "image/svg", "image/svg-xml", "image/svg+xml", "image/vnd.adobe.svg+xml"], _t[Fe.ICO] = ["ico", "image/ico", "image/x-icon", "application/ico", "application/x-ico"], _t[Fe.GIF] = ["gif", "image/gi_", "image/gif"], _t[Fe.JPEG] = ["jpg", "jpeg", "image/jp_", "image/jpe_", "image/jpg", "image/jpeg", "image/pipeg", "image/pjpeg", "application/jpg", "application/x-jpg", "image/vnd.swiftview-jpeg"], _t[Fe.PNG] = ["png", "image/png", "application/png", "application/x-png"], _t[Fe.WEBP] = ["webp", "image/webp"]), _t; } function A1(l, n = Fe.Default) { if (!l) return n; if (typeof l == "number") return l; const i = []; if (typeof l == "string") i.push(l.toLowerCase().split(".").pop() || l); else { if (l.buffer) return n; l.type && i.push(l.type.toLowerCase()), l.name && i.push(l.name.toLowerCase().split(".").pop() || l.name); } const r = Km(); for (const s of i) for (const a in r) if (r[a].find((d) => d === s)) return a * 1; return n; } const Qm = "ImageFilter"; class qm { /** * Constructor. * @param filterId * @param prevRotation * @param rotationPlugin */ constructor(n, i, r, s) { this.filterId = n, this.originalImageDataUrl = i, this.intensity = r, this.plugin = s, this.name = Qm; } /** * Action implementation. * @param viewer **/ async execute(n) { await this.plugin.applyFilter(this.filterId, this.intensity); } /** * Undo action implementation. * @param viewer **/ async undo(n) { await n.setImageDataUrl(this.originalImageDataUrl); } } class Jm { /** * Constructor. * @param filterId * @param intensity * @param prevIntensity * @param plugin */ constructor(n, i, r, s, a) { this.filterId = n, this.intensity = i, this.prevIntensity = r, this.filterDef = s, this.imageFiltersPlugin = a, this.name = "FilterIntensity"; } /** * Action implementation. * @param viewer **/ async execute(n) { this.filterDef.intensity = this.intensity; const i = this.imageFiltersPlugin.filtersPreviewPanel; i && i.isMounted && await i.setFilterIntensity(this.filterId, this.intensity); } /** * Undo action implementation. * @param viewer **/ async undo(n) { this.filterDef.intensity = this.prevIntensity; const i = this.imageFiltersPlugin.filtersPreviewPanel; i && i.isMounted && await i.setFilterIntensity(this.filterId, this.prevIntensity); } } function Rt(l) { "@babel/helpers - typeof"; return Rt = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(n) { return typeof n; } : function(n) { return n && typeof Symbol == "function" && n.constructor === Symbol && n !== Symbol.prototype ? "symbol" : typeof n; }, Rt(l); } function ep(l, n) { if (Rt(l) != "object" || !l) return l; var i = l[Symbol.toPrimitive]; if (i !== void 0) { var r = i.call(l, n); if (Rt(r) != "object") return r; throw new TypeError("@@toPrimitive must return a primitive value."); } return String(l); } function B1(l) { var n = ep(l, "string"); return Rt(n) == "symbol" ? n : n + ""; } function tp(l, n, i) { return (n = B1(n)) in l ? Object.defineProperty(l, n, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : l[n] = i, l; } function We(l) { for (var n = 1; n < arguments.length; n++) { var i = arguments[n] != null ? Object(arguments[n]) : {}, r = Object.keys(i); typeof Object.getOwnPropertySymbols == "function" && r.push.apply(r, Object.getOwnPropertySymbols(i).filter(function(s) { return Object.getOwnPropertyDescriptor(i, s).enumerable; })), r.forEach(function(s) { tp(l, s, i[s]); }); } return l; } function dn(l, n) { if (!(l instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Id(l, n) { for (var i = 0; i < n.length; i++) { var r = n[i]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(l, B1(r.key), r); } } function hn(l, n, i) { return n && Id(l.prototype, n), i && Id(l, i), Object.defineProperty(l, "prototype", { writable: !1 }), l; } function hr(l) { if (l === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return l; } function Yi(l, n) { if (n && (Rt(n) == "object" || typeof n == "function")) return n; if (n !== void 0) throw new TypeError("Derived constructors may only return object or undefined"); return hr(l); } function Ur(l) { return Ur = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(n) { return n.__proto__ || Object.getPrototypeOf(n); }, Ur(l); } function ic(l, n) { return ic = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(i, r) { return i.__proto__ = r, i; }, ic(l, n); } function Ts(l, n) { if (typeof n != "function" && n !== null) throw new TypeError("Super expression must either be null or a function"); l.prototype = Object.create(n && n.prototype, { constructor: { value: l, writable: !0, configurable: !0 } }), Object.defineProperty(l, "prototype", { writable: !1 }), n && ic(l, n); } var np = { type: "logger", log: function(n) { this.output("log", n); }, warn: function(n) { this.output("warn", n); }, error: function(n) { this.output("error", n); }, output: function(n, i) { console && console[n] && console[n].apply(console, i); } }, rp = (function() { function l(n) { var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; dn(this, l), this.init(n, i); } return hn(l, [{ key: "init", value: function(i) { var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; this.prefix = r.prefix || "i18next:", this.logger = i || np, this.options = r, this.debug = r.debug; } }, { key: "setDebug", value: function(i) { this.debug = i; } }, { key: "log", value: function() { for (var i = arguments.length, r = new Array(i), s = 0; s < i; s++) r[s] = arguments[s]; return this.forward(r, "log", "", !0); } }, { key: "warn", value: function() { for (var i = arguments.length, r = new Array(i), s = 0; s < i; s++) r[s] = arguments[s]; return this.forward(r, "warn", "", !0); } }, { key: "error", value: function() { for (var i = arguments.length, r = new Array(i), s = 0; s < i; s++) r[s] = arguments[s]; return this.forward(r, "error", ""); } }, { key: "deprecate", value: function() { for (var i = arguments.length, r = new Array(i), s = 0; s < i; s++) r[s] = arguments[s]; return this.forward(r, "warn", "WARNING DEPRECATED: ", !0); } }, { key: "forward", value: function(i, r, s, a) { return a && !this.debug ? null : (typeof i[0] == "string" && (i[0] = "".concat(s).concat(this.prefix, " ").concat(i[0])), this.logger[r](i)); } }, { key: "create", value: function(i) { return new l(this.logger, We({}, { prefix: "".concat(this.prefix, ":").concat(i, ":") }, this.options)); } }]), l; })(), ln = new rp(), An = (function() { function l() { dn(this, l), this.observers = {}; } return hn(l, [{ key: "on", value: function(i, r) { var s = this; return i.split(" ").forEach(function(a) { s.observers[a] = s.observers[a] || [], s.observers[a].push(r); }), this; } }, { key: "off", value: function(i, r) { if (this.observers[i]) { if (!r) { delete this.observers[i]; return; } this.observers[i] = this.observers[i].filter(function(s) { return s !== r; }); } } }, { key: "emit", value: function(i) { for (var r = arguments.length, s = new Array(r > 1 ? r - 1 : 0), a = 1; a < r; a++) s[a - 1] = arguments[a]; if (this.observers[i]) { var d = [].concat(this.observers[i]); d.forEach(function(m) { m.apply(void 0, s); }); } if (this.observers["*"]) { var f = [].concat(this.observers["*"]); f.forEach(function(m) { m.apply(m, [i].concat(s)); }); } } }]), l; })(); function zi() { var l, n, i = new Promise(function(r, s) { l = r, n = s; }); return i.resolve = l, i.reject = n, i; } function Od(l) { return l == null ? "" : "" + l; } function ip(l, n, i) { l.forEach(function(r) { n[r] && (i[r] = n[r]); }); } function Mc(l, n, i) { function r(f) { return f && f.indexOf("###") > -1 ? f.replace(/###/g, ".") : f; } function s() { return !l || typeof l == "string"; } for (var a = typeof n != "string" ? [].concat(n) : n.split("."); a.length > 1; ) { if (s()) return {}; var d = r(a.shift()); !l[d] && i && (l[d] = new i()), Object.prototype.hasOwnProperty.call(l, d) ? l = l[d] : l = {}; } return s() ? {} : { obj: l, k: r(a.shift()) }; } function zd(l, n, i) { var r = Mc(l, n, Object), s = r.obj, a = r.k; s[a] = i; } function op(l, n, i, r) { var s = Mc(l, n, Object), a = s.obj, d = s.k; a[d] = a[d] || [], a[d].push(i); } function ks(l, n) { var i = Mc(l, n), r = i.obj, s = i.k; if (r) return r[s]; } function Rd(l, n, i) { var r = ks(l, i); return r !== void 0 ? r : ks(n, i); } function V1(l, n, i) { for (var r in n) r !== "__proto__" && r !== "constructor" && (r in l ? typeof l[r] == "string" || l[r] instanceof String || typeof n[r] == "string" || n[r] instanceof String ? i && (l[r] = n[r]) : V1(l[r], n[r], i) : l[r] = n[r]); return l; } function _r(l) { return l.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); } var sp = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;", "/": "&#x2F;" }; function ap(l) { return typeof l == "string" ? l.replace(/[&<>"'\/]/g, function(n) { return sp[n]; }) : l; } var _s = typeof window < "u" && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf("MSIE") > -1; function D1(l, n) { var i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "."; if (l) { if (l[n]) return l[n]; for (var r = n.split(i), s = l, a = 0; a < r.length; ++a) { if (typeof s[r[a]] == "string" && a + 1 < r.length) return; if (s[r[a]] === void 0) { for (var d = 2, f = r.slice(a, a + d).join(i), m = s[f]; m === void 0 && r.length > a + d; ) d++, f = r.slice(a, a + d).join(i), m = s[f]; if (m === void 0) return; if (typeof m == "string") return m; if (f && typeof m[f] == "string") return m[f]; var g = r.slice(a + d).join(i); return g ? D1(m, g, i) : void 0; } s = s[r[a]]; } return s; } } var lp = (function(l) { Ts(n, l); function n(i) { var r, s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { ns: ["translation"], defaultNS: "translation" }; return dn(this, n), r = Yi(this, Ur(n).call(this)), _s && An.call(hr(r)), r.data = i || {}, r.options = s, r.options.keySeparator === void 0 && (r.options.keySeparator = "."), r.options.ignoreJSONStructure === void 0 && (r.options.ignoreJSONStructure = !0), r; } return hn(n, [{ key: "addNamespaces", value: function(r) { this.options.ns.indexOf(r) < 0 && this.options.ns.push(r); } }, { key: "removeNamespaces", value: function(r) { var s = this.options.ns.indexOf(r); s > -1 && this.options.ns.splice(s, 1); } }, { key: "getResource", value: function(r, s, a) { var d = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {}, f = d.keySeparator !== void 0 ? d.keySeparator : this.options.keySeparator, m = d.ignoreJSONStructure !== void 0 ? d.ignoreJSONStructure : this.options.ignoreJSONStructure, g = [r, s]; a && typeof a != "string" && (g = g.concat(a)), a && typeof a == "string" && (g = g.concat(f ? a.split(f) : a)), r.indexOf(".") > -1 && (g = r.split(".")); var M = ks(this.data, g); return M || !m || typeof a != "string" ? M : D1(this.data && this.data[r] && this.data[r][s], a, f); } }, { key: "addResource", value: function(r, s, a, d) { var f = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : { silent: !1 }, m = this.options.keySeparator; m === void 0 && (m = "."); var g = [r, s]; a && (g = g.concat(m ? a.split(m) : a)), r.indexOf(".") > -1 && (g = r.split("."), d = s, s = g[1]), this.addNamespaces(s), zd(this.data, g, d), f.silent || this.emit("added", r, s, a, d); } }, { key: "addResources", value: function(r, s, a) { var d = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : { silent: !1 }; for (var f in a) (typeof a[f] == "string" || Object.prototype.toString.apply(a[f]) === "[object Array]") && this.addResource(r, s, f, a[f], { silent: !0 }); d.silent || this.emit("added", r, s, a); } }, { key: "addResourceBundle", value: function(r, s, a, d, f) { var m = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : { silent: !1 }, g = [r, s]; r.indexOf(".") > -1 && (g = r.split("."), d = a, a = s, s = g[1]), this.addNamespaces(s); var M = ks(this.data, g) || {}; d ? V1(M, a, f) : M = We({}, M, a), zd(this.data, g, M), m.silent || this.emit("added", r, s, a); } }, { key: "removeResourceBundle", value: function(r, s) { this.hasResourceBundle(r, s) && delete this.data[r][s], this.removeNamespaces(s), this.emit("removed", r, s); } }, { key: "hasResourceBundle", value: function(r, s) { return this.getResource(r, s) !== void 0; } }, { key: "getResourceBundle", value: function(r, s) { return s || (s = this.options.defaultNS), this.options.compatibilityAPI === "v1" ? We({}, {}, this.getResource(r, s)) : this.getResource(r, s); } }, { key: "getDataByLanguage", value: function(r) { return this.data[r]; } }, { key: "toJSON", value: function() { return this.data; } }]), n; })(An), F1 = { processors: {}, addPostProcessor: function(n) { this.processors[n.name] = n; }, handle: function(n, i, r, s, a) { var d = this; return n.forEach(function(f) { d.processors[f] && (i = d.processors[f].process(i, r, s, a)); }), i; } }, $d = {}, Ad = (function(l) { Ts(n, l); function n(i) { var r, s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; return dn(this, n), r = Yi(this, Ur(n).call(this)), _s && An.call(hr(r)), ip(["resourceStore", "languageUtils", "pluralResolver", "interpolator", "backendConnector", "i18nFormat", "utils"], i, hr(r)), r.options = s, r.options.keySeparator === void 0 && (r.options.keySeparator = "."), r.logger = ln.create("translator"), r; } return hn(n, [{ key: "changeLanguage", value: function(r) { r && (this.language = r); } }, { key: "exists", value: function(r) { var s = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : { interpolation: {} }, a = this.resolve(r, s); return a && a.res !== void 0; } }, { key: "extractFromKey", value: function(r, s) { var a = s.nsSeparator !== void 0 ? s.nsSeparator : this.options.nsSeparator; a === void 0 && (a = ":"); var d = s.keySeparator !== void 0 ? s.keySeparator : this.options.keySeparator, f = s.ns || this.options.defaultNS; if (a && r.indexOf(a) > -1) { var m = r.match(this.interpolator.nestingRegexp); if (m && m.length > 0) return { key: r, namespaces: f }; var g = r.split(a); (a !== d || a === d && this.options.ns.indexOf(g[0]) > -1) && (f = g.shift()), r = g.join(d); } return typeof f == "string" && (f = [f]), { key: r, namespaces: f }; } }, { key: "translate", value: function(r, s, a) { var d = this; if (Rt(s) !== "object" && this.options.overloadTranslationOptionHandler && (s = this.options.overloadTranslationOptionHandler(arguments)), s || (s = {}), r == null) return ""; Array.isArray(r) || (r = [String(r)]); var f = s.keySeparator !== void 0 ? s.keySeparator : this.options.keySeparator, m = this.extractFromKey(r[r.length - 1], s), g = m.key, M = m.namespaces, y = M[M.length - 1], S = s.lng || this.language, C = s.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode; if (S && S.toLowerCase() === "cimode") { if (C) { var b = s.nsSeparator || this.options.nsSeparator; return y + b + g; } return g; } var P = this.resolve(r, s), E = P && P.res, T = P && P.usedKey || g, R = P && P.exactUsedKey || g, $ = Object.prototype.toString.apply(E), N = ["[object Number]", "[object Function]", "[object RegExp]"], L = s.joinArrays !== void 0 ? s.joinArrays : this.options.joinArrays, z = !this.i18nFormat || this.i18nFormat.handleAsObject, x = typeof E != "string" && typeof E != "boolean" && typeof E != "number"; if (z && E && x && N.indexOf($) < 0 && !(typeof L == "string" && $ === "[object Array]")) { if (!s.returnObjects && !this.options.returnObjects) return this.options.returnedObjectHandler || this.logger.warn("accessing an object - but returnObjects options is not enabled!"), this.options.returnedObjectHandler ? this.options.returnedObjectHandler(T, E, We({}, s, { ns: M })) : "key '".concat(g, " (").concat(this.language, ")' returned an object instead of string."); if (f) { var k = $ === "[object Array]", D = k ? [] : {}, V = k ? R : T; for (var Z in E) if (Object.prototype.hasOwnProperty.call(E, Z)) { var K = "".concat(V).concat(f).concat(Z); D[Z] = this.translate(K, We({}, s, { joinArrays: !1, ns: M })), D[Z] === K && (D[Z] = E[Z]); } E = D; } } else if (z && typeof L == "string" && $ === "[object Array]") E = E.join(L), E && (E = this.extendTranslation(E, r, s, a)); else { var ee = !1, X = !1, te = s.count !== void 0 && typeof s.count != "string", ae = n.hasDefaultValue(s), re = te ? this.pluralResolver.getSuffix(S, s.count) : "", le = s["defaultValue".concat(re)] || s.defaultValue; !this.isValidLookup(E) && ae && (ee = !0, E = le), this.isValidLookup(E) || (X = !0, E = g); var pe = ae && le !== E && this.options.updateMissing; if (X || ee || pe) { if (this.logger.log(pe ? "updateKey" : "missingKey", S, y, g, pe ? le : E), f) { var he = this.resolve(g, We({}, s, { keySeparator: !1 })); he && he.res && this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format."); } var ge = [], Ce = this.languageUtils.getFallbackCodes(this.options.fallbackLng, s.lng || this.language); if (this.options.saveMissingTo === "fallback" && Ce && Ce[0]) for (var be = 0; be < Ce.length; be++) ge.push(Ce[be]); else this.options.saveMissingTo === "all" ? ge = this.languageUtils.toResolveHierarchy(s.lng || this.language) : ge.push(s.lng || this.language); var G = function(U, ne, me) { d.options.missingKeyHandler ? d.options.missingKeyHandler(U, y, ne, pe ? me : E, pe, s) : d.backendConnector && d.backendConnector.saveMissing && d.backendConnector.saveMissing(U, y, ne, pe ? me : E, pe, s), d.emit("missingKey", U, y, ne, E); }; this.options.saveMissing && (this.options.saveMissingPlurals && te ? ge.forEach(function(_) { d.pluralResolver.getSuffixes(_).forEach(function(U) { G([_], g + U, s["defaultValue".concat(U)] || le); }); }) : G(ge, g, le)); } E = this.extendTranslation(E, r, s, P, a), X && E === g && this.options.appendNamespaceToMissingKey && (E = "".concat(y, ":").concat(g)), X && this.options.parseMissingKeyHandler && (E = this.options.parseMissingKeyHandler(E)); } return E; } }, { key: "extendTranslation", value: function(r, s, a, d, f) { var m = this; if (this.i18nFormat && this.i18nFormat.parse) r = this.i18nFormat.parse(r, a, d.usedLng, d.usedNS, d.usedKey, { resolved: d }); else if (!a.skipInterpolation) { a.interpolation && this.interpolator.init(We({}, a, { interpolation: We({}, this.options.interpolation, a.interpolation) })); var g = a.interpolation && a.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables, M; if (g) { var y = r.match(this.interpolator.nestingRegexp); M = y && y.length; } var S = a.replace && typeof a.replace != "string" ? a.replace : a; if (this.options.interpolation.defaultVariables && (S = We({}, this.options.interpolation.defaultVariables, S)), r = this.interpolator.interpolate(r, S, a.lng || this.language, a), g) { var C = r.match(this.interpolator.nestingRegexp), b = C && C.length; M < b && (a.nest = !1); } a.nest !== !1 && (r = this.interpolator.nest(r, function() { for (var T = arguments.length, R = new Array(T), $ = 0; $ < T; $++) R[$] = arguments[$]; return f && f[0] === R[0] && !a.context ? (m.logger.warn("It seems you are nesting recursively key: ".concat(R[0], " in key: ").concat(s[0])), null) : m.translate.apply(m, R.concat([s])); }, a)), a.interpolation && this.interpolator.reset(); } var P = a.postProcess || this.options.postProcess, E = typeof P == "string" ? [P] : P; return r != null && E && E.length && a.applyPostProcessor !== !1 && (r = F1.handle(E, r, s, this.options && this.options.postProcessPassResolved ? We({ i18nResolved: d }, a) : a, this)), r; } }, { key: "resolve", value: function(r) { var s = this, a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, d, f, m, g, M; return typeof r == "string" && (r = [r]), r.forEach(function(y) { if (!s.isValidLookup(d)) { var S = s.extractFromKey(y, a), C = S.key; f = C; var b = S.namespaces; s.options.fallbackNS && (b = b.concat(s.options.fallbackNS)); var P = a.count !== void 0 && typeof a.count != "string", E = a.context !== void 0 && typeof a.context == "string" && a.context !== "", T = a.lngs ? a.lngs : s.languageUtils.toResolveHierarchy(a.lng || s.language, a.fallbackLng); b.forEach(function(R) { s.isValidLookup(d) || (M = R, !$d["".concat(T[0], "-").concat(R)] && s.utils && s.utils.hasLoadedNamespace && !s.utils.hasLoadedNamespace(M) && ($d["".concat(T[0], "-").concat(R)] = !0, s.logger.warn('key "'.concat(f, '" for languages "').concat(T.join(", "), `" won't get resolved as namespace "`).concat(M, '" was not yet loaded'), "This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")), T.forEach(function($) { if (!s.isValidLookup(d)) { g = $; var N = C, L = [N]; if (s.i18nFormat && s.i18nFormat.addLookupKeys) s.i18nFormat.addLookupKeys(L, C, $, R, a); else { var z; P && (z = s.pluralResolver.getSuffix($, a.count)), P && E && L.push(N + z), E && L.push(N += "".concat(s.options.contextSeparator).concat(a.context)), P && L.push(N += z); } for (var x; x = L.pop(); ) s.isValidLookup(d) || (m = x, d = s.getResource($, R, x, a)); } })); }); } }), { res: d, usedKey: f, exactUsedKey: m, usedLng: g, usedNS: M }; } }, { key: "isValidLookup", value: function(r) { return r !== void 0 && !(!this.options.returnNull && r === null) && !(!this.options.returnEmptyString && r === ""); } }, { key: "getResource", value: function(r, s, a) { var d = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {}; return this.i18nFormat && this.i18nFormat.getResource ? this.i18nFormat.getResource(r, s, a, d) : this.resourceStore.getResource(r, s, a, d); } }], [{ key: "hasDefaultValue", value: function(r) { var s = "defaultValue"; for (var a in r) if (Object.prototype.hasOwnProperty.call(r, a) && s === a.substring(0, s.length) && r[a] !== void 0) return !0; return !1; } }]), n; })(An); function Nl(l) { return l.charAt(0).toUpperCase() + l.slice(1); } var cp = (function() { function l(n) { dn(this, l), this.options = n, this.whitelist = this.options.supportedLngs || !1, this.supportedLngs = this.options.supportedLngs || !1, this.logger = ln.create("languageUtils"); } return hn(l, [{ key: "getScriptPartFromCode", value: function(i) { if (!i || i.indexOf("-") < 0) return null; var r = i.split("-"); return r.length === 2 || (r.pop(), r[r.length - 1].toLowerCase() === "x") ? null : this.formatLanguageCode(r.join("-")); } }, { key: "getLanguagePartFromCode", value: function(i) { if (!i || i.indexOf("-") < 0) return i; var r = i.split("-"); return this.formatLanguageCode(r[0]); } }, { key: "formatLanguageCode", value: function(i) { if (typeof i == "string" && i.indexOf("-") > -1) { var r = ["hans", "hant", "latn", "cyrl", "cans", "mong", "arab"], s = i.split("-"); return this.options.lowerCaseLng ? s = s.map(function(a) { return a.toLowerCase(); }) : s.length === 2 ? (s[0] = s[0].toLowerCase(), s[1] = s[1].toUpperCase(), r.indexOf(s[1].toLowerCase()) > -1 && (s[1] = Nl(s[1].toLowerCase()))) : s.length === 3 && (s[0] = s[0].toLowerCase(), s[1].length === 2 && (s[1] = s[1].toUpperCase()), s[0] !== "sgn" && s[2].length === 2 && (s[2] = s[2].toUpperCase()), r.indexOf(s[1].toLowerCase()) > -1 && (s[1] = Nl(s[1].toLowerCase())), r.indexOf(s[2].toLowerCase()) > -1 && (s[2] = Nl(s[2].toLowerCase()))), s.join("-"); } return this.options.cleanCode || this.options.lowerCaseLng ? i.toLowerCase() : i; } }, { key: "isWhitelisted", value: function(i) { return this.logger.deprecate("languageUtils.isWhitelisted", `function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it's usage asap.`), this.isSupportedCode(i); } }, { key: "isSupportedCode", value: function(i) { return (this.options.load === "languageOnly" || this.options.nonExplicitSupportedLngs) && (i = this.getLanguagePartFromCode(i)), !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(i) > -1; } }, { key: "getBestMatchFromCodes", value: function(i) { var r = this; if (!i) return null; var s; return i.forEach(function(a) { if (!s) { var d = r.formatLanguageCode(a); (!r.options.supportedLngs || r.isSupportedCode(d)) && (s = d); } }), !s && this.options.supportedLngs && i.forEach(function(a) { if (!s) { var d = r.getLanguagePartFromCode(a); if (r.isSupportedCode(d)) return s = d; s = r.options.supportedLngs.find(function(f) { if (f.indexOf(d) === 0) return f; }); } }), s || (s = this.getFallbackCodes(this.options.fallbackLng)[0]), s; } }, { key: "getFallbackCodes", value: function(i, r) { if (!i) return []; if (typeof i == "function" && (i = i(r)), typeof i == "string" && (i = [i]), Object.prototype.toString.apply(i) === "[object Array]") return i; if (!r) return i.default || []; var s = i[r]; return s || (s = i[this.getScriptPartFromCode(r)]), s || (s = i[this.formatLanguageCode(r)]), s || (s = i[this.getLanguagePartFromCode(r)]), s || (s = i.default), s || []; } }, { key: "toResolveHierarchy", value: function(i, r) { var s = this, a = this.getFallbackCodes(r || this.options.fallbackLng || [], i), d = [], f = function(g) { g && (s.isSupportedCode(g) ? d.push(g) : s.logger.warn("rejecting language code not found in supportedLngs: ".concat(g))); }; return typeof i == "string" && i.indexOf("-") > -1 ? (this.options.load !== "languageOnly" && f(this.formatLanguageCode(i)), this.options.load !== "languageOnly" && this.options.load !== "currentOnly" && f(this.getScriptPartFromCode(i)), this.options.load !== "currentOnly" && f(this.getLanguagePartFromCode(i))) : typeof i == "string" && f(this.formatLanguageCode(i)), a.forEach(function(m) { d.indexOf(m) < 0 && f(s.formatLanguageCode(m)); }), d; } }]), l; })(), up = [{ lngs: ["ach", "ak", "am", "arn", "br", "fil", "gun", "ln", "mfe", "mg", "mi", "oc", "pt", "pt-BR", "tg", "tl", "ti", "tr", "uz", "wa"], nr: [1, 2], fc: 1 }, { lngs: ["af", "an", "ast", "az", "bg", "bn", "ca", "da", "de", "dev", "el", "en", "eo", "es", "et", "eu", "fi", "fo", "fur", "fy", "gl", "gu", "ha", "hi", "hu", "hy", "ia", "it", "kk", "kn", "ku", "lb", "mai", "ml", "mn", "mr", "nah", "nap", "nb", "ne", "nl", "nn", "no", "nso", "pa", "pap", "pms", "ps", "pt-PT", "rm", "sco", "se", "si", "so", "son", "sq", "sv", "sw", "ta", "te", "tk", "ur", "yo"], nr: [1, 2], fc: 2 }, { lngs: ["ay", "bo", "cgg", "fa", "ht", "id", "ja", "jbo", "ka", "km", "ko", "ky", "lo", "ms", "sah", "su", "th", "tt", "ug", "vi", "wo", "zh"], nr: [1], fc: 3 }, { lngs: ["be", "bs", "cnr", "dz", "hr", "ru", "sr", "uk"], nr: [1, 2, 5], fc: 4 }, { lngs: ["ar"], nr: [0, 1, 2, 3, 11, 100], fc: 5 }, { lngs: ["cs", "sk"], nr: [1, 2, 5], fc: 6 }, { lngs: ["csb", "pl"], nr: [1, 2, 5], fc: 7 }, { lngs: ["cy"], nr: [1, 2, 3, 8], fc: 8 }, { lngs: ["fr"], nr: [1, 2], fc: 9 }, { lngs: ["ga"], nr: [1, 2, 3, 7, 11], fc: 10 }, { lngs: ["gd"], nr: [1, 2, 3, 20], fc: 11 }, { lngs: ["is"], nr: [1, 2], fc: 12 }, { lngs: ["jv"], nr: [0, 1], fc: 13 }, { lngs: ["kw"], nr: [1, 2, 3, 4], fc: 14 }, { lngs: ["lt"], nr: [1, 2, 10], fc: 15 }, { lngs: ["lv"], nr: [1, 2, 0], fc: 16 }, { lngs: ["mk"], nr: [1, 2], fc: 17 }, { lngs: ["mnk"], nr: [0, 1, 2], fc: 18 }, { lngs: ["mt"], nr: [1, 2, 11, 20], fc: 19 }, { lngs: ["or"], nr: [2, 1], fc: 2 }, { lngs: ["ro"], nr: [1, 2, 20], fc: 20 }, { lngs: ["sl"], nr: [5, 1, 2, 3], fc: 21 }, { lngs: ["he", "iw"], nr: [1, 2, 20, 21], fc: 22 }], dp = { 1: function(n) { return +(n > 1); }, 2: function(n) { return +(n != 1); }, 3: function(n) { return 0; }, 4: function(n) { return n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2; }, 5: function(n) { return n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; }, 6: function(n) { return n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2; }, 7: function(n) { return n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2; }, 8: function(n) { return n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3; }, 9: function(n) { return +(n >= 2); }, 10: function(n) { return n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4; }, 11: function(n) { return n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3; }, 12: function(n) { return +(n % 10 != 1 || n % 100 == 11); }, 13: function(n) { return +(n !== 0); }, 14: function(n) { return n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3; }, 15: function(n) { return n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2; }, 16: function(n) { return n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2; }, 17: function(n) { return n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1; }, 18: function(n) { return n == 0 ? 0 : n == 1 ? 1 : 2; }, 19: function(n) { return n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3; }, 20: function(n) { return n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2; }, 21: function(n) { return n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0; }, 22: function(n) { return n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3; } }; function hp() { var l = {}; return up.forEach(function(n) { n.lngs.forEach(function(i) { l[i] = { numbers: n.nr, plurals: dp[n.fc] }; }); }), l; } var fp = (function() { function l(n) { var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; dn(this, l), this.languageUtils = n, this.options = i, this.logger = ln.create("pluralResolver"), this.rules = hp(); } return hn(l, [{ key: "addRule", value: function(i, r) { this.rules[i] = r; } }, { key: "getRule", value: function(i) { return this.rules[i] || this.rules[this.languageUtils.getLanguagePartFromCode(i)]; } }, { key: "needsPlural", value: function(i) { var r = this.getRule(i); return r && r.numbers.length > 1; } }, { key: "getPluralFormsOfKey", value: function(i, r) { return this.getSuffixes(i).map(function(s) { return r + s; }); } }, { key: "getSuffixes", value: function(i) { var r = this, s = this.getRule(i); return s ? s.numbers.map(function(a) { return r.getSuffix(i, a); }) : []; } }, { key: "getSuffix", value: function(i, r) { var s = this, a = this.getRule(i); if (a) { var d = a.noAbs ? a.plurals(r) : a.plurals(Math.abs(r)), f = a.numbers[d]; this.options.simplifyPluralSuffix && a.numbers.length === 2 && a.numbers[0] === 1 && (f === 2 ? f = "plural" : f === 1 && (f = "")); var m = function() { return s.options.prepend && f.toString() ? s.options.prepend + f.toString() : f.toString(); }; return this.options.compatibilityJSON === "v1" ? f === 1 ? "" : typeof f == "number" ? "_plural_".concat(f.toString()) : m() : this.options.compatibilityJSON === "v2" || this.options.simplifyPluralSuffix && a.numbers.length === 2 && a.numbers[0] === 1 ? m() : this.options.prepend && d.toString() ? this.options.prepend + d.toString() : d.toString(); } return this.logger.warn("no plural rule found for: ".concat(i)), ""; } }]), l; })(), mp = (function() { function l() { var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; dn(this, l), this.logger = ln.create("interpolator"), this.options = n, this.format = n.interpolation && n.interpolation.format || function(i) { return i; }, this.init(n); } return hn(l, [{ key: "init", value: function() { var i = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; i.interpolation || (i.interpolation = { escapeValue: !0 }); var r = i.interpolation; this.escape = r.escape !== void 0 ? r.escape : ap, this.escapeValue = r.escapeValue !== void 0 ? r.escapeValue : !0, this.useRawValueToEscape = r.useRawValueToEscape !== void 0 ? r.useRawValueToEscape : !1, this.prefix = r.prefix ? _r(r.prefix) : r.prefixEscaped || "{{", this.suffix = r.suffix ? _r(r.suffix) : r.suffixEscaped || "}}", this.formatSeparator = r.formatSeparator ? r.formatSeparator : r.formatSeparator || ",", this.unescapePrefix = r.unescapeSuffix ? "" : r.unescapePrefix || "-", this.unescapeSuffix = this.unescapePrefix ? "" : r.unescapeSuffix || "", this.nestingPrefix = r.nestingPrefix ? _r(r.nestingPrefix) : r.nestingPrefixEscaped || _r("$t("), this.nestingSuffix = r.nestingSuffix ? _r(r.nestingSuffix) : r.nestingSuffixEscaped || _r(")"), this.nestingOptionsSeparator = r.nestingOptionsSeparator ? r.nestingOptionsSeparator : r.nestingOptionsSeparator || ",", this.maxReplaces = r.maxReplaces ? r.maxReplaces : 1e3, this.alwaysFormat = r.alwaysFormat !== void 0 ? r.alwaysFormat : !1, this.resetRegExp(); } }, { key: "reset", value: function() { this.options && this.init(this.options); } }, { key: "resetRegExp", value: function() { var i = "".concat(this.prefix, "(.+?)").concat(this.suffix); this.regexp = new RegExp(i, "g"); var r = "".concat(this.prefix).concat(this.unescapePrefix, "(.+?)").concat(this.unescapeSuffix).concat(this.suffix); this.regexpUnescape = new RegExp(r, "g"); var s = "".concat(this.nestingPrefix, "(.+?)").concat(this.nestingSuffix); this.nestingRegexp = new RegExp(s, "g"); } }, { key: "interpolate", value: function(i, r, s, a) { var d = this, f, m, g, M = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {}; function y(E) { return E.replace(/\$/g, "$$$$"); } var S = function(T) { if (T.indexOf(d.formatSeparator) < 0) { var R = Rd(r, M, T); return d.alwaysFormat ? d.format(R, void 0, s, We({}, a, r, { interpolationkey: T })) : R; } var $ = T.split(d.formatSeparator), N = $.shift().trim(), L = $.join(d.formatSeparator).trim(); return d.format(Rd(r, M, N), L, s, We({}, a, r, { interpolationkey: N })); }; this.resetRegExp(); var C = a && a.missingInterpolationHandler || this.options.missingInterpolationHandler, b = a && a.interpolation && a.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables, P = [{ regex: this.regexpUnescape, safeValue: function(T) { return y(T); } }, { regex: this.regexp, safeValue: function(T) { return d.escapeValue ? y(d.escape(T)) : y(T); } }]; return P.forEach(function(E) { for (g = 0; f = E.regex.exec(i); ) { if (m = S(f[1].trim()), m === void 0) if (typeof C == "function") { var T = C(i, f, a); m = typeof T == "string" ? T : ""; } else if (b) { m = f[0]; continue; } else d.logger.warn("missed to pass in variable ".concat(f[1], " for interpolating ").concat(i)), m = ""; else typeof m != "string" && !d.useRawValueToEscape && (m = Od(m)); var R = E.safeValue(m); if (i = i.replace(f[0], R), b ? (E.regex.lastIndex += R.length, E.regex.lastIndex -= f[0].length) : E.regex.lastIndex = 0, g++, g >= d.maxReplaces) break; } }), i; } }, { key: "nest", value: function(i, r) { var s = this, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, d, f, m = We({}, a); m.applyPostProcessor = !1, delete m.defaultValue; function g(C, b) { var P = this.nestingOptionsSeparator; if (C.indexOf(P) < 0) return C; var E = C.split(new RegExp("".concat(P, "[ ]*{"))), T = "{".concat(E[1]); C = E[0], T = this.interpolate(T, m), T = T.replace(/'/g, '"'); try { m = JSON.parse(T), b && (m = We({}, b, m)); } catch (R) { return this.logger.warn("failed parsing options string in nesting for key ".concat(C), R), "".concat(C).concat(P).concat(T); } return delete m.defaultValue, C; } for (; d = this.nestingRegexp.exec(i); ) { var M = [], y = !1; if (d[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(d[1])) { var S = d[1].split(this.formatSeparator).map(function(C) { return C.trim(); }); d[1] = S.shift(), M = S, y = !0; } if (f = r(g.call(this, d[1].trim(), m), m), f && d[0] === i && typeof f != "string") return f; typeof f != "string" && (f = Od(f)), f || (this.logger.warn("missed to resolve ".concat(d[1], " for nesting ").concat(i)), f = ""), y && (f = M.reduce(function(C, b) { return s.format(C, b, a.lng, We({}, a, { interpolationkey: d[1].trim() })); }, f.trim())), i = i.replace(d[0], f), this.regexp.lastIndex = 0; } return i; } }]), l; })(); function pp(l, n) { for (var i = l.indexOf(n); i !== -1; ) l.splice(i, 1), i = l.indexOf(n); } var gp = (function(l) { Ts(n, l); function n(i, r, s) { var a, d = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {}; return dn(this, n), a = Yi(this, Ur(n).call(this)), _s && An.call(hr(a)), a.backend = i, a.store = r, a.services = s, a.languageUtils = s.languageUtils, a.options = d, a.logger = ln.create("backendConnector"), a.state = {}, a.queue = [], a.backend && a.backend.init && a.backend.init(s, d.backend, d), a; } return hn(n, [{ key: "queueLoad", value: function(r, s, a, d) { var f = this, m = [], g = [], M = [], y = []; return r.forEach(function(S) { var C = !0; s.forEach(function(b) { var P = "".concat(S, "|").concat(b); !a.reload && f.store.hasResourceBundle(S, b) ? f.state[P] = 2 : f.state[P] < 0 || (f.state[P] === 1 ? g.indexOf(P) < 0 && g.push(P) : (f.state[P] = 1, C = !1, g.indexOf(P) < 0 && g.push(P), m.indexOf(P) < 0 && m.push(P), y.indexOf(b) < 0 && y.push(b))); }), C || M.push(S); }), (m.length || g.length) && this.queue.push({ pending: g, loaded: {}, errors: [], callback: d }), { toLoad: m, pending: g, toLoadLanguages: M, toLoadNamespaces: y }; } }, { key: "loaded", value: function(r, s, a) { var d = r.split("|"), f = d[0], m = d[1]; s && this.emit("failedLoading", f, m, s), a && this.store.addResourceBundle(f, m, a), this.state[r] = s ? -1 : 2; var g = {}; this.queue.forEach(function(M) { op(M.loaded, [f], m), pp(M.pending, r), s && M.errors.push(s), M.pending.length === 0 && !M.done && (Object.keys(M.loaded).forEach(function(y) { g[y] || (g[y] = [])