UNPKG

@progress/telerik-react-report-viewer

Version:

Progress® Telerik® Report Viewer for React

1,125 lines (1,122 loc) 313 kB
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, "