@mescius/dsimageviewer
Version:
Document Solutions Image Viewer
1,324 lines • 838 kB
JavaScript
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 = {
"&": "&",
"<": "<",
">": ">",
'"': """,
"'": "'",
"/": "/"
};
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] = [])