@progress/telerik-react-report-viewer
Version:
Progress® Telerik® Report Viewer for React
1,125 lines (1,122 loc) • 313 kB
JavaScript
var $ = require("jquery");
/*
* TelerikReporting v19.1.25.521 (https://www.telerik.com/products/reporting.aspx)
* Copyright 2025 Progress Software EAD. All rights reserved.
*
* Telerik Reporting commercial licenses may be obtained at
* https://www.telerik.com/purchase/license-agreement/reporting.aspx
* If you do not own a commercial license, this file shall be governed by the trial license terms.
*/
var telerikReportViewer = (function (exports) {
'use strict';
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
var dist = {exports: {}};
dist.exports;
(function(module, exports) {
!function(e, t) {
t(exports) ;
}(commonjsGlobal, function(e) {
function t(e2, t2, i2, n2) {
return new (i2 || (i2 = Promise))(function(r2, s2) {
function o2(e3) {
try {
l2(n2.next(e3));
} catch (e4) {
s2(e4);
}
}
function a2(e3) {
try {
l2(n2.throw(e3));
} catch (e4) {
s2(e4);
}
}
function l2(e3) {
var t3;
e3.done ? r2(e3.value) : (t3 = e3.value, t3 instanceof i2 ? t3 : new i2(function(e4) {
e4(t3);
})).then(o2, a2);
}
l2((n2 = n2.apply(e2, t2 || [])).next());
});
}
class i {
constructor() {
this.BasePath = "", this.ImmediatePrint = false, this.ContentOnly = false, this.UseSVG = false, this.enableSearch = false, this.enableAccessibility = false, this.contentTabIndex = 0;
}
}
class n {
constructor() {
this.from = "", this.to = "", this.cc = "", this.subject = "", this.format = "", this.body = "";
}
}
class r {
constructor(e2, t2) {
this.cancel = false, this.element = e2, this.action = t2;
}
}
class s {
constructor(e2, t2) {
this.id = "", this.type = "", this.id = e2, this.type = t2;
}
}
class o {
constructor(e2, t2) {
this.isCancelled = false, this.format = "", this.deviceInfo = e2, this.format = t2;
}
}
class a {
constructor(e2, t2, i2) {
this.handled = false, this.url = e2, this.format = t2, this.windowOpenTarget = i2;
}
}
class l {
constructor(e2, t2) {
this._responseText = e2, this._error = t2;
try {
this._responseJSON = JSON.parse(e2);
} catch (e3) {
this._responseJSON = null;
}
}
get responseText() {
return this._responseText;
}
get responseJSON() {
return this._responseJSON;
}
get error() {
return this._error;
}
}
function h(e2, t2 = false, i2 = false) {
let n2 = { Accept: "application/json, text/javascript, */*; q=0.01" };
return t2 && (n2["Content-Type"] = i2 ? "application/x-www-form-urlencoded; charset=UTF-8" : "application/json; charset=UTF-8"), e2 && (n2.authorization = "Bearer " + e2), n2;
}
function c(e2) {
return t(this, void 0, void 0, function* () {
if (!e2.ok) {
let t2 = yield e2.text(), i2 = new l(t2, e2.statusText);
return Promise.reject(i2);
}
if (204 == e2.status)
return Promise.resolve();
return (e2.headers.get("content-type") || "").includes("application/json") ? e2.json() : e2.text();
});
}
function d(e2, t2 = {}, i2 = "", n2 = false) {
return fetch(e2, { method: "POST", headers: h(i2, true, n2), body: n2 ? t2 : JSON.stringify(t2) }).then(c);
}
function u() {
}
function p() {
p.init.call(this);
}
function g(e2) {
return void 0 === e2._maxListeners ? p.defaultMaxListeners : e2._maxListeners;
}
function m(e2, t2, i2, n2) {
var r2, s2, o2, a2;
if ("function" != typeof i2)
throw new TypeError('"listener" argument must be a function');
if ((s2 = e2._events) ? (s2.newListener && (e2.emit("newListener", t2, i2.listener ? i2.listener : i2), s2 = e2._events), o2 = s2[t2]) : (s2 = e2._events = new u(), e2._eventsCount = 0), o2) {
if ("function" == typeof o2 ? o2 = s2[t2] = n2 ? [i2, o2] : [o2, i2] : n2 ? o2.unshift(i2) : o2.push(i2), !o2.warned && (r2 = g(e2)) && r2 > 0 && o2.length > r2) {
o2.warned = true;
var l2 = new Error("Possible EventEmitter memory leak detected. " + o2.length + " " + t2 + " listeners added. Use emitter.setMaxListeners() to increase limit");
l2.name = "MaxListenersExceededWarning", l2.emitter = e2, l2.type = t2, l2.count = o2.length, a2 = l2, "function" == typeof console.warn ? console.warn(a2) : console.log(a2);
}
} else
o2 = s2[t2] = i2, ++e2._eventsCount;
return e2;
}
function f(e2, t2, i2) {
var n2 = false;
function r2() {
e2.removeListener(t2, r2), n2 || (n2 = true, i2.apply(e2, arguments));
}
return r2.listener = i2, r2;
}
function v(e2) {
var t2 = this._events;
if (t2) {
var i2 = t2[e2];
if ("function" == typeof i2)
return 1;
if (i2)
return i2.length;
}
return 0;
}
function P(e2, t2) {
for (var i2 = new Array(t2); t2--; )
i2[t2] = e2[t2];
return i2;
}
u.prototype = /* @__PURE__ */ Object.create(null), p.EventEmitter = p, p.usingDomains = false, p.prototype.domain = void 0, p.prototype._events = void 0, p.prototype._maxListeners = void 0, p.defaultMaxListeners = 10, p.init = function() {
this.domain = null, p.usingDomains && (void 0).active, this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = new u(), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;
}, p.prototype.setMaxListeners = function(e2) {
if ("number" != typeof e2 || e2 < 0 || isNaN(e2))
throw new TypeError('"n" argument must be a positive number');
return this._maxListeners = e2, this;
}, p.prototype.getMaxListeners = function() {
return g(this);
}, p.prototype.emit = function(e2) {
var t2, i2, n2, r2, s2, o2, a2, l2 = "error" === e2;
if (o2 = this._events)
l2 = l2 && null == o2.error;
else if (!l2)
return false;
if (a2 = this.domain, l2) {
if (t2 = arguments[1], !a2) {
if (t2 instanceof Error)
throw t2;
var h2 = new Error('Uncaught, unspecified "error" event. (' + t2 + ")");
throw h2.context = t2, h2;
}
return t2 || (t2 = new Error('Uncaught, unspecified "error" event')), t2.domainEmitter = this, t2.domain = a2, t2.domainThrown = false, a2.emit("error", t2), false;
}
if (!(i2 = o2[e2]))
return false;
var c2 = "function" == typeof i2;
switch (n2 = arguments.length) {
case 1:
!function(e3, t3, i3) {
if (t3)
e3.call(i3);
else
for (var n3 = e3.length, r3 = P(e3, n3), s3 = 0; s3 < n3; ++s3)
r3[s3].call(i3);
}(i2, c2, this);
break;
case 2:
!function(e3, t3, i3, n3) {
if (t3)
e3.call(i3, n3);
else
for (var r3 = e3.length, s3 = P(e3, r3), o3 = 0; o3 < r3; ++o3)
s3[o3].call(i3, n3);
}(i2, c2, this, arguments[1]);
break;
case 3:
!function(e3, t3, i3, n3, r3) {
if (t3)
e3.call(i3, n3, r3);
else
for (var s3 = e3.length, o3 = P(e3, s3), a3 = 0; a3 < s3; ++a3)
o3[a3].call(i3, n3, r3);
}(i2, c2, this, arguments[1], arguments[2]);
break;
case 4:
!function(e3, t3, i3, n3, r3, s3) {
if (t3)
e3.call(i3, n3, r3, s3);
else
for (var o3 = e3.length, a3 = P(e3, o3), l3 = 0; l3 < o3; ++l3)
a3[l3].call(i3, n3, r3, s3);
}(i2, c2, this, arguments[1], arguments[2], arguments[3]);
break;
default:
for (r2 = new Array(n2 - 1), s2 = 1; s2 < n2; s2++)
r2[s2 - 1] = arguments[s2];
!function(e3, t3, i3, n3) {
if (t3)
e3.apply(i3, n3);
else
for (var r3 = e3.length, s3 = P(e3, r3), o3 = 0; o3 < r3; ++o3)
s3[o3].apply(i3, n3);
}(i2, c2, this, r2);
}
return true;
}, p.prototype.addListener = function(e2, t2) {
return m(this, e2, t2, false);
}, p.prototype.on = p.prototype.addListener, p.prototype.prependListener = function(e2, t2) {
return m(this, e2, t2, true);
}, p.prototype.once = function(e2, t2) {
if ("function" != typeof t2)
throw new TypeError('"listener" argument must be a function');
return this.on(e2, f(this, e2, t2)), this;
}, p.prototype.prependOnceListener = function(e2, t2) {
if ("function" != typeof t2)
throw new TypeError('"listener" argument must be a function');
return this.prependListener(e2, f(this, e2, t2)), this;
}, p.prototype.removeListener = function(e2, t2) {
var i2, n2, r2, s2, o2;
if ("function" != typeof t2)
throw new TypeError('"listener" argument must be a function');
if (!(n2 = this._events))
return this;
if (!(i2 = n2[e2]))
return this;
if (i2 === t2 || i2.listener && i2.listener === t2)
0 == --this._eventsCount ? this._events = new u() : (delete n2[e2], n2.removeListener && this.emit("removeListener", e2, i2.listener || t2));
else if ("function" != typeof i2) {
for (r2 = -1, s2 = i2.length; s2-- > 0; )
if (i2[s2] === t2 || i2[s2].listener && i2[s2].listener === t2) {
o2 = i2[s2].listener, r2 = s2;
break;
}
if (r2 < 0)
return this;
if (1 === i2.length) {
if (i2[0] = void 0, 0 == --this._eventsCount)
return this._events = new u(), this;
delete n2[e2];
} else
!function(e3, t3) {
for (var i3 = t3, n3 = i3 + 1, r3 = e3.length; n3 < r3; i3 += 1, n3 += 1)
e3[i3] = e3[n3];
e3.pop();
}(i2, r2);
n2.removeListener && this.emit("removeListener", e2, o2 || t2);
}
return this;
}, p.prototype.off = function(e2, t2) {
return this.removeListener(e2, t2);
}, p.prototype.removeAllListeners = function(e2) {
var t2, i2;
if (!(i2 = this._events))
return this;
if (!i2.removeListener)
return 0 === arguments.length ? (this._events = new u(), this._eventsCount = 0) : i2[e2] && (0 == --this._eventsCount ? this._events = new u() : delete i2[e2]), this;
if (0 === arguments.length) {
for (var n2, r2 = Object.keys(i2), s2 = 0; s2 < r2.length; ++s2)
"removeListener" !== (n2 = r2[s2]) && this.removeAllListeners(n2);
return this.removeAllListeners("removeListener"), this._events = new u(), this._eventsCount = 0, this;
}
if ("function" == typeof (t2 = i2[e2]))
this.removeListener(e2, t2);
else if (t2)
do {
this.removeListener(e2, t2[t2.length - 1]);
} while (t2[0]);
return this;
}, p.prototype.listeners = function(e2) {
var t2, i2 = this._events;
return i2 && (t2 = i2[e2]) ? "function" == typeof t2 ? [t2.listener || t2] : function(e3) {
for (var t3 = new Array(e3.length), i3 = 0; i3 < t3.length; ++i3)
t3[i3] = e3[i3].listener || e3[i3];
return t3;
}(t2) : [];
}, p.listenerCount = function(e2, t2) {
return "function" == typeof e2.listenerCount ? e2.listenerCount(t2) : v.call(e2, t2);
}, p.prototype.listenerCount = v, p.prototype.eventNames = function() {
return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];
};
const y = "function" == typeof Symbol ? Symbol.for("--[[await-event-emitter]]--") : "--[[await-event-emitter]]--";
function I(e2) {
if ("string" != typeof e2 && "symbol" != typeof e2)
throw new TypeError("type is not type of string or symbol!");
}
function C(e2) {
if ("function" != typeof e2)
throw new TypeError("fn is not type of Function!");
}
function S(e2) {
return { [y]: "always", fn: e2 };
}
function b(e2) {
return { [y]: "once", fn: e2 };
}
class w {
constructor() {
this._events = {};
}
addListener(e2, t2) {
return this.on(e2, t2);
}
on(e2, t2) {
return I(e2), C(t2), this._events[e2] = this._events[e2] || [], this._events[e2].push(S(t2)), this;
}
prependListener(e2, t2) {
return this.prepend(e2, t2);
}
prepend(e2, t2) {
return I(e2), C(t2), this._events[e2] = this._events[e2] || [], this._events[e2].unshift(S(t2)), this;
}
prependOnceListener(e2, t2) {
return this.prependOnce(e2, t2);
}
prependOnce(e2, t2) {
return I(e2), C(t2), this._events[e2] = this._events[e2] || [], this._events[e2].unshift(b(t2)), this;
}
listeners(e2) {
return (this._events[e2] || []).map((e3) => e3.fn);
}
once(e2, t2) {
return I(e2), C(t2), this._events[e2] = this._events[e2] || [], this._events[e2].push(b(t2)), this;
}
removeAllListeners() {
this._events = {};
}
off(e2, t2) {
return this.removeListener(e2, t2);
}
removeListener(e2, t2) {
I(e2);
const i2 = this.listeners(e2);
if ("function" == typeof t2) {
let n2 = -1, r2 = false;
for (; (n2 = i2.indexOf(t2)) >= 0; )
i2.splice(n2, 1), this._events[e2].splice(n2, 1), r2 = true;
return r2;
}
return delete this._events[e2];
}
emit(e2, ...i2) {
return t(this, void 0, void 0, function* () {
I(e2);
const t2 = this.listeners(e2), n2 = [];
if (t2 && t2.length) {
for (let r2 = 0; r2 < t2.length; r2++) {
const s2 = t2[r2], o2 = s2.apply(this, i2);
o2 instanceof Promise && (yield o2), this._events[e2] && this._events[e2][r2] && "once" === this._events[e2][r2][y] && n2.push(s2);
}
return n2.forEach((t3) => this.removeListener(e2, t3)), true;
}
return false;
});
}
emitSync(e2, ...t2) {
I(e2);
const i2 = this.listeners(e2), n2 = [];
if (i2 && i2.length) {
for (let r2 = 0; r2 < i2.length; r2++) {
const s2 = i2[r2];
s2.apply(this, t2), this._events[e2] && this._events[e2][r2] && "once" === this._events[e2][r2][y] && n2.push(s2);
}
return n2.forEach((t3) => this.removeListener(e2, t3)), true;
}
return false;
}
}
class R {
constructor() {
this.eventEmitter = new p(), this.awaitEventEmitter = new w();
}
on(e2, t2) {
return this.eventEmitter.on(e2, t2), this;
}
emit(e2, ...t2) {
this.eventEmitter.emit(e2, ...t2);
}
onAsync(e2, t2) {
return this.awaitEventEmitter.on(e2, t2), this;
}
emitAsync(e2, ...i2) {
return t(this, void 0, void 0, function* () {
yield this.awaitEventEmitter.emit(e2, ...i2);
});
}
}
class E {
hasPdfPlugin() {
let e2 = ["AcroPDF.PDF.1", "PDF.PdfCtrl.6", "PDF.PdfCtrl.5"];
for (let t2 of e2)
try {
let e3 = new ActiveXObject(t2);
if (e3)
return null !== e3;
} catch (e3) {
}
return false;
}
}
class T {
hasPdfPlugin() {
let e2 = /Firefox[/\s](\d+\.\d+)/.exec(navigator.userAgent);
if (null !== e2 && e2.length > 1) {
if (parseFloat(e2[1]) >= 19)
return false;
}
let t2 = navigator.mimeTypes["application/pdf"], i2 = null !== t2 ? t2.enabledPlugin : null;
if (i2) {
let e3 = i2.description;
return -1 !== e3.indexOf("Adobe") && (-1 === e3.indexOf("Version") || parseFloat(e3.split("Version")[1]) >= 6);
}
return false;
}
}
class A {
constructor(e2) {
this.defaultPlugin = e2;
}
hasPdfPlugin() {
for (let e2 of navigator.plugins)
if (e2.name === this.defaultPlugin || "Adobe Acrobat" === e2.name)
return true;
return false;
}
}
class M {
hasPdfPlugin() {
return false;
}
}
function L() {
return window.navigator && window.navigator.msSaveOrOpenBlob;
}
class x {
constructor() {
this.hasPdfPlugin = false, this.iframe = null, this.hasPdfPlugin = function() {
if (window.navigator) {
let e2 = window.navigator.userAgent.toLowerCase();
return e2.indexOf("msie") > -1 || e2.indexOf("mozilla") > -1 && e2.indexOf("trident") > -1 ? new E() : e2.indexOf("firefox") > -1 ? new T() : e2.indexOf("edg/") > -1 ? new A("Microsoft Edge PDF Plugin") : e2.indexOf("chrome") > -1 ? new A("Chrome PDF Viewer") : e2.indexOf("safari") > -1 ? new A("WebKit built-in PDF") : new M();
}
return new M();
}().hasPdfPlugin(), this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
}
destroy() {
this.iframe = null;
}
printDesktop(e2) {
let t2 = null;
if (this.iframe || (this.iframe = document.createElement("iframe"), this.iframe.style.display = "none", this.iframe.onload = () => {
var e3, i3;
try {
null === (i3 = null === (e3 = this.iframe) || void 0 === e3 ? void 0 : e3.contentDocument) || void 0 === i3 || i3.execCommand("print", true);
} finally {
t2 && (window.URL || window.webkitURL).revokeObjectURL(t2);
}
}), function(e3) {
let t3 = window.location, i3 = document.createElement("a");
return i3.setAttribute("href", e3), "" == i3.host && (i3.href = i3.href), t3.hostname === i3.hostname && t3.protocol === i3.protocol && t3.port === i3.port;
}(e2) && L())
return this.iframe.src = e2, void document.body.appendChild(this.iframe);
let i2 = new XMLHttpRequest(), n2 = this;
i2.open("GET", e2, true), i2.responseType = "arraybuffer", i2.onload = function() {
if (200 === this.status) {
let e3 = new Blob([this.response], { type: "application/pdf" });
L() ? window.navigator.msSaveOrOpenBlob(e3) : (t2 = (window.URL || window.webkitURL).createObjectURL(e3), null != n2.iframe && (n2.iframe.src = t2, document.body.appendChild(n2.iframe)));
} else
console.log("Could not retrieve remote PDF document.");
}, i2.send();
}
printMobile(e2) {
window.open(e2, "_self");
}
print(e2) {
this.isMobile ? this.printMobile(e2) : this.printDesktop(e2);
}
getDirectPrintState() {
return this.hasPdfPlugin;
}
}
function D(e2) {
return 1e3 * e2;
}
class N {
constructor(e2, t2, i2) {
if (this.pingMilliseconds = 0, !e2)
throw "Error";
this.serviceClient = e2, this.clientID = t2, this.initSessionTimeout(i2);
}
initSessionTimeout(e2) {
if (!isFinite(e2))
throw "sessionTimeoutSeconds must be finite";
this.pingMilliseconds = e2 <= 120 ? D(e2) / 2 : D(e2 - 60);
}
start() {
this.pingMilliseconds <= 0 || (this.interval = setInterval(() => {
this.serviceClient.keepClientAlive(this.clientID);
}, this.pingMilliseconds));
}
stop() {
this.interval && (clearInterval(this.interval), this.interval = null);
}
}
var k, F, O, V, z;
function _(e2, t2 = "", i2 = "") {
let n2 = document.createElement(e2);
return t2 && (n2.id = t2), $(n2, i2), n2;
}
function $(e2, t2) {
if ("" === t2 || !e2)
return;
let i2 = t2.trim().split(" ");
i2 = i2.filter((e3) => "" !== e3.trim()), e2.classList.add(...i2);
}
function U(e2, t2) {
if ("" === t2 || !e2)
return;
let i2 = t2.trim().split(" ");
i2 = i2.filter((e3) => "" !== e3.trim()), e2.classList.remove(...i2);
}
function H(e2, t2) {
return e2.classList.contains(t2);
}
function B(e2) {
return e2.offsetParent;
}
function q(e2) {
return parseInt(e2, 10) || 0;
}
function W(e2, t2, i2, n2 = 0, r2 = 0) {
let s2 = `${n2 = n2 || 0} ${r2 = r2 || 0}`;
!function(e3, t3) {
e3.style.setProperty("transform", t3), e3.style.setProperty("-moz-transform", t3), e3.style.setProperty("-ms-transform", t3), e3.style.setProperty("-webkit-transform", t3), e3.style.setProperty("-o-transform", t3);
}(e2, `scale(${t2 = t2 || 1}, ${i2 = i2 || 1})`), function(e3, t3) {
e3.style.setProperty("transform-origin", t3), e3.style.setProperty("-moz-transform-origin", t3), e3.style.setProperty("-ms-transform-origin", t3), e3.style.setProperty("-webkit-transform-origin", t3), e3.style.setProperty("-o-transform-origin", t3);
}(e2, s2);
}
function j(e2) {
let t2 = _("div");
return t2.textContent = e2, t2.innerHTML;
}
function J(e2) {
if (e2 && e2.length < 6) {
let t3 = 1, i2 = e2.split("");
for ("#" !== i2[0] && (t3 = 0); t3 < i2.length; t3++)
i2[t3] = i2[t3] + i2[t3];
e2 = i2.join("");
}
let t2 = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e2);
return t2 ? parseInt(t2[1], 16) + ", " + parseInt(t2[2], 16) + ", " + parseInt(t2[3], 16) : null;
}
function G(e2) {
return !!e2 && e2.indexOf(",") > -1;
}
function Z(e2) {
if ("transparent" === e2.toLowerCase())
return 0;
if (!G(e2))
return 1;
if (-1 !== e2.indexOf("#")) {
let t3 = J(e2);
if (null === t3)
return 1;
e2 = t3;
}
let t2 = e2.split(",").map(function(e3) {
return e3.trim();
});
return 4 === t2.length ? parseFloat((parseFloat(t2[3].replace(/[()]/g, "")) / 255).toFixed(2)) : 1;
}
function K(e2, t2) {
let i2 = _("div");
for (i2.innerHTML = t2; i2.childNodes.length; )
e2.appendChild(i2.childNodes[0]);
}
function X(e2, t2) {
let i2 = _("div");
for (i2.innerHTML = t2; i2.childNodes.length; )
e2.prepend(i2.childNodes[i2.childNodes.length - 1]);
}
function Q(e2, t2) {
return null === e2 ? null : e2.querySelector(t2);
}
function Y(e2, t2) {
var i2;
return e2 && e2.attributes && (null === (i2 = e2.attributes[t2]) || void 0 === i2 ? void 0 : i2.value) || "";
}
function ee(e2) {
let t2 = e2.parentElement;
return t2 ? t2.clientHeight != t2.scrollHeight ? t2 : ee(t2) : null;
}
function te(e2, t2 = 300) {
let i2;
return function(...n2) {
clearTimeout(i2), i2 = setTimeout(() => e2.apply(this, n2), t2);
};
}
function ie(e2, t2) {
let i2 = null;
return function(n2, ...r2) {
i2 || (i2 = setTimeout(function() {
e2.apply(n2, r2), i2 = null;
}, t2));
};
}
function ne(e2, t2) {
return !!e2.responseJSON && e2.responseJSON.exceptionType === t2;
}
function re(e2) {
return ne(e2, "Telerik.Reporting.Services.Engine.InvalidClientException");
}
function se(e2) {
return ne(e2, "Telerik.Reporting.Services.Engine.InvalidParameterException");
}
function oe(e2) {
return !!e2 && "internalservererror" === e2.split(" ").join("").toLowerCase();
}
function ae(e2, ...t2) {
return e2.replace(/{(\d+)}/g, (e3, i2) => t2[i2] || "");
}
function le(e2, t2) {
let i2, n2;
if (he(e2))
for (i2 = e2.length, n2 = 0; n2 < i2 && false !== t2.call(e2[n2], n2, e2[n2]); n2++)
;
else
for (n2 in e2)
if (false === t2.call(e2[n2], n2, e2[n2]))
break;
return e2;
}
function he(e2) {
if (Array.isArray(e2))
return true;
return "number" == typeof (!!e2 && "length" in e2 && e2.length);
}
function ce(e2) {
return /^(\-|\+)?([0-9]+)$/.test(e2) ? Number(e2) : NaN;
}
function de(e2) {
return /^(\-|\+)?([0-9]+(\.[0-9]+)?)$/.test(e2) ? Number(e2) : NaN;
}
function ue(e2) {
return e2 instanceof Date ? e2 : (/Z|[\+\-]\d\d:?\d\d/i.test(e2) || (e2 += "Z"), new Date(e2));
}
e.PageMode = void 0, (k = e.PageMode || (e.PageMode = {}))[k.ContinuousScroll = 0] = "ContinuousScroll", k[k.SinglePage = 1] = "SinglePage", e.PrintMode = void 0, (F = e.PrintMode || (e.PrintMode = {}))[F.AutoSelect = 0] = "AutoSelect", F[F.ForcePDFPlugin = 1] = "ForcePDFPlugin", F[F.ForcePDFFile = 2] = "ForcePDFFile", e.ScaleMode = void 0, (O = e.ScaleMode || (e.ScaleMode = {}))[O.FitPageWidth = 0] = "FitPageWidth", O[O.FitPage = 1] = "FitPage", O[O.Specific = 2] = "Specific", e.ServiceType = void 0, (V = e.ServiceType || (e.ServiceType = {}))[V.REST = 0] = "REST", V[V.ReportServer = 1] = "ReportServer", e.ViewMode = void 0, (z = e.ViewMode || (e.ViewMode = {}))[z.Interactive = 0] = "Interactive", z[z.PrintPreview = 1] = "PrintPreview";
class pe {
constructor(e2) {
this.handled = false, this.deviceInfo = e2;
}
}
class ge {
constructor(e2) {
this.handled = false, this.url = e2;
}
}
class me {
constructor(e2, t2) {
this.handled = false, this.deviceInfo = e2, this.format = t2;
}
}
class fe {
constructor(e2, t2) {
this.handled = false, this.deviceInfo = e2, this.format = t2;
}
}
class ve extends n {
constructor(e2, t2, i2) {
super(), this.handled = false, this.body = e2.body, this.cc = e2.cc, this.format = e2.format, this.from = e2.from, this.subject = e2.subject, this.to = e2.to, this.deviceInfo = t2, this.url = i2;
}
}
const Pe = "System.Int64", ye = "System.Double", Ie = "System.String", Ce = "System.DateTime", Se = "System.Boolean";
var be = function() {
var e2 = {};
function t2(e3, t3, i3, n2) {
var r2 = [].concat(t3).map(function(t4) {
return function(e4, t5, i4) {
if (e4.availableValues) {
var n3 = false;
if (le(e4.availableValues, function(e5, r3) {
return !(n3 = i4(t5, r3.value));
}), !n3) {
if (e4.allowNull && !t5)
return t5;
throw "Please input a valid value.";
}
}
return t5;
}(e3, i3(t4), n2);
});
if (e3.multivalue) {
if (null == t3 || 0 == t3.length) {
if (e3.allowNull)
return t3;
throw "Please input a valid value.";
}
return r2;
}
return r2[0];
}
function i2(e3, t3) {
return e3.allowNull && -1 != [null, "", void 0].indexOf(t3);
}
return e2[Ie] = { validate: function(e3, i3) {
return t2(e3, i3, function(t3) {
if (!t3) {
if (e3.allowNull)
return null;
if (e3.allowBlank)
return "";
throw "Parameter value cannot be empty.";
}
return t3;
}, function(e4, t3) {
return e4 == t3;
});
} }, e2[ye] = { validate: function(e3, n2) {
return t2(e3, n2, function(t3) {
var n3 = de(t3);
if (isNaN(n3)) {
if (i2(e3, t3))
return null;
throw "Parameter value cannot be empty.";
}
return n3;
}, function(e4, t3) {
return de(e4) == de(t3);
});
} }, e2[Pe] = { validate: function(e3, n2) {
return t2(e3, n2, function(t3) {
var n3 = ce(t3);
if (isNaN(n3)) {
if (i2(e3, t3))
return null;
throw "Parameter value cannot be empty.";
}
return n3;
}, function(e4, t3) {
return ce(e4) == de(t3);
});
} }, e2[Ce] = { validate: function(e3, i3) {
return t2(e3, i3, function(t3) {
if (e3.allowNull && (null === t3 || "" === t3 || void 0 === t3))
return null;
if (!isNaN(Date.parse(t3)))
return e3.availableValues ? t3 : ue(t3);
throw "Please input a valid date.";
}, function(e4, t3) {
return e4 = ue(e4), t3 = ue(t3), e4.getTime() == t3.getTime();
});
} }, e2[Se] = { validate: function(e3, n2) {
return t2(e3, n2, function(t3) {
if (-1 != ["true", "false"].indexOf(String(t3).toLowerCase()))
return Boolean(t3);
if (i2(e3, t3))
return null;
throw "Parameter value cannot be empty.";
}, function(e4, t3) {
return Boolean(e4) == Boolean(t3);
});
} }, { validate: function(t3, i3) {
var n2 = e2[t3.type];
if (!n2)
throw ae("Cannot validate parameter of type {type}.", t3);
return n2.validate(t3, i3);
} };
}();
function we(e2, t2, i2) {
try {
const n2 = e2.availableValues.find((e3) => e3.value === t2);
if (!n2)
throw new Error(`The available values of parameter ${i2} do not contain Value property that equals ${t2}`);
return { valueMember: t2, displayMember: n2.name };
} catch (e3) {
return;
}
}
function Re(e2, t2, i2) {
const n2 = [];
for (let r2 in t2)
n2.push(we(e2, t2[r2], i2));
return n2;
}
class Ee {
constructor(e2 = "", t2 = {}) {
this.report = e2, this.parameters = t2;
}
}
class Te {
constructor(e2, t2, i2, n2 = null) {
this.element = e2, this.text = t2, this.title = i2, this.eventArgs = n2;
}
}
class Ae extends R {
constructor(e2) {
super(), this.resizeObserver = null, this.element = e2, this.initResizeObserver();
}
destroy() {
this.destroyResizeObserver();
}
initResizeObserver() {
this.debounceResize = te(this.onResize.bind(this), 50), this.resizeObserver = new ResizeObserver(this.debounceResize), this.resizeObserver.observe(this.element);
}
destroyResizeObserver() {
this.resizeObserver && this.resizeObserver.unobserve(this.element), this.resizeObserver = this.debounceResize = null;
}
onResize(e2) {
e2[0].target === this.element && this.emit("resize");
}
}
const Me = '<div class="trv-report-page trv-skeleton-page trv-skeleton-{0}" style="{1}" data-page="{0}"><div class="trv-skeleton-wrapper" style="{2}"></div></div>';
class Le {
constructor(t2, i2, n2) {
this.enabled = false, this.viewMode = e.ViewMode.Interactive, this.scrollInProgress = false, this.additionalTopOffset = 130, this.onClickHandler = null, this.debounceScroll = null, this.throttleScroll = null, this.oldScrollTopPosition = 0, this.lastLoadedPage = null, this.placeholder = t2, this.pageContainer = t2.querySelector(".trv-page-container"), this.pageWrapper = t2.querySelector(".trv-page-wrapper"), this.contentArea = i2, this.controller = n2, this.controller.getPageMode() === e.PageMode.ContinuousScroll && this.enable(), this.controller.on("loadedReportChange", this.disable.bind(this)).on("viewModeChanged", this.disable.bind(this)).on("scaleChanged", this.onScaleChanged.bind(this)).on("interactiveActionExecuting", this.onInteractiveActionExecuting.bind(this));
}
onScaleChanged() {
this.enabled && setTimeout(() => {
this.loadMorePages(), this.keepCurrentPageInToView();
}, 100);
}
onInteractiveActionExecuting(e2) {
const t2 = e2.action.Type;
!this.enabled || "sorting" !== t2 && "toggleVisibility" !== t2 || this.disable();
}
getEnabled() {
return this.enabled;
}
enable() {
this.enabled = true, $(this.placeholder, "scrollable"), this.initEvents();
}
disable() {
this.enabled && (this.lastLoadedPage = null, this.pageWrapper.innerHTML = "", this.enabled = false, U(this.placeholder, "scrollable"), this.unbind());
}
renderPage(e2) {
let t2 = this.controller.getViewMode(), i2 = this.findPageElement(e2.pageNumber);
this.enabled ? (t2 === this.viewMode && i2 ? this.navigateToPage(e2, i2) : this.updatePageArea(e2), this.viewMode = this.controller.getViewMode()) : (this.enable(), t2 === this.viewMode && i2 ? (this.render(e2, true), this.pageContainer.scrollTop = 3, this.setCurrentPage(e2.pageNumber)) : this.updatePageArea(e2), this.viewMode = this.controller.getViewMode(), this.loadMorePages());
}
navigateToElement(e2, t2) {
this.scrollInProgress = true, this.isSkeletonScreen(null, t2) ? this.getAndRenderPage(t2).then(() => {
this.scrollToPage(e2, t2);
}) : this.scrollToPage(e2, t2);
}
updatePageDimensionsReady() {
this.enabled && this.currentPageNumber() > 0 && this.keepCurrentPageInToView();
}
setCurrentPage(e2) {
e2 !== this.currentPageNumber() && this.controller.setCurrentPageNumber(e2), this.controller.getPageCount() > 1 && (U(this.findElement(".k-state-default"), "k-state-default"), $(this.findPageElement(e2), "k-state-default")), this.loadNextPreviousPage(e2);
}
updatePageArea(e2) {
let t2 = 0, i2 = e2.pageNumber;
this.scrollInProgress = true, i2 > 1 && this.generateSkeletonScreens(i2), this.render(e2, false), this.setCurrentPage(e2.pageNumber), setTimeout(() => {
var e3;
t2 = i2 > 1 && (null === (e3 = this.findPageElement(i2)) || void 0 === e3 ? void 0 : e3.offsetTop) || 0, this.animateScroll(t2, 0, () => {
this.scrollInProgress = false;
});
}, 100);
}
navigateToPage(e2, t2) {
this.scrollInProgress = true;
let i2 = t2.offsetTop, n2 = e2.pageNumber;
this.isSkeletonScreen(t2, n2) ? this.getAndRenderPage(n2).then(() => {
this.scrollToPage(i2, n2);
}) : (this.updatePageContent(e2, t2), this.scrollToPage(i2, n2));
}
updatePageContent(e2, t2) {
this.contentArea.updatePageStyle(e2);
let i2 = this.contentArea.renderPageElement(e2);
t2.after(i2), t2.remove(), this.contentArea.setScrollablePage(i2, e2), this.controller.scrollPageReady();
}
currentPageNumber() {
return this.controller.getCurrentPageNumber();
}
isSkeletonScreen(e2, t2) {
return !(!e2 && !(e2 = this.findPageElement(t2))) && H(e2, "trv-skeleton-" + t2);
}
addSkeletonScreen(e2, t2) {
let i2 = e2 + (t2 ? 1 : -1), n2 = this.findPageElement(i2), r2 = Y(n2, "style"), s2 = Y(null == n2 ? void 0 : n2.querySelector("sheet"), "style"), o2 = ae(Me, e2, r2, s2);
t2 ? X(this.pageWrapper, o2) : K(this.pageWrapper, o2);
}
generateSkeletonScreens(e2) {
var t2;
let i2 = "", n2 = this.findPageElement(1), r2 = Y(n2, "style"), s2 = Y(null == n2 ? void 0 : n2.querySelector("sheet"), "style"), o2 = null === (t2 = this.findLastElement(".trv-report-page")) || void 0 === t2 ? void 0 : t2.dataset.page, a2 = o2 ? parseInt(o2) + 1 : 1;
for (; a2 < e2; a2++)
i2 += ae(Me, a2, r2, s2);
K(this.pageWrapper, i2);
}
loadMorePages() {
var e2;
let t2 = this.controller.getPageCount(), i2 = this.pageContainer.offsetHeight > this.pageWrapper.offsetHeight;
if (t2 > 1)
if (i2) {
this.scrollInProgress = true;
let i3 = null === (e2 = this.findLastElement(".trv-report-page")) || void 0 === e2 ? void 0 : e2.dataset.page, n2 = i3 ? parseInt(i3) + 1 : 1;
n2 <= t2 && this.getAndRenderPage(n2).then(() => {
this.loadMorePages(), this.scrollInProgress = false;
});
} else
this.loadVisiblePages(), this.scrollInProgress = false;
}
loadVisiblePages() {
this.placeholder.querySelectorAll(".trv-report-page").forEach((e2) => {
let t2 = e2, i2 = parseInt(t2.dataset.page || "");
this.scrolledInToView(t2) && this.isSkeletonScreen(t2, i2) && this.getAndRenderPage(i2);
});
}
scrolledInToView(e2) {
if (!e2)
return false;
let t2 = e2.getBoundingClientRect(), i2 = e2.closest(".trv-pages-pane");
if (!i2)
return false;
let n2 = i2.getBoundingClientRect(), r2 = n2.top, s2 = n2.bottom, o2 = t2.top, a2 = t2.bottom, l2 = this.additionalTopOffset + r2;
return o2 > 0 && o2 < s2 || a2 < s2 && a2 > l2;
}
render(e2, t2) {
let i2 = e2.pageNumber, n2 = this.findPageElement(i2);
if (!t2 && n2 && !this.isSkeletonScreen(n2, i2))
return;
(null == this.lastLoadedPage || this.lastLoadedPage.pageNumber < e2.pageNumber) && (this.lastLoadedPage = e2), this.contentArea.updatePageStyle(this.lastLoadedPage);
let r2 = this.contentArea.renderPageElement(e2);
t2 && (this.pageWrapper.innerHTML = ""), this.pageWrapper.dataset.pageNumber = i2.toString();
let s2 = this.findElement(".trv-skeleton-" + i2);
s2 ? (s2.after(r2), s2.remove()) : this.pageWrapper.append(r2), this.contentArea.setScrollablePage(r2, e2), this.controller.scrollPageReady();
}
loadNextPreviousPage(e2) {
if (e2 < this.controller.getPageCount()) {
let t2 = e2 + 1, i2 = this.findPageElement(t2);
i2 && this.isSkeletonScreen(i2, t2) && this.getAndRenderPage(t2);
}
if (e2 > 1) {
let t2 = e2 - 1, i2 = this.findPageElement(t2);
i2 && this.isSkeletonScreen(i2, t2);
}
}
initEvents() {
this.onClickHandler = this.clickPage.bind(this), this.debounceScroll = te(() => {
let e2 = this.placeholder.querySelectorAll(".trv-report-page"), t2 = Math.round(this.pageContainer.scrollTop + this.pageContainer.offsetHeight);
!this.scrollInProgress && e2.length && this.oldScrollTopPosition !== t2 && this.advanceCurrentPage(Array.from(e2));
}, 250), this.throttleScroll = ie(() => {
let e2 = this.placeholder.querySelectorAll(".trv-report-page"), t2 = Math.round(this.pageContainer.scrollTop + this.pageContainer.offsetHeight);
this.scrollInProgress || this.oldScrollTopPosition === t2 || (this.oldScrollTopPosition > t2 ? this.scrollUp(Array.from(e2)) : this.scrollDown(Array.from(e2), t2)), this.oldScrollTopPosition = t2;
}, 250), this.pageContainer.addEventListener("click", this.onClickHandler), this.pageContainer.addEventListener("scroll", this.debounceScroll), this.pageContainer.addEventListener("scroll", this.throttleScroll);
}
unbind() {
this.pageContainer.removeEventListener("click", this.onClickHandler), this.pageContainer.removeEventListener("scroll", this.debounceScroll), this.pageContainer.removeEventListener("scroll", this.throttleScroll);
}
clickPage(e2) {
var t2;
let i2 = null === (t2 = e2.target) || void 0 === t2 ? void 0 : t2.closest(".trv-report-page");
if (!i2)
return;
let n2 = this.currentPageNumber(), r2 = parseInt(i2.dataset.page || "");
n2 !== r2 && (this.isSkeletonScreen(i2, r2) ? this.getAndRenderPage(r2).then((e3) => {
this.setCurrentPage(e3.pageNumber);
}) : this.setCurrentPage(r2));
}
advanceCurrentPage(e2) {
let t2 = this.findNewCurrentPage(e2);
if (t2) {
let e3 = parseInt(t2.dataset.page || "-1"), i2 = this.currentPageNumber(), n2 = this.scrolledInToView(this.findPageElement(i2));
i2 === e3 || n2 || (this.isSkeletonScreen(t2, e3) ? this.getAndRenderPage(e3).then((e4) => {
this.setCurrentPage(e4.pageNumber);
}) : this.setCurrentPage(e3));
} else
console.log("Page not found - ", t2);
}
findNewCurrentPage(e2) {
let t2 = Math.floor(e2.length / 2), i2 = this.findPageInViewPort(t2, e2);
return 1 === e2.length ? e2[0] : 0 === i2 ? e2[t2] : i2 < 0 && e2.length > 1 ? this.findNewCurrentPage(e2.splice(t2, Number.MAX_VALUE)) : i2 > 0 && e2.length > 1 ? this.findNewCurrentPage(e2.splice(0, t2)) : null;
}
findPageInViewPort(e2, t2) {
let i2 = t2[e2], n2 = i2.getBoundingClientRect(), r2 = i2.closest(".trv-pages-pane");
if (!r2)
return -1;
let s2 = r2.getBoundingClientRect().top, o2 = n2.top, a2 = n2.bottom, l2 = this.additionalTopOffset + s2;
return o2 <= l2 && l2 < a2 ? 0 : a2 < l2 ? -1 : 1;
}
scrollDown(e2, t2) {
if (t2 >= this.pageContainer.scrollHeight) {
let t3 = parseInt(e2[e2.length - 1].dataset.page || "") + 1;
this.currentPageNumber() < t3 && t3 <= this.controller.getPageCount() && (this.addSkeletonScreen(t3, false), this.getAndRenderPage(t3));
} else
this.advanceCurrentPage(e2), this.loadVisiblePages();
}
scrollUp(e2) {
if (0 === this.pageContainer.scrollTop) {
let t2 = parseInt(e2[0].dataset.page || "") - 1;
this.currentPageNumber() > t2 && t2 >= 1 && (this.addSkeletonScreen(t2, true), this.getAndRenderPage(t2).then(() => {
this.pageContainer.scrollTop = 3;
}));
} else
this.advanceCurrentPage(e2), this.loadVisiblePages();
}
keepCurrentPageInToView() {
let e2 = this.findPageElement(this.currentPageNumber());
if (!e2)
return;
let t2 = e2.offsetTop, i2 = e2.offsetHeight, n2 = this.pageContainer.offsetHeight;
if (this.scrollInProgress = true, i2 < n2) {
t2 -= (n2 - i2) / 2;
}
this.animateScroll(t2, 0, () => {
setTimeout(() => {
this.scrollInProgress = false;
}, 100);
});
}
getAndRenderPage(e2) {
return this.controller.getPageData(e2).then((e3) => (this.render(e3, false), e3));
}
scrollToPage(e2, t2) {
this.animateScroll(e2, 500, () => {
this.setCurrentPage(t2), setTimeout(() => {
this.scrollInProgress = false;
});
});
}
animateScroll(e2, t2, i2) {
this.pageContainer.scrollTop = e2, i2.call(this);
}
findPageElement(e2) {
return this.findElement('[data-page="' + e2 + '"]');
}
findElement(e2) {
var t2;
return null === (t2 = this.placeholder) || void 0 === t2 ? void 0 : t2.querySelector(e2);
}
findLastElement(e2) {
var t2;
let i2 = null === (t2 = this.placeholder) || void 0 === t2 ? void 0 : t2.querySelectorAll(e2);
return i2 && i2.length ? i2[i2.length - 1] : null;
}
}
class xe {
constructor() {
this.scaleFactor = 0, this.placeholder = null, this.scrollableContainer = null, this.itemsInitialState = {}, this.xFrozenAreasBounds = {}, this.yFrozenAreasBounds = {}, this.freezeMaxZIndex = {}, this.freezeBGColor = {}, this.currentlyFrozenContainer = { vertical: {}, horizontal: {} }, this.zIndex = 1;
}
init(e2) {
this.reset(e2), this.attachToScrollEvent();
}
reset(e2) {
this.placeholder = e2, this.scrollableContainer = Q(e2, ".trv-page-container"), this.itemsInitialState = {}, this.xFrozenAreasBounds = {}, this.yFrozenAreasBounds = {}, this.currentlyFrozenContainer = { vertical: {}, horizontal: {} };
}
setScaleFactor(e2) {
this.scaleFactor = e2;
}
attachToScrollEvent() {
var e2;
null === (e2 = this.scrollableContainer) || void 0 === e2 || e2.addEventListener("scroll", () => {
if (this.scrollableContainer) {
let e3 = this.scrollableContainer.querySelectorAll("div[data-sticky-id]");
if (e3.length) {
const t2 = new Set(Array.from(e3).map((e4) => e4.dataset.stickyId || ""));
let i2 = this.scrollableContainer.scrollTop, n2 = this.scrollableContainer.scrollLeft;
t2.forEach((e4) => {
this.itemsInitialState[e4] || this.saveFreezeItemsInitialState(e4), this.updateFreezeItemsOnScroll(e4, i2, n2);
});
}
}
});
}
saveFreezeItemsInitialState(e2) {
var t2, i2, n2;
let r2 = null === (t2 = this.placeholder) || void 0 === t2 ? void 0 : t2.querySelectorAll("[data-sticky-direction][data-sticky-id='" + e2 + "']"), s2 = null === (i2 = this.placeholder) || void 0 === i2 ? void 0 : i2.querySelectorAll("[data-reporting-action][data-sticky-id='" + e2 + "']"), o2 = null, a2 = null, l2 = null, h2 = null;
this.itemsInitialState[e2] = {}, this.freezeBGColor[e2] = (null === (n2 = Q(this.placeholder, "[data-id='" + e2 + "']")) || void 0 === n2 ? void 0 : n2.dataset.stickyBgColor) || "", r2.forEach((t3) => {
var i3;
let n3 = t3.dataset.stickyDirection, r3 = (null === (i3 = t3.dataset.id) || void 0 === i3 ? void 0 : i3.toString()) || "", s3 = t3.offsetLeft / this.scaleFactor, c2 = t3.offsetLeft + t3.offsetWidth * this.scaleFactor, d2 = t3.offsetTop / this.scaleFactor, u2 = t3.offsetTop + t3.offsetHeight * this.scaleFactor, p2 = (e3, t4) => null === e3 || t4 < e3 ? t4 : e3, g2 = (e3, t4) => null === e3 || t4 > e3 ? t4 : e3;
switch (n3) {
case "Vertical":
a2 = p2(a2, d2), h2 = g2(h2, u2);
break;
case "Horizontal":
o2 = p2(o2, s3), l2 = g2(l2, c2);
}
this._saveFreezeItemInitialState(e2, t3, r3);
}), this.freezeMaxZIndex[e2] = (null == s2 ? void 0 : s2.length) ? parseInt(getComputedStyle(s2[0]).zIndex) : this.zIndex, this.yFrozenAreasBounds[e2] = (h2 || 0) - (a2 || 0), this.xFrozenAreasBounds[e2] = (l2 || 0) - (o2 || 0);
}
_saveFreezeItemInitialState(e2, t2, i2) {
const n2 = getComputedStyle(t2);
let r2 = this.hasSetBgColor(n2.backgroundColor), s2 = n2.zIndex;
"auto" !== s2 && (s2 = parseFloat(s2));
let o2 = { top: t2.offsetTop, left: t2.offsetLeft, zIndex: s2, hasBgColor: r2 };
this.itemsInitialState[e2][i2] = o2;
}
updateFreezeItemsOnScroll(e2, t2, i2) {
var n2, r2;
let s2 = Q(this.placeholder, "div[data-id='" + e2 + "']");
if (!s2)
return;
let o2 = null === (n2 = this.placeholder) || void 0 === n2 ? void 0 : n2.querySelectorAll("[data-sticky-direction*='Horizontal'][data-sticky-id='" + e2 + "']"), a2 = null === (r2 = this.placeholder) || void 0 === r2 ? void 0 : r2.querySelectorAll("[data-sticky-direction*='Vertical'][data-sticky-id='" + e2 + "']");
if (this.isInScrollVisibleArea(s2)) {
let n3 = s2.closest(".trv-report-page"), r3 = getComputedStyle(n3), l2 = parseFloat(r3.marginLeft), h2 = parseFloat(r3.paddingTop), c2 = parseFloat(r3.paddingLeft), d2 = parseFloat(r3.borderTopWidth), u2 = parseFloat(r3.borderLeftWidth), p2 = o2.length > 0, g2 = a2.length > 0, m2 = s2.offsetTop + ((null == n3 ? void 0 : n3.offsetTop) || 0) + l2 + h2 + d2, f2 = s2.offsetLeft + ((null == n3 ? void 0 : n3.offsetLeft) || 0) + c2 + u2, v2 = t2 - m2, P2 = i2 - f2;
g2 && v2 > 0 ? t2 <= s2.offsetHeight * this.scaleFactor + m2 - this.yFrozenAreasBounds[e2] && (this.currentlyFrozenContainer.vertical[e2] = true, this.updateUIElementsPosition(a2, "top", v2 / this.scaleFactor, e2)) : this.currentlyFrozenContainer.vertical[e2] && (delete this.currentlyFrozenContainer.vertical[e2], this.updateUIElementsPosition(a2, "top", -1, e2)), p2 && P2 > 0 ? i2 <= s2.offsetWidth * this.scaleFactor + f2 - this.xFrozenAreasBounds[e2] && (this.currentlyFrozenContainer.horizontal[e2] = true, this.updateUIElementsPosition(o2, "left", P2 / this.scaleFactor, e2)) : this.currentlyFrozenContainer.horizontal[e2] && (delete this.currentlyFrozenContainer.horizontal[e2], this.updateUIElementsPosition(o2, "left", -1, e2));
} else
(this.currentlyFrozenContainer.horizontal[e2] || this.currentlyFrozenContainer.vertical[e2]) && this.resetToDefaultPosition(e2, o2, a2);
}
resetToDefaultPosition(e2, t2, i2) {
this.updateUIElementsPosition(i2, "