????
Current Path : C:/inetpub/vhost/bcvt.kontum.gov.vn/www/ |
Current File : C:/inetpub/vhost/bcvt.kontum.gov.vn/www/95-es5.js |
(function () { var absMids = { "esri/libs/amcharts4/index": "./node_modules/arcgis-js-api/libs/amcharts4/index.js" }; var globalObj = this || window; var jsonpArray = globalObj["webpackJsonp"] = globalObj["webpackJsonp"] || []; if (jsonpArray.registerAbsMids) { jsonpArray.registerAbsMids(absMids); } else { var absMidsWaiting = jsonpArray.absMidsWaiting = jsonpArray.absMidsWaiting || []; absMidsWaiting.push(absMids); } })(), (window["webpackJsonp"] = window["webpackJsonp"] || []).push([[95], { /***/ "./node_modules/arcgis-js-api/libs/amcharts4/index.js": /*!************************************************************!*\ !*** ./node_modules/arcgis-js-api/libs/amcharts4/index.js ***! \************************************************************/ /*! no static exports found */ /***/ function node_modulesArcgisJsApiLibsAmcharts4IndexJs(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri // // All rights reserved under the copyright laws of the United States // and applicable international laws, treaties, and conventions. // // This material is licensed for use under the Esri Master License // Agreement (MLA), and is bound by the terms of that agreement. // You may redistribute and use this code without modification, // provided you adhere to the terms of the MLA and include this // copyright notice. // // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english // // For additional information, contact: // Environmental Systems Research Institute, Inc. // Attn: Contracts and Legal Services Department // 380 New York Street // Redlands, California, USA 92373 // USA // // email: contracts@esri.com // // See http://js.arcgis.com/4.14/esri/copyright.txt for details. /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ !(__WEBPACK_AMD_DEFINE_RESULT__ = function () { return function (t) { function e(e) { for (var i, n, s = e[0], o = e[1], a = 0, h = []; a < s.length; a++) n = s[a], Object.prototype.hasOwnProperty.call(r, n) && r[n] && h.push(r[n][0]), r[n] = 0; for (i in o) Object.prototype.hasOwnProperty.call(o, i) && (t[i] = o[i]); for (l && l(e); h.length;) h.shift()(); } function i(e) { if (n[e]) return n[e].exports; var r = n[e] = { i: e, l: !1, exports: {} }; return t[e].call(r.exports, r, r.exports, i), r.l = !0, r.exports; } var n = {}, r = { 0: 0 }; i.e = function (t) { var e = [], n = r[t]; if (0 !== n) if (n) e.push(n[2]);else { var s = new Promise(function (e, i) { n = r[t] = [e, i]; }); e.push(n[2] = s); var o, a = document.createElement("script"); a.charset = "utf-8", a.timeout = 120, i.nc && a.setAttribute("nonce", i.nc), a.src = function (t) { return i.p + "" + ({ 1: "vendors~canvg", 2: "vendors~pdfmake", 3: "vendors~xlsx", 4: "xlsx" }[t] || t) + ".js"; }(t); var l = new Error(); o = function o(e) { a.onerror = a.onload = null, clearTimeout(h); var i = r[t]; if (0 !== i) { if (i) { var n = e && ("load" === e.type ? "missing" : e.type), s = e && e.target && e.target.src; l.message = "Loading chunk " + t + " failed.\n(" + n + ": " + s + ")", l.name = "ChunkLoadError", l.type = n, l.request = s, i[1](l); } r[t] = void 0; } }; var h = setTimeout(function () { o({ type: "timeout", target: a }); }, 12e4); a.onerror = a.onload = o, document.head.appendChild(a); } return Promise.all(e); }, i.m = t, i.c = n, i.d = function (t, e, n) { i.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }); }, i.r = function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }); }, i.t = function (t, e) { if (1 & e && (t = i(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var n = Object.create(null); if (i.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var r in t) i.d(n, r, function (e) { return t[e]; }.bind(null, r)); return n; }, i.n = function (t) { var e = t && t.__esModule ? function () { return t["default"]; } : function () { return t; }; return i.d(e, "a", e), e; }, i.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e); }, i.p = "", i.oe = function (t) { throw console.error(t), t; }; var s = window.webpackJsonpEsriAmCharts = window.webpackJsonpEsriAmCharts || [], o = s.push.bind(s); s.push = e, s = s.slice(); for (var a = 0; a < s.length; a++) e(s[a]); var l = o; return i(i.s = 1); }([function (t, e, i) { "use strict"; var n, r; "undefined" != typeof window && window, void 0 === (r = "function" == typeof (n = function n() { function t(t, e) { var i = Object.prototype.toString.call(t), n = "[object Array]" === i || "[object NodeList]" === i || "[object HTMLCollection]" === i || "[object Object]" === i || "undefined" != typeof jQuery && t instanceof jQuery || "undefined" != typeof Elements && t instanceof Elements, r = 0, s = t.length; if (n) for (; r < s; r++) e(t[r]);else e(t); } function e(t) { if (!t.getBoundingClientRect) return { width: t.offsetWidth, height: t.offsetHeight }; var e = t.getBoundingClientRect(); return { width: Math.round(e.width), height: Math.round(e.height) }; } function i(t, e) { Object.keys(e).forEach(function (i) { t.style[i] = e[i]; }); } if ("undefined" == typeof window) return null; var n = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(), r = n.requestAnimationFrame || n.mozRequestAnimationFrame || n.webkitRequestAnimationFrame || function (t) { return n.setTimeout(t, 20); }, s = function s(n, o) { function a() { var t, e, i = []; this.add = function (t) { i.push(t); }, this.call = function (n) { for (t = 0, e = i.length; t < e; t++) i[t].call(this, n); }, this.remove = function (n) { var r = []; for (t = 0, e = i.length; t < e; t++) i[t] !== n && r.push(i[t]); i = r; }, this.length = function () { return i.length; }; } function l(t, n) { if (t) if (t.resizedAttached) t.resizedAttached.add(n);else { t.resizedAttached = new a(), t.resizedAttached.add(n), t.resizeSensor = document.createElement("div"), t.resizeSensor.dir = "ltr", t.resizeSensor.className = "resize-sensor"; var s = { pointerEvents: "none", position: "absolute", left: "0px", top: "0px", right: "0px", bottom: "0px", overflow: "hidden", zIndex: "-1", visibility: "hidden", maxWidth: "100%" }, o = { position: "absolute", left: "0px", top: "0px", transition: "0s" }; i(t.resizeSensor, s); var l = document.createElement("div"); l.className = "resize-sensor-expand", i(l, s); var h = document.createElement("div"); i(h, o), l.appendChild(h); var u = document.createElement("div"); u.className = "resize-sensor-shrink", i(u, s); var p = document.createElement("div"); i(p, o), i(p, { width: "200%", height: "200%" }), u.appendChild(p), t.resizeSensor.appendChild(l), t.resizeSensor.appendChild(u), t.appendChild(t.resizeSensor); var c, d, f = window.getComputedStyle(t), g = f ? f.getPropertyValue("position") : null; "absolute" !== g && "relative" !== g && "fixed" !== g && (t.style.position = "relative"); var y = e(t), m = 0, v = 0, b = !0, x = 0, _ = function _() { if (b) { if (0 === t.offsetWidth && 0 === t.offsetHeight) return void (x || (x = r(function () { x = 0, _(); }))); b = !1; } var e, i; e = t.offsetWidth, i = t.offsetHeight, h.style.width = e + 10 + "px", h.style.height = i + 10 + "px", l.scrollLeft = e + 10, l.scrollTop = i + 10, u.scrollLeft = e + 10, u.scrollTop = i + 10; }; t.resizeSensor.resetSensor = _; var P = function P() { d = 0, c && (m = y.width, v = y.height, t.resizedAttached && t.resizedAttached.call(y)); }, w = function w() { y = e(t), (c = y.width !== m || y.height !== v) && !d && (d = r(P)), _(); }, C = function C(t, e, i) { t.attachEvent ? t.attachEvent("on" + e, i) : t.addEventListener(e, i); }; C(l, "scroll", w), C(u, "scroll", w), r(_); } } t(n, function (t) { l(t, o); }), this.detach = function (t) { s.detach(n, t); }, this.reset = function () { n.resizeSensor.resetSensor(); }; }; if (s.reset = function (e) { t(e, function (t) { t.resizeSensor.resetSensor(); }); }, s.detach = function (e, i) { t(e, function (t) { t && (t.resizedAttached && "function" == typeof i && (t.resizedAttached.remove(i), t.resizedAttached.length()) || t.resizeSensor && (t.contains(t.resizeSensor) && t.removeChild(t.resizeSensor), delete t.resizeSensor, delete t.resizedAttached)); }); }, "undefined" != typeof MutationObserver) { var o = new MutationObserver(function (t) { for (var e in t) if (t.hasOwnProperty(e)) for (var i = t[e].addedNodes, n = 0; n < i.length; n++) i[n].resizeSensor && s.reset(i[n]); }); document.addEventListener("DOMContentLoaded", function (t) { o.observe(document.body, { childList: !0, subtree: !0 }); }); } return s; }) ? n.call(e, i, e, t) : n) || (t.exports = r); }, function (t, e, i) { "use strict"; function n(t, e) { function i() { this.constructor = t; } _as(t, e), t.prototype = null === e ? Object.create(e) : (i.prototype = e.prototype, new i()); } function r(t, e, i, n) { return new (i || (i = Promise))(function (r, s) { function o(t) { try { l(n.next(t)); } catch (t) { s(t); } } function a(t) { try { l(n["throw"](t)); } catch (t) { s(t); } } function l(t) { t.done ? r(t.value) : new i(function (e) { e(t.value); }).then(o, a); } l((n = n.apply(t, e || [])).next()); }); } function s(t, e) { function i(i) { return function (o) { return function (i) { if (n) throw new TypeError("Generator is already executing."); for (; a;) try { if (n = 1, r && (s = 2 & i[0] ? r["return"] : i[0] ? r["throw"] || ((s = r["return"]) && s.call(r), 0) : r.next) && !(s = s.call(r, i[1])).done) return s; switch (r = 0, s && (i = [2 & i[0], s.value]), i[0]) { case 0: case 1: s = i; break; case 4: return a.label++, { value: i[1], done: !1 }; case 5: a.label++, r = i[1], i = [0]; continue; case 7: i = a.ops.pop(), a.trys.pop(); continue; default: if (!(s = (s = a.trys).length > 0 && s[s.length - 1]) && (6 === i[0] || 2 === i[0])) { a = 0; continue; } if (3 === i[0] && (!s || i[1] > s[0] && i[1] < s[3])) { a.label = i[1]; break; } if (6 === i[0] && a.label < s[1]) { a.label = s[1], s = i; break; } if (s && a.label < s[2]) { a.label = s[2], a.ops.push(i); break; } s[2] && a.ops.pop(), a.trys.pop(); continue; } i = e.call(t, a); } catch (t) { i = [6, t], r = 0; } finally { n = s = 0; } if (5 & i[0]) throw i[1]; return { value: i[0] ? i[1] : void 0, done: !0 }; }([i, o]); }; } var n, r, s, o, a = { label: 0, sent: function sent() { if (1 & s[0]) throw s[1]; return s[1]; }, trys: [], ops: [] }; return o = { next: i(0), "throw": i(1), "return": i(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o; } function o(t) { var e = "function" == typeof Symbol && t[Symbol.iterator], i = 0; return e ? e.call(t) : { next: function next() { return t && i >= t.length && (t = void 0), { value: t && t[i++], done: !t }; } }; } function a(t, e) { var i = "function" == typeof Symbol && t[Symbol.iterator]; if (!i) return t; var n, r, s = i.call(t), o = []; try { for (; (void 0 === e || e-- > 0) && !(n = s.next()).done;) o.push(n.value); } catch (t) { r = { error: t }; } finally { try { n && !n.done && (i = s["return"]) && i.call(s); } finally { if (r) throw r.error; } } return o; } function l() { for (var t = [], e = 0; e < arguments.length; e++) t = t.concat(a(arguments[e])); return t; } function h(t) { return new hs(t); } function u(t) { return t instanceof hs; } function p(t) { return Number(t) !== t; } function c(t) { return {}.toString.call(t); } function d(t, e) { return t || e; } function f(t) { if ("string" == typeof t) return !0; throw new Error("Expected a string but got " + c(t)); } function g(t) { if ("boolean" == typeof t) return !0; throw new Error("Expected a boolean but got " + c(t)); } function y(t) { if ("number" != typeof t) throw new Error("Expected a number but got " + c(t)); if (p(t)) throw new Error("Expected a number but got NaN"); return !0; } function m(t) { var e = c(t); if ("[object Object]" === e) return !0; throw new Error("Expected an object but got " + e); } function v(t) { if (Array.isArray(t)) return !0; throw new Error("Expected an array but got " + c(t)); } function b(t) { var e = c(t); if ("[object Date]" === e) return !0; throw new Error("Expected a date but got " + e); } function x(t) { if ("string" == typeof t) return t; if ("number" == typeof t) return "" + t; throw new Error("Expected a string or number but got " + c(t)); } function _(t) { if ("string" == typeof t) { var e = +t; if (p(e)) throw new Error("Cannot cast string " + JSON.stringify(t) + " to a number"); return e; } if ("number" == typeof t) { if (p(t)) throw new Error("Expected a number but got NaN"); return t; } var i = c(t); if ("[object Date]" === i) return t.getTime(); throw new Error("Expected a string, number, or date but got " + i); } function P(t) { return !!t; } function w(t) { if (S(t) && !A(t)) { var e = Number(t); return p(e) && T(t) && "" != t ? w(t.replace(/[^0-9.\-]+/g, "")) : e; } return t; } function C(t) { if (S(t) && !T(t)) { if (A(t)) return x(t); if (V(t)) return t.toString(); } return t; } function O(t) { return !S(t) || A(t) || u(t) ? t : T(t) && -1 != t.indexOf("%") ? h(w(t)) : w(t); } function S(t) { return null != t; } function I(t) { if (S(t)) return t; throw new Error("Value doesn't exist"); } function D(t, e) { return S(t) ? t : e; } function k(t) { return "[object Date]" === c(t); } function T(t) { return "string" == typeof t; } function A(t) { return "number" == typeof t && Number(t) == t; } function V(t) { return "object" == typeof t; } function F(t) { return Array.isArray(t); } function M(t, e, i) { return S(t) ? R(t = w(t), e, i) : t; } function j(t, e, i) { if (!A(e) || e <= 0) { var n = Math.round(t); return i && n - t == .5 && n--, n; } var r = Math.pow(10, e); return Math.round(t * r) / r; } function L(t, e) { if (!A(e) || e <= 0) return Math.ceil(t); var i = Math.pow(10, e); return Math.ceil(t * i) / i; } function E(t, e, i) { return t * (i - e) + e; } function R(t, e, i) { if (A(e)) { if (A(i) && i < e) { var n = i; i = e, e = n; } t < e && (t = e); } return A(i) && t > i && (t = i), t; } function B(t) { return j(Math.sin(cs * t), 10); } function N(t) { return j(Math.tan(cs * t), 10); } function H(t) { return j(Math.cos(cs * t), 10); } function W(t, e) { return A(t) ? A(e) && e > t ? e : t : A(e) ? e : null; } function X(t, e) { return A(t) ? A(e) && e < t ? e : t : A(e) ? e : null; } function Y(t, e) { return t.reduce(function (t, i) { return Math.abs(i - e) < Math.abs(t - e) ? i : t; }); } function z(t, e) { var i = I(t.start), n = I(e.start), r = I(t.end), s = I(e.end); return Math.max(i, n) <= Math.min(r, s); } function U(t) { var e = I(t.start); return { start: 1 - I(t.end), end: 1 - e }; } function G(t, e) { var i = I(t.start), n = I(e.start), r = I(t.end), s = I(e.end), o = Math.max(i, n), a = Math.min(r, s); return a < o ? void 0 : { start: o, end: a }; } function K(t, e) { return t ? (e || (e = { x: 0, y: 0 }), Math.sqrt(Math.pow(Math.abs(t.x - e.x), 2) + Math.pow(Math.abs(t.y - e.y), 2))) : 0; } function Z(t, e, i, n, r) { if (!t) return 0; e || (e = { x: 0, y: 0 }); var s = 0, o = t; if (r > 0) for (var a = 0; a <= r; a++) { var l = rt(t, e, i, n, a / r); s += K(o, l), o = l; } return s; } function q(t, e, i, n) { var r = K(e, n), s = K(t, i); return Math.abs(s / r); } function $(t, e, i) { return A(i) || (i = .5), { x: t.x + (e.x - t.x) * i, y: t.y + (e.y - t.y) * i }; } function J(t, e, i, n) { var r = Q(e, n) - Q(t, i); return r < 0 && (r += 360), r; } function Q(t, e) { e || (e = { x: 2 * t.x, y: 2 * t.y }); var i = e.x - t.x, n = e.y - t.y, r = Math.atan2(n, i) * ds; return r < 0 && (r += 360), lt(r); } function tt(t, e, i, n, r) { var s = J(e, i, n, r) - 90; s < 0 && (s += 360); var o = K(e, n), a = Math.cos(s) / o + e.x, l = Math.cos(s) / o + e.y; return { x: a - t.x, y: l - t.y }; } function et(t) { if (t) { var e = t.length; if (0 !== e) { for (var i, n = void 0, r = void 0, s = void 0, o = 0; o < e; o++) { var a = t[o]; (!A(r) || a.x > r) && (r = a.x), (!A(n) || a.x < n) && (n = a.x), (!A(i) || a.y < i) && (i = a.y), (!A(s) || a.y > s) && (s = a.y); } return { x: n, y: i, width: r - n, height: s - i }; } } return { x: 0, y: 0, width: 0, height: 0 }; } function it(t) { var e = t.length; if (0 !== e) { for (var i = void 0, n = void 0, r = void 0, s = void 0, o = 0; o < e; o++) { var a = t[o]; i = X(a.x, i), n = X(a.y, n), r = W(a.x + a.width, r), s = W(a.y + a.height, s); } return { x: i, y: n, width: r - i, height: s - n }; } } function nt(t, e, i, n) { return { x: (1 - n) * (1 - n) * t.x + 2 * (1 - n) * n * i.x + n * n * e.x, y: (1 - n) * (1 - n) * t.y + 2 * (1 - n) * n * i.y + n * n * e.y }; } function rt(t, e, i, n, r) { var s = { x: 0, y: 0 }, o = 1 - r, a = o * o, l = a * o; return s.x = t.x * l + 3 * i.x * a * r + 3 * n.x * o * r * r + e.x * r * r * r, s.y = t.y * l + 3 * i.y * a * r + 3 * n.y * o * r * r + e.y * r * r * r, s; } function st(t, e, i, n, r, s) { return r = at(r), s = at(s), { x: (-t.x + e.x / r + i.x) * r, y: (-t.y + e.y / s + i.y) * s }; } function ot(t, e, i, n, r, s) { return r = at(r), s = at(s), { x: (e.x + i.x / r - n.x) * r, y: (e.y + i.y / s - n.y) * s }; } function at(t) { return 1 - t + 1e-5; } function lt(t) { return 360 == t ? 360 : t % 360; } function ht(t, e, i) { if (e > i) { var n = e; e = i, i = n; } t = lt(t); var r = (e - lt(e)) / 360; return t < e && (t += 360 * (r + 1)), t > i && (t - 360 > e ? t -= 360 : t = t < e + (i - e) / 2 + 180 ? i : e), t < e && (t = t > e + (i - e) / 2 - 180 ? e : i), t; } function ut(t, e, i) { var n = Number.MAX_VALUE, r = Number.MAX_VALUE, s = -Number.MAX_VALUE, o = -Number.MAX_VALUE, a = []; A(i) || (i = 1), a.push(pt(i, t)), a.push(pt(i, e)); for (var l = Math.min(90 * Math.floor(t / 90), 90 * Math.floor(e / 90)), h = Math.max(90 * Math.ceil(t / 90), 90 * Math.ceil(e / 90)), u = l; u <= h; u += 90) u >= t && u <= e && a.push(pt(i, u)); for (var p = 0; p < a.length; p++) { var c = a[p]; c.x < n && (n = c.x), c.y < r && (r = c.y), c.x > s && (s = c.x), c.y > o && (o = c.y); } return { x: n, y: r, width: s - n, height: o - r }; } function pt(t, e) { return { x: t * H(e), y: t * B(e) }; } function ct(t, e) { return t.x >= e.x && t.x <= e.x + e.width && t.y > e.y && t.y < e.y + e.height; } function dt(t, e, i, n) { return { x: ((t.x * e.y - e.x * t.y) * (i.x - n.x) - (t.x - e.x) * (i.x * n.y - i.y * n.x)) / ((t.x - e.x) * (i.y - n.y) - (t.y - e.y) * (i.x - n.x)), y: ((t.x * e.y - e.x * t.y) * (i.y - n.y) - (t.y - e.y) * (i.x * n.y - i.y * n.x)) / ((t.x - e.x) * (i.y - n.y) - (t.y - e.y) * (i.x - n.x)) }; } function ft(t, e) { for (var i = t.length, n = 0; n < i; ++n) if (t[n] === e) return n; return -1; } function gt(t, e) { for (var i = t.length, n = 0; n < i; ++n) if (e(t[n])) return !0; return !1; } function yt(t, e) { for (var i = t.length, n = new Array(i), r = 0; r < i; ++r) n[r] = e(t[r], r); return n; } function mt(t, e) { for (var i = t.length, n = 0; n < i; ++n) e(t[n], n); } function vt(t, e) { for (var i = t.length; i--;) e(t[i], i); } function bt(t, e) { for (var i = t.length, n = 0; n < i && e(t[n], n); ++n); } function xt(t, e) { for (var i = t.length, n = e; n < i; ++n) t[n - e] = t[n]; t.length = i - e; } function _t(t) { var e = t.length; return e ? t[e - 1] : void 0; } function Pt(t) { return t[0]; } function wt(t, e, i) { i = R(i, 0, t.length), t.splice(i, 0, e); } function Ct(t, e, i) { St(t, e), wt(t, e, i); } function Ot(t, e) { for (var i = e.length, n = 0; n < i; ++n) t.push(e[n]); } function St(t, e) { var i = !1, n = t.indexOf(e); if (-1 !== n) { i = !0, t.splice(n, 1); for (var r = t.length; n < r;) t[n] === e ? (t.splice(n, 1), --r) : ++n; } return i; } function It(t, e, i) { var n = ft(t, e); -1 !== n && jt(t, n), null == i ? t.push(e) : Mt(t, i, e); } function Dt(t, e, i) { A(i) ? 0 === i ? t.unshift(e) : t.splice(i, 0, e) : t.push(e); } function kt(t, e, i) { var n = t.indexOf(e); -1 !== n && t.splice(n, 1), A(i) ? t.splice(i, 0, e) : t.push(e); } function Tt(t) { return Array.isArray(t) ? t : [t]; } function At(t, e) { return -1 !== ft(t, e); } function Vt(t) { for (var e = t.length, i = new Array(e), n = 0; n < e; ++n) i[n] = t[n]; return i; } function Ft(t, e, i) { void 0 === i && (i = t.length); for (var n = new Array(i - e), r = e; r < i; ++r) n[r - e] = t[r]; return n; } function Mt(t, e, i) { t.splice(e, 0, i); } function jt(t, e) { t.splice(e, 1); } function Lt(t, e, i) { for (var n = 0, r = t.length, s = !1; n < r;) { var o = n + r >> 1, a = e(i, t[o]); a < 0 ? r = o : 0 === a ? (s = !0, n = o + 1) : n = o + 1; } return { found: s, index: s ? n - 1 : n }; } function Et(t, e) { for (var i = t.length, n = 0; n < i; ++n) if (e(t[n], n)) return n; return -1; } function Rt(t, e) { var i = Et(t, e); if (-1 !== i) return t[i]; } function Bt(t) { for (var e, i, n = t.length; 0 !== n;) i = Math.floor(Math.random() * n), e = t[n -= 1], t[n] = t[i], t[i] = e; } function Nt() { for (var t = Date.now(), e = bs.length, i = 0; i < e; ++i) bs[i](t); for (xt(bs, e), i = 0; i < xs.length; ++i) xs[i](t); for (xs.length = 0, i = 0; i < _s.length; ++i) _s[i](t); _s.length = 0, 0 === bs.length && 0 === xs.length ? vs = !1 : ws(Nt); } function Ht() { vs || (vs = !0, ws(Nt)); } function Wt(t) { bs.push(t), Ht(); } function Xt(t) { xs.push(t), Ht(); } function Yt(t) { _s.push(t), Ht(); } function zt(t) { Ps.push(t); } function Ut() { for (var t = Date.now(), e = Ps.length, i = 0; i < e; ++i) Ps.shift()(t); } function Gt(t) { return function (e) { for (var i in t) if (qt(t, i) && !e([i, t[i]])) break; }; } function Kt(t) { var e = []; for (var i in t) qt(t, i) && e.push(i); return e; } function Zt(t, e) { return Kt(t).sort(e); } function qt(t, e) { return {}.hasOwnProperty.call(t, e); } function $t(t, e) { return t[e]; } function Jt(t, e) { for (var i in t) if (qt(t, i) && !e(i, t[i])) break; } function Qt(t, e) { Jt(t, function (t, i) { return e(t, i), !0; }); } function te(t, e, i) { mt(Zt(t, i), function (i) { e(i, t[i]); }); } function ee(t) { return Object.assign({}, t); } function ie(t, e) { return Object.assign({}, t, e); } function ne(t, e, i) { mt(i, function (i) { S(t[i]) && (e[i] = t[i]); }); } function re(t, e, i) { mt(i, function (i) { S(t[i]) && !S(e[i]) && (e[i] = t[i]); }); } function se(t, e, i) { mt(i, function (i) { e[i] = t[i]; }); } function oe(t, e) { ne(t, e, Kt(t)); } function ae(t) { return function (e) { for (var i = t.length, n = 0; n < i && e(t[n]); ++n); }; } function le(t) { var e = 0; return t(function (t) { return ++e, !0; }), e; } function he(t) { var e = []; return t(function (t) { return e.push(t), !0; }), e; } function ue(t, e) { t(e); } function pe(t, e) { t(function (t) { return e(t), !0; }); } function ce(t, e) { return ae(he(t).sort(e)); } function de(t, e) { return function (i) { return t(function (t) { return i(e(t)); }); }; } function fe(t, e) { return function (i) { return t(function (t) { return !e(t) || i(t); }); }; } function ge() { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; return function (e) { for (var i = !0, n = function n(t) { return i = e(t); }, r = t.length, s = 0; s < r && (t[s](n), i); ++s); }; } function ye(t) { return function (e) { var i = !0, n = function n(t) { return i = e(t); }; t(function (t) { return t(n), i; }); }; } function me(t) { return function (e) { var i = 0; t(function (t) { return e([i++, t]); }); }; } function ve(t, e) { var i = !1, n = 0; return t(function (t) { return e(t) ? (i = !0, !1) : (++n, !0); }), i ? n : -1; } function be(t, e) { var i; return t(function (t) { return !e(t) || (i = t, !1); }), i; } function xe(t, e) { var i; return t(function (t) { var n = e(t); return null === n || (i = n, !1); }), i; } function _e(t, e) { var i = !1; return t(function (t) { return !e(t) || (i = !0, !1); }), i; } function Pe(t, e, i) { return t(function (t) { return e = i(e, t), !0; }), e; } function we(t, e) { return null == t || e < t ? e : t; } function Ce(t) { return Pe(t, null, we); } function Oe(t, e) { return null == t || e > t ? e : t; } function Se(t) { return Pe(t, null, Oe); } function Ie(t, e) { void 0 === e && (e = ""); var i = !0, n = ""; return t(function (t) { return i ? i = !1 : n += e, n += t, !0; }), n; } function De(t, e) { return t === e ? 0 : t < e ? -1 : 1; } function ke(t, e) { return new Array(e + 1).join(t); } function Te(t) { for (var e = "", i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", n = 0; n < t; n++) e += i.charAt(Math.floor(Math.random() * i.length)); return e; } function Ae(t, e) { if (!(t >= 0 && t < e)) throw new Error("Index out of bounds: " + t); } function Ve(t, e) { return t === e ? 0 : t < e ? -1 : 1; } function Fe(t) { switch (t) { case 0: return 0; case -1: return 1; case 1: return -1; } } function Me(t, e) { return 0 === t ? e : t; } function je(t, e) { var i; return Zs[t] ? i = Zs[t] : "#" === t.charAt(0) ? i = Le(t) : t.match(/^rgba?\(/) && (i = Ee(t)), i || (i = { r: 0, g: 0, b: 0, a: 1 }), S(e) && (i.a = e), i; } function Le(t) { t = t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (t, e, i, n) { return e + e + i + i + n + n; }); var e = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t); return e ? { r: parseInt(e[1], 16), g: parseInt(e[2], 16), b: parseInt(e[3], 16) } : void 0; } function Ee(t) { var e = (t = t.replace(/[ ]/g, "")).match(/^rgb\(([0-9]*),([0-9]*),([0-9]*)\)/i); if (e) e.push("1");else if (!(e = t.match(/^rgba\(([0-9]*),([0-9]*),([0-9]*),([.0-9]*)\)/i))) return; return { r: parseInt(e[1]), g: parseInt(e[2]), b: parseInt(e[3]), a: parseFloat(e[4]) }; } function Re(t) { return "#" + Ne(t.r.toString(16)) + Ne(t.g.toString(16)) + Ne(t.b.toString(16)); } function Be(t) { return S(t.a) && 1 !== t.a ? "rgba(" + t.r + "," + t.g + "," + t.b + "," + t.a + ")" : "rgb(" + t.r + "," + t.g + "," + t.b + ")"; } function Ne(t) { return 1 == t.length ? "0" + t : "" + t; } function He(t, e, i) { return i = R(i, 0, 1), t ? e ? { r: t.r + Math.round((e.r - t.r) * i), g: t.g + Math.round((e.g - t.g) * i), b: t.b + Math.round((e.b - t.b) * i), a: (t.a || 1) + Math.round(((e.a || 1) - (t.a || 1)) * i) } : t : e || t; } function We(t, e) { return t ? { r: Math.max(0, Math.min(255, t.r + Xe(t.r, e))), g: Math.max(0, Math.min(255, t.g + Xe(t.g, e))), b: Math.max(0, Math.min(255, t.b + Xe(t.b, e))), a: t.a } : t; } function Xe(t, e) { var i = e > 0 ? 255 - t : t; return Math.round(i * e); } function Ye(t, e) { if (t) { var i = Xe(Math.min(Math.max(t.r, t.g, t.b), 230), e); return { r: Math.max(0, Math.min(255, Math.round(t.r + i))), g: Math.max(0, Math.min(255, Math.round(t.g + i))), b: Math.max(0, Math.min(255, Math.round(t.b + i))), a: t.a }; } return t; } function ze(t, e) { return Math.round(255 * e); } function Ue(t, e) { if (null == t || 1 == e) return t; var i = Ke(t); return i.s = e, Ge(i); } function Ge(t) { var e, i, n, r = t.h, s = t.s, o = t.l; if (0 == s) e = i = n = o;else { var a = function a(t, e, i) { return i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + 6 * (e - t) * i : i < .5 ? e : i < 2 / 3 ? t + (e - t) * (2 / 3 - i) * 6 : t; }, l = o < .5 ? o * (1 + s) : o + s - o * s, h = 2 * o - l; e = a(h, l, r + 1 / 3), i = a(h, l, r), n = a(h, l, r - 1 / 3); } return { r: Math.round(255 * e), g: Math.round(255 * i), b: Math.round(255 * n) }; } function Ke(t) { var e = t.r / 255, i = t.g / 255, n = t.b / 255, r = Math.max(e, i, n), s = Math.min(e, i, n), o = 0, a = 0, l = (r + s) / 2; if (r === s) o = a = 0;else { var h = r - s; switch (a = l > .5 ? h / (2 - r - s) : h / (r + s), r) { case e: o = (i - n) / h + (i < n ? 6 : 0); break; case i: o = (n - e) / h + 2; break; case n: o = (e - i) / h + 4; } o /= 6; } return { h: o, s: a, l: l }; } function Ze(t) { var e, i = t.r / 255, n = t.g / 255, r = t.b / 255, s = Math.max(i, n, r), o = Math.min(i, n, r), a = 0, l = s, h = s - o; if (e = 0 == s ? 0 : h / s, s == o) a = 0;else { switch (s) { case i: a = (n - r) / h + (n < r ? 6 : 0); break; case n: a = (r - i) / h + 2; break; case r: a = (i - n) / h + 4; } a /= 6; } return { h: a, s: e, v: l }; } function qe(t) { var e = 0, i = 0, n = 0, r = t.h, s = t.s, o = t.v, a = Math.floor(6 * r), l = 6 * r - a, h = o * (1 - s), u = o * (1 - l * s), p = o * (1 - (1 - l) * s); switch (a % 6) { case 0: e = o, i = p, n = h; break; case 1: e = u, i = o, n = h; break; case 2: e = h, i = o, n = p; break; case 3: e = h, i = u, n = o; break; case 4: e = p, i = h, n = o; break; case 5: e = o, i = h, n = u; } return { r: Math.round(255 * e), g: Math.round(255 * i), b: Math.round(255 * n) }; } function $e(t) { return (299 * t.r + 587 * t.g + 114 * t.b) / 1e3 >= 128; } function Je(t, e) { if (!S(t)) return new qs(void 0); if ("string" == typeof t) { var i = "_color_" + t + "_" + (e || "1"), n = Fs.getCache(i); if (n) return new qs({ r: n.r, g: n.g, b: n.b, a: n.a }); var r = je(t, e); return Fs.setCache(i, r), new qs(r); } return t instanceof qs ? (S(e) && (t.alpha = e), t) : new qs(t); } function Qe(t) { return t instanceof qs; } function ti(t) { return Je(t); } function ei(t) { return S(t) && !Qe(t) ? ti(t) : t; } function ii(t) {} function ni(t, e) { return Qt(t, function (t, i) { S(i) && (e[t] = i); }), e; } function ri(t) { return /^[^#]*/.exec(t)[0]; } function si() { var t = "#"; if (/apple/i.test(navigator.vendor)) { var e = document.baseURI; if (e) { e = ri(e); var i = ri(location.href); e !== i && (t = i + t); } } return t; } function oi(t, e) { return Qt(t, function (t, i) { S(i) && !S(e[t]) && (e[t] = i); }), e; } function ai(t, e) { return Qt(t, function (t, i) { e[t] = i; }), e; } function li(t) { return S(t) && "" !== t.toString(); } function hi(t, e) { return A(t) ? t : null != t && A(t.value) && A(e) ? e * t.value : 0; } function ui(t, e, i) { var n; return A(t) ? (n = t) < 0 && (n = i ? e + n : e - n) : null != t && A(t.value) && (n = e * t.value), n; } function pi(t, e) { return t instanceof hs ? t.value : t / e; } function ci() { return window.devicePixelRatio || 1; } function di(t) { return t.replace(/\W+/g, "-").replace(/([a-z\d])([A-Z])/g, "$1-$2").toLowerCase(); } function fi(t) { var e = t.split(""); return e[0] = e[0].toUpperCase(), e.join(""); } function gi(t) { return JSON.stringify(t); } function yi(t) { return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); } function mi(t, e, i, n) { if (t.length <= e) return [t]; var r = []; if (i) for (var s = -1, o = t.replace(/([,;:!?\\\/\.\s]+)/g, ro + "$1" + ro).split(ro), a = 0; a < o.length; a++) { var l = o[a], h = l.length; if (0 !== h) { var u; if (h > e) { if (n && (l = Pi(l)), u = l.match(new RegExp(".{1," + e + "}", "g"))) { if (n) for (var p = 0; p < u.length; p++) u[p] = Pi(u[p]); r = r.concat(u); } } else -1 === s && (r.push(""), s = 0), r[s].length + h + 1 > e && "" !== r[s] && (r.push(""), s++), r[s] += l; s = r.length - 1; } } else if (u = t.match(new RegExp(".{1," + e + "}", "g"))) { if (n) for (p = 0; p < u.length; p++) u[p] = Pi(u[p]); r = u; } return 1 == r.length && i && r[0].length > e && (r = []), r; } function vi(t, e, i, n, r) { return t.length <= e ? t : ((e -= i.length) < 1 && (e = 1), (mi(t, e, n, r)[0] || "") + i); } function bi(t) { return t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""); } function xi(t) { return t.replace(/[\s\uFEFF\xA0]+$/g, ""); } function _i(t) { return t.replace(/^[\s\uFEFF\xA0]+/g, ""); } function Pi(t) { return t.split("").reverse().join(""); } function wi(t) { var e = t.trim(); return (e = t.replace(/^'(.*)'$/, "$1")) == t && (e = t.replace(/^"(.*)"$/, "$1")), e; } function Ci(t, e, i) { return void 0 === e && (e = 0), void 0 === i && (i = "0"), "string" != typeof t && (t = t.toString()), e > t.length ? Array(e - t.length + 1).join(i) + t : t; } function Oi(t) { if (void 0 === t) return to; var e = (t = (t = (t = t.toLowerCase().replace(/^\[[^\]]*\]/, "")).replace(/\[[^\]]+\]/, "")).trim()).match(/\/(date|number|duration)$/); return e ? e[1] : t === eo ? eo : t === io ? io : t === no ? no : t.match(/[#0]/) ? eo : t.match(/[ymwdhnsqaxkzgtei]/) ? io : to; } function Si(t) { return t.replace(/\/(date|number|duration)$/i, ""); } function Ii(t) { return t ? t.replace(/<[^>]*>/g, "") : t; } function Di(t) { return t ? Ii(t.replace(/[\n\r]+/g, ". ")) : t; } function ki(t) { if (p(t)) return "NaN"; if (t === 1 / 0) return "Infinity"; if (t === -1 / 0) return "-Infinity"; if (0 === t && 1 / t == -1 / 0) return "-0"; var e = t < 0; t = Math.abs(t); var i, n = I(/^([0-9]+)(?:\.([0-9]+))?(?:e[\+\-]([0-9]+))?$/.exec("" + t)), r = n[1], s = n[2] || ""; if (null == n[3]) i = "" === s ? r : r + "." + s;else { var o, a = +n[3]; i = t < 1 ? "0." + ke("0", o = a - 1) + r + s : 0 == (o = a - s.length) ? r + s : o < 0 ? r + s.slice(0, o) + "." + s.slice(o) : r + s + ke("0", o); } return e ? "-" + i : i; } function Ti(t) { if (k(t)) return new Date(t); if (A(t)) return new Date(t); var e = Number(t); return A(e) ? new Date(e) : new Date(t); } function Ai(t) { if (k(t)) return t.getTime(); if (A(t)) return t; if (T(t)) { var e = Number(t); return A(e) ? e : void 0; } } function Vi(t, e) { void 0 === e && (e = !1); var i = new Date(t.getFullYear(), 0, 1, 0, 0, 0, 0); return Math.floor((t.getTime() - i.getTime()) / 864e5) + 1; } function Fi(t, e) { void 0 === e && (e = !1); var i = Vi(t, e) - 1, n = Math.floor((i - (t.getDay() || 7) + 10) / 7); return 0 === n ? n = 53 : 53 === n && (n = 1), n; } function Mi(t, e) { void 0 === e && (e = !1); var i = Fi(new Date(t.getFullYear(), t.getMonth(), 1), e), n = Fi(t, e); return 1 == n && (n = 53), n - i + 1; } function ji(t, e, i, n) { void 0 === i && (i = 1), void 0 === n && (n = !1); var r = new Date(e, 0, 4, 0, 0, 0, 0); return n && r.setUTCFullYear(e), 7 * t + i - ((r.getDay() || 7) + 3); } function Li(t, e) { return t > 12 ? t -= 12 : 0 === t && (t = 12), S(e) ? t + (e - 1) : t; } function Ei(t, e, i, n) { if (void 0 === e && (e = !1), void 0 === i && (i = !1), void 0 === n && (n = !1), n) return e ? "Coordinated Universal Time" : "UTC"; var r = t.toLocaleString("UTC"), s = t.toLocaleString("UTC", { timeZoneName: e ? "long" : "short" }).substr(r.length); return !1 === i && (s = s.replace(/ (standard|daylight|summer|winter) /i, " ")), s; } function Ri(t, e) { return Math.floor(Math.random() * e) + t; } function Bi(t, e, i) { return t > i ? i : t < e ? e : t; } function Ni(t, e, i) { var n = i - e; return t > i ? t = e + (t - n * Math.floor(t / n)) : t < e && (t = e + (t - n * Math.floor(t / n))), t; } function Hi(t, e) { var i = t.x, n = t.y, r = []; if (e) { for (; S(e.parent);) r.push(e), e = e.parent; r.reverse(); for (var s = 0; s < r.length; s++) { var o = r[s], a = o.rotation, l = i - o.pixelX - o.ex, h = n - o.pixelY - o.ey; o.dx && (i -= o.dx), o.dy && (n -= o.dy); var u = o.scale; o.group && (u = o.group.scale), i = (H(-a) * l - B(-a) * h) / u - o.pixelPaddingLeft, n = (H(-a) * h + B(-a) * l) / u - o.pixelPaddingTop; } } return { x: i, y: n }; } function Wi(t, e) { var i = t.x, n = t.y; if (e) for (; S(e.parent);) { var r = e.rotation; i += e.pixelPaddingLeft + e.ex, n += e.pixelPaddingTop + e.ey, e.dx && (i += e.dx), e.dy && (n += e.dy); var s = e.scale; e.group && (s = e.group.scale); var o = e.pixelX + (i * H(r) - n * B(r)) * s, a = e.pixelY + (i * B(r) + n * H(r)) * s; i = o, n = a, e = e.parent; } return { x: i, y: n }; } function Xi(t, e, i) { return Hi(Wi(t, e), i); } function Yi(t, e) { var i = Hi(t, e), n = Hi({ x: t.x + t.width, y: t.y + t.height }, e); return { x: i.x, y: i.y, width: n.x - i.x, height: n.y - i.y }; } function zi(t, e) { var i = Wi(t, e), n = Wi({ x: t.x + t.width, y: t.y + t.height }, e); return { x: i.x, y: i.y, width: n.x - i.x, height: n.y - i.y }; } function Ui(t, e, i) { try { var n = e.getBoundingClientRect(); return A(i) || (i = 1), { x: (t.x - n.left) / i, y: (t.y - n.top) / i }; } catch (e) { return t; } } function Gi(t, e) { try { var i = e.getBoundingClientRect(); return { x: t.x + i.left, y: t.y + i.top }; } catch (e) { return t; } } function Ki(t, e) { return e && e.htmlContainer ? Hi(Ui(t, I(e.htmlContainer), e.svgContainer.cssScale), e) : t; } function Zi(t, e) { return e && e.htmlContainer ? Gi(Wi(t, e), I(e.htmlContainer)) : t; } function qi(t) { var e = getComputedStyle(t), i = parseFloat(e.paddingLeft) + parseFloat(e.paddingRight), n = parseFloat(e.borderLeftWidth) + parseFloat(e.borderRightWidth); return t.clientWidth - i - n; } function $i(t) { var e = getComputedStyle(t), i = parseFloat(e.paddingTop) + parseFloat(e.paddingBottom), n = parseFloat(e.borderTopWidth) + parseFloat(e.borderBottomWidth); return t.clientHeight - i - n; } function Ji(t) { var e = ("" + t).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); return e ? Math.max(0, (e[1] ? e[1].length : 0) - (e[2] ? +e[2] : 0)) : 0; } function Qi(t) { var e = oo.exec(t); return { protocol: e && e[1] || "", separator: e && e[2] || "", authority: e && e[3] || "", domain: e && e[4] || "", port: e && e[5] || "", path: e && e[6] || "", query: e && e[7] || "", hash: e && e[8] || "" }; } function tn(t) { return t.protocol + t.separator + t.authority + t.domain + t.port + t.path + t.query + t.hash; } function en(t) { return "" === t.protocol && "" === t.separator && "" === t.authority && "" === t.domain && "" === t.port; } function nn(t, e) { var i = Qi(t), n = Qi(e); if (en(i)) throw new Error("Left URL is not absolute"); if (en(n)) { if ("" !== n.path) if ("/" === n.path[0]) i.path = n.path;else { var r = i.path.split(/\//), s = n.path.split(/\//); if (0 === r.length ? 0 !== s.length && r.push("") : r.length > 1 && r.pop(), Ot(r, s), i.path = r.join("/"), "" !== i.path && "/" !== i.path[0]) throw new Error("URL path must start with /"); } return i.query = n.query, i.hash = n.hash, tn(i); } return tn(n); } function rn() { return !!window.MSInputMethodContext && !!document.documentMode; } function sn(t) { return +t; } function on(t) { return t * t; } function an(t) { return t * (2 - t); } function ln(t) { return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2; } function hn(t, e) { return Math.pow(t, e); } function un(t, e) { return 1 - Math.pow(1 - t, e); } function pn(t, e) { return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2; } function cn(t) { return hn(t, 3); } function dn(t) { return un(t, 3); } function fn(t) { return pn(t, 3); } function gn(t) { return Math.pow(2, 10 * t - 10); } function yn(t) { return 1 - Math.pow(2, -10 * t); } function mn(t) { return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2; } function vn(t) { return 1 - Math.cos(t * ps); } function bn(t) { return Math.sin(t * ps); } function xn(t) { return (1 - Math.cos(us * t)) / 2; } function _n(t) { return t * t * t; } function Pn(t) { return --t * t * t + 1; } function wn(t) { return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; } function Cn(t) { return 1 - Math.sqrt(1 - t * t); } function On(t) { return Math.sqrt(1 - --t * t); } function Sn(t) { return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2; } function In(t) { return 1 - Dn(1 - t); } function Dn(t) { return (t = +t) < ao ? mo * t * t : t < ho ? mo * (t -= lo) * t + uo : t < co ? mo * (t -= po) * t + fo : mo * (t -= go) * t + yo; } function kn(t) { return ((t *= 2) <= 1 ? 1 - Dn(1 - t) : Dn(t - 1) + 1) / 2; } function Tn(t) { return bo * Math.pow(2, 10 * --t) * Math.sin((_o - t) / xo); } function An(t) { return 1 - bo * Math.pow(2, -10 * (t = +t)) * Math.sin((t + _o) / xo); } function Vn(t) { return ((t = 2 * t - 1) < 0 ? bo * Math.pow(2, 10 * t) * Math.sin((_o - t) / xo) : 2 - bo * Math.pow(2, -10 * t) * Math.sin((_o + t) / xo)) / 2; } function Fn(t, e) { var i = !1, n = Date.now(); return Wt(function r(s) { if (!i) { var o = s - n; o >= t ? e(1) : (Wt(r), e(o / t)); } }), new fs(function () { i = !0; }); } function Mn(t, e, i) { return e + (i - e) * t; } function jn(t, e, i) { return new hs(Mn(t, e.percent, i.percent)); } function Ln(t, e, i) { return new qs(He(e.rgb, i.rgb, t)); } function En(t, e) { return e + t.charAt(0).toUpperCase() + t.substr(1); } function Rn(t, e, i, n) { return t.addEventListener(e, i, n || !1), new fs(function () { t.removeEventListener(e, i, n || !1); }); } function Bn(t) { if (T(t)) { var e = document.getElementById(t); if (null == e && (e = document.getElementsByClassName(t)[0]), e instanceof HTMLElement) return e; } else if (t instanceof HTMLElement) return t; } function Nn(t, e) { if (t) if (t.classList) t.classList.add(e);else { var i = t.getAttribute("class"); i ? t.setAttribute("class", i.split(" ").filter(function (t) { return t !== e; }).join(" ") + " " + e) : t.setAttribute("class", e); } } function Hn(t, e) { if (t) if (t.classList) t.classList.remove(e);else { var i = t.getAttribute("class"); i && t.setAttribute("class", i.split(" ").filter(function (t) { return t !== e; }).join(" ")); } } function Wn(t, e, i) { t.style[e] = i; } function Xn(t, e) { return t.currentStyle ? t.currentStyle[e] : document.defaultView.getComputedStyle(t, null).getPropertyValue(e); } function Yn() { var t = document.createElement("input"); t.style.position = "fixed", t.style.top = "0px", t.style.left = "-10000px", document.body.appendChild(t), t.focus(), t.blur(), document.body.removeChild(t); } function zn(t) { if (t instanceof HTMLElement) t.focus();else { var e = document.createElement("input"), i = document.createElementNS(Do, "foreignObject"); i.appendChild(e), t.appendChild(i), e.focus(), e.disabled = !0, i.remove(); } } function Un(t) { if (t.outerHTML) return t.outerHTML; var e = document.createElement("div"), i = t.cloneNode(!0); return e.appendChild(i), e.innerHTML; } function Gn(t) { return t instanceof Object && t && 1 === t.nodeType; } function Kn(t, e) { for (var i = e;;) { if (t === i) return !0; if (null == i.parentNode) { if (null == i.host) return !1; i = i.host; } else i = i.parentNode; } } function Zn(t) { for (var e = t.ownerDocument, i = t;;) { if (null == i.parentNode) return i === e || null != i.host ? i : null; i = i.parentNode; } } function qn(t, e) { mt(t.attributes, function (t) { null != t.value && e.setAttribute(t.name, t.value); }); } function $n(t) { Xt(function () { try { var e = t.getBoundingClientRect(), i = e.left - Math.round(e.left), n = e.top - Math.round(e.top); 0 !== i && Yt(function () { t.style.left = i + "px"; }), 0 !== n && Yt(function () { t.style.top = n + "px"; }); } catch (t) {} }); } function Jn() { if (!S(wo)) { var t = document.createElement("style"); t.type = "text/css", document.head.appendChild(t), wo = t.sheet; } return wo; } function Qn(t) { if ("loading" !== document.readyState) t();else { var e = function e() { "loading" !== document.readyState && (document.removeEventListener("readystatechange", e), t()); }; document.addEventListener("readystatechange", e); } } function tr(t) { var e = Xn(t, "font-family"); if (e) return e; var i = t.parentElement || t.parentNode; return i ? tr(i) : void 0; } function er(t) { var e = Xn(t, "font-size"); if (e) return e; var i = t.parentElement || t.parentNode; return i ? er(i) : void 0; } function ir(t) { var e = t.getBoundingClientRect(); return e.top >= 0 && e.left >= 0 && e.top <= (window.innerHeight || document.documentElement.clientHeight) && e.left <= (window.innerWidth || document.documentElement.clientWidth); } function nr(t) { switch (t) { case "year": return; case "month": return "year"; case "week": case "day": return "month"; case "hour": return "day"; case "minute": return "hour"; case "second": return "minute"; case "millisecond": return "second"; } } function rr(t, e) { return S(e) || (e = 1), Xo[t] * e; } function sr() { return new Date(); } function or() { return sr().getTime(); } function ar(t) { return new Date(t.getTime()); } function lr(t, e, i, n) { t = new Date(t.getTime()), e = new Date(e.getTime()); var r = 0, s = 0; n || "millisecond" == i || (r = t.getTimezoneOffset(), t.setUTCMinutes(t.getUTCMinutes() - r), s = e.getTimezoneOffset(), e.setUTCMinutes(e.getUTCMinutes() - s)); var o = !1; switch (i) { case "year": t.getUTCFullYear() != e.getUTCFullYear() && (o = !0); break; case "month": t.getUTCFullYear() != e.getUTCFullYear() ? o = !0 : t.getUTCMonth() != e.getUTCMonth() && (o = !0); break; case "day": t.getUTCMonth() != e.getUTCMonth() ? o = !0 : t.getUTCDate() != e.getUTCDate() && (o = !0); break; case "hour": t.getUTCHours() != e.getUTCHours() && (o = !0); break; case "minute": t.getUTCMinutes() != e.getUTCMinutes() && (o = !0); break; case "second": t.getUTCSeconds() != e.getUTCSeconds() && (o = !0); break; case "millisecond": t.getTime() != e.getTime() && (o = !0); } if (o) return !0; var a = nr(i); return !!a && (t.setUTCMinutes(t.getUTCMinutes() + r), e.setUTCMinutes(e.getUTCMinutes() + s), lr(t, e, a, n)); } function hr(t, e, i, n) { var r = 0; switch (n || "millisecond" == e || (r = t.getTimezoneOffset(), t.setUTCMinutes(t.getUTCMinutes() - r)), e) { case "day": var s = t.getUTCDate(); t.setUTCDate(s + i); break; case "second": var o = t.getUTCSeconds(); t.setUTCSeconds(o + i); break; case "millisecond": var a = t.getUTCMilliseconds(); t.setUTCMilliseconds(a + i); break; case "hour": var l = t.getUTCHours(); t.setUTCHours(l + i); break; case "minute": var h = t.getUTCMinutes(); t.setUTCMinutes(h + i); break; case "year": var u = t.getUTCFullYear(); t.setUTCFullYear(u + i); break; case "month": var p = t.getUTCMonth(); t.setUTCMonth(p + i); break; case "week": var c = t.getUTCDate(); t.setUTCDate(c + 7 * i); } if (!n && "millisecond" != e && (t.setUTCMinutes(t.getUTCMinutes() + r), "day" == e || "week" == e || "month" == e || "year" == e)) { var d = t.getTimezoneOffset(); if (d != r) { var f = d - r; t.setUTCMinutes(t.getUTCMinutes() + f), t.getTimezoneOffset() != d && t.setUTCMinutes(t.getUTCMinutes() - f); } } return t; } function ur(t, e, i, n, r, s) { A(i) || (i = 1); var o = 0; switch (r || "millisecond" == e || (o = t.getTimezoneOffset(), t.setUTCMinutes(t.getUTCMinutes() - o)), e) { case "day": var a = t.getUTCDate(); if (i > 1) { if (s) { s = ur(s, "day", 1); var l = t.getTime() - s.getTime(), h = Math.floor(l / rr("day") / i), u = rr("day", h * i); t.setTime(s.getTime() + u - o * rr("minute")); } } else t.setUTCDate(a); t.setUTCHours(0, 0, 0, 0); break; case "second": var p = t.getUTCSeconds(); i > 1 && (p = Math.floor(p / i) * i), t.setUTCSeconds(p, 0); break; case "millisecond": if (1 == i) return t; var c = t.getUTCMilliseconds(); c = Math.floor(c / i) * i, t.setUTCMilliseconds(c); break; case "hour": var d = t.getUTCHours(); i > 1 && (d = Math.floor(d / i) * i), t.setUTCHours(d, 0, 0, 0); break; case "minute": var f = t.getUTCMinutes(); c = t.getUTCMilliseconds(), i > 1 && (f = Math.floor(f / i) * i), t.setUTCMinutes(f, 0, 0); break; case "month": var g = t.getUTCMonth(); i > 1 && (g = Math.floor(g / i) * i), t.setUTCMonth(g, 1), t.setUTCHours(0, 0, 0, 0); break; case "year": var y = t.getUTCFullYear(); i > 1 && (y = Math.floor(y / i) * i), t.setUTCFullYear(y, 0, 1), t.setUTCHours(0, 0, 0, 0); break; case "week": var m = t.getUTCDate(), v = t.getUTCDay(); A(n) || (n = 1), m = v >= n ? m - v + n : m - (7 + v) + n, t.setUTCDate(m), t.setUTCHours(0, 0, 0, 0); } if (!r && "millisecond" != e && (t.setUTCMinutes(t.getUTCMinutes() + o), "day" == e || "week" == e || "month" == e || "year" == e)) { var b = t.getTimezoneOffset(); if (b != o) { var x = b - o; t.setUTCMinutes(t.getUTCMinutes() + x); } } return t; } function pr() { return null == zo && (zo = new Yo()), zo; } function cr() { if (null === Qo) { var t = document.createElement("div"); t.hidden = !0, document.body.appendChild(t); var e = new $o(t, !0); Qo = new Jo(e.SVGContainer, "ghost"); } return Qo; } function dr() { return null == ra && (ra = new la()), ra; } function fr(t, e, i) { return new Promise(function (n, r) { var s = S(i) && "blob" == i.responseType, o = new XMLHttpRequest(); if (o.onload = function () { if (200 === o.status) { var t, i = void 0; if (s) return t = o.response, void (l = t, new Promise(function (t, e) { var i = new FileReader(); i.onload = function (e) { t(i.result); }, i.onerror = function (t) { e(t); }, i.readAsText(l); })).then(function (i) { var r = { xhr: o, error: !1, response: i, blob: t, type: o.getResponseHeader("Content-Type"), target: e }; n(r); }); i = o.responseText || o.response; var a = { xhr: o, error: !1, response: i, blob: t, type: o.getResponseHeader("Content-Type"), target: e }; n(a); } else r({ xhr: o, error: !0, type: o.getResponseHeader("Content-Type"), target: e }); var l; }, o.onerror = function () { r({ xhr: o, error: !0, type: o.getResponseHeader("Content-Type"), target: e }); }, o.open("GET", t, !0), i && i.withCredentials && (o.withCredentials = !0), S(i)) { if (S(i.requestHeaders)) for (var a = 0; a < i.requestHeaders.length; a++) { var l = i.requestHeaders[a]; o.setRequestHeader(l.key, l.value); } S(i.responseType) && (o.responseType = i.responseType); } o.send(); }); } function gr(t) { return r(this, void 0, void 0, function () { var e; return s(this, function (i) { switch (i.label) { case 0: e = t.sheet, i.label = 1; case 1: return i.trys.push([1, 2,, 4]), [2, e.cssRules]; case 2: return i.sent(), [4, new Promise(function (i, n) { t.addEventListener("load", function () { i(e.cssRules); }, !0), t.addEventListener("error", function (t) { n(t); }, !0), setTimeout(function () { n(new Error("Timeout while waiting for <style> to load")); }, 1e4); })]; case 3: return [2, i.sent()]; case 4: return [2]; } }); }); } function yr(t, e, i) { return r(this, void 0, void 0, function () { var n, r, o; return s(this, function (s) { switch (s.label) { case 0: return [4, fr(e)]; case 1: n = s.sent(), (r = t.createElement("style")).textContent = n.response, t.head.appendChild(r), s.label = 2; case 2: return s.trys.push([2,, 5, 6]), [4, gr(r)]; case 3: return o = s.sent(), [4, mr(t, e, o, i)]; case 4: return s.sent(), [3, 6]; case 5: return t.head.removeChild(r), [7]; case 6: return [2]; } }); }); } function mr(t, e, i, n) { return r(this, void 0, void 0, function () { var r, o, a, l, h; return s(this, function (s) { switch (s.label) { case 0: for (r = [], o = i.length, a = 0; a < o; a++) (l = i[a]).type === CSSRule.IMPORT_RULE ? (h = l.href) && (h = nn(e, h), r.push(yr(t, h, n))) : n(e, l); return r.length ? [4, Promise.all(r)] : [3, 2]; case 1: s.sent(), s.label = 2; case 2: return [2]; } }); }); } function vr(t) { return r(this, void 0, void 0, function () { var e, i; return s(this, function (n) { switch (n.label) { case 0: (e = document.createElement("iframe")).src = "about:blank", e.setAttribute("title", ""), document.head.appendChild(e), n.label = 1; case 1: return n.trys.push([1,, 3, 4]), i = e.contentDocument, [4, Promise.all(yt(document.styleSheets, function (e) { var n = e.href; return null == n ? mr(i, location.href, e.cssRules, t) : (n = nn(location.href, n), yr(i, n, t)); }))]; case 2: return n.sent(), [3, 4]; case 3: return document.head.removeChild(e), [7]; case 4: return [2]; } }); }); } function br(t) { var e = _r(t[0]), i = { x: 0, y: 0 }, n = Ms.minPolylineStep; A(n) || (n = .5); for (var r = 0, s = t.length; r < s; r++) { var o = t[r]; K(o, i) > n && (e += _r(o), i = o); } return e; } function xr(t) { return " M" + j(t.x, 4) + "," + j(t.y, 4) + " "; } function _r(t) { return " L" + j(t.x, 4) + "," + j(t.y, 4) + " "; } function Pr(t, e) { return " Q" + j(e.x, 4) + "," + j(e.y, 4) + " " + j(t.x, 4) + "," + j(t.y, 4); } function wr(t, e, i) { return " C" + j(e.x, 4) + "," + j(e.y, 4) + " " + j(i.x, 4) + "," + j(i.y, 4) + " " + j(t.x, 4) + "," + j(t.y, 4); } function Cr() { return " Z"; } function Or(t, e, i, n) { if (0 == e) return ""; A(n) || (n = i); var r = "", s = ",", o = Math.ceil(Math.abs(e) / 180), a = 1; e < 0 && (a = 0); var l = 0, h = 0, u = -H(t) * i, p = -B(t) * n; if (e < .5 && i > 3e3) return _r({ x: f = j(H(d = t + e) * i, 4), y: g = j(B(d) * n, 4) }); for (var c = 0; c < o; c++) { var d, f, g; r += " a" + i + s + n + s + 0 + s + 0 + s + a + s + (f = j(H(d = t + e / o * (c + 1)) * i + u - l, 4)) + s + (g = j(B(d) * n + p - h, 4)), l = f, h = g; } return r; } function Sr(t, e, i, n, r, s, o) { if (0 == e) return ""; if (A(n) || (n = 0), 0 == i && n <= 0) return ""; if (i < n) { var a = i; i = n, n = a, A(r) && (r = r / n * i); } 360 == (e = X(e, 360)) && (s = 0, o = 0); var l = t + e, h = B(X(e, 45) / 2), u = (r = A(r) ? r : i) / i * n, p = r / i * (s = s || 0), c = r / i * (o = A(o) ? o : s); s = R(s, 0, (i - n) / 2), p = R(p, 0, (r - u) / 2), o = R(o, 0, (i - n) / 2), c = R(c, 0, (r - u) / 2), s = j(R(s, 0, i * h), 4), p = j(R(p, 0, r * h), 4), o = j(R(o, 0, n * h), 4), c = j(R(c, 0, u * h), 4); var d = Math.asin(s / i / 2) * ds * 2, f = Math.asin(p / r / 2) * ds * 2; n < o && (n = o), u < c && (u = c); var g = Math.asin(o / n / 2) * ds * 2, y = Math.asin(c / u / 2) * ds * 2; A(g) || (g = 0), A(y) || (y = 0); var m = t + e / 2, v = { x: j(H(m) * n, 4), y: B(m) * u }, b = { x: H(t) * (n + o), y: B(t) * (u + c) }, x = { x: H(t) * (i - s), y: B(t) * (r - p) }, _ = { x: H(l) * (i - s), y: B(l) * (r - p) }, P = { x: H(l) * (n + o), y: B(l) * (u + c) }, w = { x: H(t + d) * i, y: B(t + f) * r }, C = { x: H(l - g) * n, y: B(l - y) * u }; o += o * B(g / 2), c += c * B(y / 2), g > (l - t) / 2 && (C = v); var O = ""; return 360 == e ? O = xr(x) : (O = xr(b), O += _r(x), O += Ir(w, s, p, !0)), O += Or(t + d, e - 2 * d, i, r), A(n) && 0 != n ? (360 == e && 0 == s ? O += xr(P) : (O += Ir(_, s, p, !0), O += _r(P), O += Ir(C, o, c, !0)), O += Or(l - g, -(e - 2 * g), n, u), (e < 360 || s > 0) && (O += Ir(b, o, c, !0)), O += _r(b)) : (O += Ir(_, s, p, !0), e < 360 && (O += _r(b))), O; } function Ir(t, e, i, n, r, s) { if (0 == e) return ""; var o = ","; return " A" + e + o + i + o + (s = s || 0) + o + +(r = Boolean(r)) + o + +(n = Boolean(n)) + o + j(t.x, 4) + o + j(t.y, 4); } function Dr(t, e, i, n) { return A(i) || (i = 0), A(n) || (n = 0), xr({ x: i, y: n }) + _r({ x: i + t, y: n }) + _r({ x: i + t, y: n + e }) + _r({ x: i, y: n + e }) + " Z"; } function kr(t, e) { var i = ",", n = " L"; return e ? "M" + t.x + i + t.y + n + t.x + i + (t.y + t.height) + n + (t.x + t.width) + i + (t.y + t.height) + n + (t.x + t.width) + i + t.y + n + t.x + i + t.y : "M" + t.x + i + t.y + n + (t.x + t.width) + i + t.y + n + (t.x + t.width) + i + (t.y + t.height) + n + t.x + i + (t.y + t.height) + n + t.x + i + t.y; } function Tr(t, e) { var i = cr().add("path").node; if (i.setAttribute("d", t), i.getPointAtLength && i.getTotalLength) { for (var n = i.getTotalLength(), r = [], s = 0; s < e; s++) { var o = i.getPointAtLength(s / e * n); r.push({ x: o.x, y: o.y }); } return r; } i.remove(); } function Ar(t, e, i, n, r, s, o, a, l) { A(a) || (a = 0), A(a) || (l = a); for (var h = r + .01, u = a * cs, p = []; h < i + o;) { var c = s; if (c / 2 > h && (c = 2 * h), (u += 2 * Math.asin(c / 2 / h)) * ds > l + (i - r) / o * 360) break; var d = u * ds, f = { x: t + h * Math.cos(u), y: e + h * n / i * Math.sin(u) }; p.push(f), h = r + d / 360 * o; } return p.shift(), p; } function Vr(t) { if (!t || 0 == t.length) return ""; var e = xr(t[0]); if (t && t.length > 0) for (var i = 1; i < t.length; i++) e += _r(t[i]); return e; } function Fr(t, e, i, n, r, s) { var o = t.x, a = t.y, l = e.x, h = e.y, u = K(t, e); s && (i = u / Math.round(u / i)); var p = Fs.getCache(gi(["wavedLine", t.x, e.x, t.y, e.y, i, n])); if (!p) { if (u > 0) { var c = Math.atan2(h - a, l - o), d = Math.cos(c), f = Math.sin(c), g = i * d, y = i * f; if (i <= 1 || n <= 1) p = _r(e);else { var m = Math.round(2 * u / i), v = [], b = 1; l < o && (b *= -1), h < a && (b *= -1); for (var x = 0; x <= m; x++) { var _ = o + x * g / 2 + (b *= -1) * n / 2 * f, P = a + x * y / 2 - b * n / 2 * d; v.push({ x: _, y: P }); } p = new sl(r, r).smooth(v); } } else p = ""; Fs.setCache(gi(["wavedLine", t.x, e.x, t.y, e.y, i, n]), p); } return p; } function Mr(t, e) { var i = Bn(t); if (i) { i.innerHTML = ""; var n = new $o(i), r = new Jo(n.SVGContainer, "svg-" + (qo.length - 1)), s = new _a(); s.htmlContainer = i, s.svgContainer = n, s.width = h(100), s.height = h(100), s.background.fillOpacity = 0, s.paper = r, r.append(s.group), s.relativeWidth = 1, s.relativeHeight = 1, n.container = s; var o = s.createChild(e); o.topParent = s; var a = o.uid; Fs.invalidSprites[a] = [], Fs.invalidDatas[a] = [], Fs.invalidPositions[a] = [], Fs.invalidLayouts[a] = [], s.baseId = a, o.isBaseSprite = !0, o.focusFilter = new Ol(), Fs.baseSprites.push(o), Fs.baseSpritesByUid[a] = o, o.maskRectangle = { x: 0, y: 0, width: n.width, height: n.height }, s.events.on("maxsizechanged", function (t) { 0 != t.previousWidth && 0 != t.previousHeight || s.deepInvalidate(), o.maskRectangle && (o.maskRectangle = { x: 0, y: 0, width: n.width, height: n.height }); }); var u = null, p = function p() { o.isDisposed() ? u = null : null == Zn(o.dom) ? (function () { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; console && console.warn.apply(console, l(t)); }("Chart was not disposed", o.uid), u = null) : u = setTimeout(p, 1e3); }; p(), o.addDisposer(new fs(function () { null !== u && clearTimeout(u), St(Fs.baseSprites, o), Fs.baseSpritesByUid[o.uid] = void 0; })), o.addDisposer(s); var c = s.createChild(_a); c.topParent = s, c.width = h(100), c.height = h(100), c.isMeasured = !1, s.tooltipContainer = c, o.tooltip = new il(), o.tooltip.hide(0), o.tooltip.setBounds({ x: 0, y: 0, width: c.maxWidth, height: c.maxHeight }), c.events.on("maxsizechanged", function () { I(o.tooltip).setBounds({ x: 0, y: 0, width: c.maxWidth, height: c.maxHeight }); }, void 0, !1); var d = new Za(); if (d.events.on("inited", function () { d.__disabled = !0; }, void 0, !1), s.preloader = d, o instanceof _a && !o.hasLicense()) { var f = c.createChild(Dl); c.events.on("maxsizechanged", function (t) { c.maxWidth <= 100 || c.maxHeight <= 50 ? f.hide() : (f.isHidden || f.isHiding) && f.show(); }, void 0, !1), o.logo = f, f.align = "left", f.valign = "bottom"; } if (o.numberFormatter, s.isStandaloneInstance = !0, Ms.onlyShowOnViewport) { if (ir(i)) Ms.queue && Lr(o);else { o.__disabled = !0, o.tooltipContainer.__disabled = !0; var g = new gs([Rn(window, "DOMContentLoaded", function () { Rr(o); }), Rn(window, "load", function () { Rr(o); }), Rn(window, "resize", function () { Rr(o); }), Rn(window, "scroll", function () { Rr(o); })]); o.addDisposer(g), o.vpDisposer = g; } } else Ms.queue && Lr(o); return o; } throw Ls.log("html container not found"), new Error("html container not found"); } function jr() { for (; 0 !== Fs.baseSprites.length;) Fs.baseSprites.pop().dispose(); } function Lr(t) { -1 == Fs.queue.indexOf(t) && (t.__disabled = !0, t.tooltipContainer.__disabled = !0, t.events.disableType("appeared"), 0 == Fs.queue.length && Br(t), t.addDisposer(new fs(function () { Er(t); })), Fs.queue.push(t)); } function Er(t) { var e = Fs.queue.indexOf(t); if (e >= 0) { Fs.queue.splice(Fs.queue.indexOf(t), 1); var i = Fs.queue[e]; i && Br(i); } } function Rr(t) { t.__disabled && ir(t.htmlContainer) && (t.vpDisposer && t.vpDisposer.dispose(), Lr(t)); } function Br(t) { t.__disabled = !1, t.tooltipContainer.__disabled = !1, t.events.enableType("appeared"), t.showOnInit && t.events.on("appeared", function () { Er(t); }), t.vpDisposer && t.vpDisposer.dispose(), t instanceof Fa ? (t.invalidateData(), t.reinit(), t.events.once("datavalidated", function () { t.showOnInit ? t.appear() : Er(t); })) : t.showOnInit ? t.appear() : Er(t); } function Nr(t, e) { var i; T(e) && (S(Fs.registeredClasses[e]) ? e = Fs.registeredClasses[e] : (e = Fs.registeredClasses.Container, i = new Error("Class [" + e + "] is not loaded."))); var n = Mr(t, e); return i && n.raiseCriticalError(i), n; } function Hr(t, e, i) { var n, r; S(i) || (i = t.type, delete t.type), S(e) || (e = t.container, delete t.container), T(i) && S(Fs.registeredClasses[i]) ? n = Fs.registeredClasses[i] : "function" != typeof i ? (n = _a, r = new Error("Class [" + i + "] is not loaded.")) : n = i; var s = Mr(e, n); return r ? s.raiseCriticalError(r) : s.config = t, s; } function Wr(t) { -1 === Fs.themes.indexOf(t) && Fs.themes.push(t); } function Xr(t) { St(Fs.themes, t); } function Yr() { Fs.themes = []; } function zr(t) { Ms.licenses.push(t); } function Ur(t, e) { var i = Fs.registeredClasses[e]; return null != i && t instanceof i; } i.r(e); var Gr = {}; i.r(Gr), i.d(Gr, "isNaN", function () { return p; }), i.d(Gr, "getType", function () { return c; }), i.d(Gr, "getDefault", function () { return d; }), i.d(Gr, "checkString", function () { return f; }), i.d(Gr, "checkBoolean", function () { return g; }), i.d(Gr, "checkNumber", function () { return y; }), i.d(Gr, "checkObject", function () { return m; }), i.d(Gr, "checkArray", function () { return v; }), i.d(Gr, "checkDate", function () { return b; }), i.d(Gr, "castString", function () { return x; }), i.d(Gr, "castNumber", function () { return _; }), i.d(Gr, "toBoolean", function () { return P; }), i.d(Gr, "toNumber", function () { return w; }), i.d(Gr, "toText", function () { return C; }), i.d(Gr, "toNumberOrPercent", function () { return O; }), i.d(Gr, "hasValue", function () { return S; }), i.d(Gr, "getValue", function () { return I; }), i.d(Gr, "getValueDefault", function () { return D; }), i.d(Gr, "isDate", function () { return k; }), i.d(Gr, "isString", function () { return T; }), i.d(Gr, "isNumber", function () { return A; }), i.d(Gr, "isObject", function () { return V; }), i.d(Gr, "isArray", function () { return F; }); var Kr = {}; i.r(Kr), i.d(Kr, "PI", function () { return us; }), i.d(Kr, "HALFPI", function () { return ps; }), i.d(Kr, "RADIANS", function () { return cs; }), i.d(Kr, "DEGREES", function () { return ds; }), i.d(Kr, "toNumberRange", function () { return M; }), i.d(Kr, "round", function () { return j; }), i.d(Kr, "ceil", function () { return L; }), i.d(Kr, "stretch", function () { return E; }), i.d(Kr, "fitToRange", function () { return R; }), i.d(Kr, "sin", function () { return B; }), i.d(Kr, "tan", function () { return N; }), i.d(Kr, "cos", function () { return H; }), i.d(Kr, "max", function () { return W; }), i.d(Kr, "min", function () { return X; }), i.d(Kr, "closest", function () { return Y; }), i.d(Kr, "intersect", function () { return z; }), i.d(Kr, "invertRange", function () { return U; }), i.d(Kr, "intersection", function () { return G; }), i.d(Kr, "getDistance", function () { return K; }), i.d(Kr, "getCubicCurveDistance", function () { return Z; }), i.d(Kr, "getScale", function () { return q; }), i.d(Kr, "getMidPoint", function () { return $; }), i.d(Kr, "getRotation", function () { return J; }), i.d(Kr, "getAngle", function () { return Q; }), i.d(Kr, "getCenterShift", function () { return tt; }), i.d(Kr, "getBBox", function () { return et; }), i.d(Kr, "getCommonRectangle", function () { return it; }), i.d(Kr, "getPointOnQuadraticCurve", function () { return nt; }), i.d(Kr, "getPointOnCubicCurve", function () { return rt; }), i.d(Kr, "getCubicControlPointA", function () { return st; }), i.d(Kr, "getCubicControlPointB", function () { return ot; }), i.d(Kr, "adjustTension", function () { return at; }), i.d(Kr, "normalizeAngle", function () { return lt; }), i.d(Kr, "fitAngleToRange", function () { return ht; }), i.d(Kr, "getArcRect", function () { return ut; }), i.d(Kr, "getArcPoint", function () { return pt; }), i.d(Kr, "isInRectangle", function () { return ct; }), i.d(Kr, "getLineIntersection", function () { return dt; }); var Zr = {}; i.r(Zr), i.d(Zr, "indexOf", function () { return ft; }), i.d(Zr, "any", function () { return gt; }), i.d(Zr, "map", function () { return yt; }), i.d(Zr, "each", function () { return mt; }), i.d(Zr, "eachReverse", function () { return vt; }), i.d(Zr, "eachContinue", function () { return bt; }), i.d(Zr, "shiftLeft", function () { return xt; }), i.d(Zr, "last", function () { return _t; }), i.d(Zr, "first", function () { return Pt; }), i.d(Zr, "insert", function () { return wt; }), i.d(Zr, "setIndex", function () { return Ct; }), i.d(Zr, "pushAll", function () { return Ot; }), i.d(Zr, "remove", function () { return St; }), i.d(Zr, "move", function () { return It; }), i.d(Zr, "add", function () { return Dt; }), i.d(Zr, "replace", function () { return kt; }), i.d(Zr, "toArray", function () { return Tt; }), i.d(Zr, "has", function () { return At; }), i.d(Zr, "copy", function () { return Vt; }), i.d(Zr, "slice", function () { return Ft; }), i.d(Zr, "insertIndex", function () { return Mt; }), i.d(Zr, "removeIndex", function () { return jt; }), i.d(Zr, "getSortedIndex", function () { return Lt; }), i.d(Zr, "findIndex", function () { return Et; }), i.d(Zr, "find", function () { return Rt; }), i.d(Zr, "shuffle", function () { return Bt; }); var qr = {}; i.r(qr), i.d(qr, "entries", function () { return Gt; }), i.d(qr, "keys", function () { return Kt; }), i.d(qr, "keysOrdered", function () { return Zt; }), i.d(qr, "hasKey", function () { return qt; }), i.d(qr, "getKey", function () { return $t; }), i.d(qr, "eachContinue", function () { return Jt; }), i.d(qr, "each", function () { return Qt; }), i.d(qr, "eachOrdered", function () { return te; }), i.d(qr, "copy", function () { return ee; }), i.d(qr, "merge", function () { return ie; }), i.d(qr, "copyProperties", function () { return ne; }), i.d(qr, "softCopyProperties", function () { return re; }), i.d(qr, "forceCopyProperties", function () { return se; }), i.d(qr, "copyAllProperties", function () { return oe; }); var $r = {}; i.r($r), i.d($r, "fromArray", function () { return ae; }), i.d($r, "length", function () { return le; }), i.d($r, "toArray", function () { return he; }), i.d($r, "eachContinue", function () { return ue; }), i.d($r, "each", function () { return pe; }), i.d($r, "sort", function () { return ce; }), i.d($r, "map", function () { return de; }), i.d($r, "filter", function () { return fe; }), i.d($r, "concat", function () { return ge; }), i.d($r, "flatten", function () { return ye; }), i.d($r, "indexed", function () { return me; }), i.d($r, "findIndex", function () { return ve; }), i.d($r, "find", function () { return be; }), i.d($r, "findMap", function () { return xe; }), i.d($r, "contains", function () { return _e; }), i.d($r, "foldl", function () { return Pe; }), i.d($r, "min", function () { return Ce; }), i.d($r, "max", function () { return Se; }), i.d($r, "join", function () { return Ie; }), i.d($r, "ListIterator", function () { return Ss; }); var Jr = {}; i.r(Jr), i.d(Jr, "order", function () { return De; }), i.d(Jr, "repeat", function () { return ke; }), i.d(Jr, "random", function () { return Te; }); var Qr = {}; i.r(Qr), i.d(Qr, "order", function () { return Ve; }); var ts = {}; i.r(ts), i.d(ts, "rgb", function () { return je; }), i.d(ts, "hexToRgb", function () { return Le; }), i.d(ts, "rgbaToRgb", function () { return Ee; }), i.d(ts, "rgbToHex", function () { return Re; }), i.d(ts, "rgbToRGBA", function () { return Be; }), i.d(ts, "pad2", function () { return Ne; }), i.d(ts, "interpolate", function () { return He; }), i.d(ts, "lighten", function () { return We; }), i.d(ts, "getLightnessStep", function () { return Xe; }), i.d(ts, "brighten", function () { return Ye; }), i.d(ts, "getBrightnessStep", function () { return ze; }), i.d(ts, "saturate", function () { return Ue; }), i.d(ts, "hslToRgb", function () { return Ge; }), i.d(ts, "rgbToHsl", function () { return Ke; }), i.d(ts, "rgbToHsv", function () { return Ze; }), i.d(ts, "hsvToRgb", function () { return qe; }), i.d(ts, "isLight", function () { return $e; }); var es = {}; i.r(es), i.d(es, "used", function () { return ii; }), i.d(es, "copyProperties", function () { return ni; }), i.d(es, "stripHash", function () { return ri; }), i.d(es, "getBaseURI", function () { return si; }), i.d(es, "softCopyProperties", function () { return oi; }), i.d(es, "copy", function () { return ai; }), i.d(es, "isNotEmpty", function () { return li; }), i.d(es, "relativeToValue", function () { return hi; }), i.d(es, "relativeRadiusToValue", function () { return ui; }), i.d(es, "valueToRelative", function () { return pi; }), i.d(es, "getPixelRatio", function () { return ci; }), i.d(es, "camelToDashed", function () { return di; }), i.d(es, "capitalize", function () { return fi; }), i.d(es, "stringify", function () { return gi; }), i.d(es, "escapeForRgex", function () { return yi; }), i.d(es, "splitTextByCharCount", function () { return mi; }), i.d(es, "truncateWithEllipsis", function () { return vi; }), i.d(es, "trim", function () { return bi; }), i.d(es, "rtrim", function () { return xi; }), i.d(es, "ltrim", function () { return _i; }), i.d(es, "reverseString", function () { return Pi; }), i.d(es, "unquote", function () { return wi; }), i.d(es, "padString", function () { return Ci; }), i.d(es, "getFormat", function () { return Oi; }), i.d(es, "cleanFormat", function () { return Si; }), i.d(es, "stripTags", function () { return Ii; }), i.d(es, "plainText", function () { return Di; }), i.d(es, "numberToString", function () { return ki; }), i.d(es, "anyToDate", function () { return Ti; }), i.d(es, "anyToNumber", function () { return Ai; }), i.d(es, "getYearDay", function () { return Vi; }), i.d(es, "getWeek", function () { return Fi; }), i.d(es, "getMonthWeek", function () { return Mi; }), i.d(es, "getDayFromWeek", function () { return ji; }), i.d(es, "get12Hours", function () { return Li; }), i.d(es, "getTimeZone", function () { return Ei; }), i.d(es, "random", function () { return Ri; }), i.d(es, "fitNumber", function () { return Bi; }), i.d(es, "fitNumberRelative", function () { return Ni; }), i.d(es, "svgPointToSprite", function () { return Hi; }), i.d(es, "spritePointToSvg", function () { return Wi; }), i.d(es, "spritePointToSprite", function () { return Xi; }), i.d(es, "svgRectToSprite", function () { return Yi; }), i.d(es, "spriteRectToSvg", function () { return zi; }), i.d(es, "documentPointToSvg", function () { return Ui; }), i.d(es, "svgPointToDocument", function () { return Gi; }), i.d(es, "documentPointToSprite", function () { return Ki; }), i.d(es, "spritePointToDocument", function () { return Zi; }), i.d(es, "width", function () { return qi; }), i.d(es, "height", function () { return $i; }), i.d(es, "decimalPlaces", function () { return Ji; }), i.d(es, "parseUrl", function () { return Qi; }), i.d(es, "serializeUrl", function () { return tn; }), i.d(es, "joinUrl", function () { return nn; }), i.d(es, "isIE", function () { return rn; }); var is = {}; i.r(is), i.d(is, "linear", function () { return sn; }), i.d(is, "quadIn", function () { return on; }), i.d(is, "quadOut", function () { return an; }), i.d(is, "quadInOut", function () { return ln; }), i.d(is, "polyIn", function () { return hn; }), i.d(is, "polyOut", function () { return un; }), i.d(is, "polyInOut", function () { return pn; }), i.d(is, "polyIn3", function () { return cn; }), i.d(is, "polyOut3", function () { return dn; }), i.d(is, "polyInOut3", function () { return fn; }), i.d(is, "expIn", function () { return gn; }), i.d(is, "expOut", function () { return yn; }), i.d(is, "expInOut", function () { return mn; }), i.d(is, "sinIn", function () { return vn; }), i.d(is, "sinOut", function () { return bn; }), i.d(is, "sinInOut", function () { return xn; }), i.d(is, "cubicIn", function () { return _n; }), i.d(is, "cubicOut", function () { return Pn; }), i.d(is, "cubicInOut", function () { return wn; }), i.d(is, "circleIn", function () { return Cn; }), i.d(is, "circleOut", function () { return On; }), i.d(is, "circleInOut", function () { return Sn; }), i.d(is, "bounceIn", function () { return In; }), i.d(is, "bounceOut", function () { return Dn; }), i.d(is, "bounceInOut", function () { return kn; }), i.d(is, "elasticIn", function () { return Tn; }), i.d(is, "elasticOut", function () { return An; }), i.d(is, "elasticInOut", function () { return Vn; }); var ns = {}; i.r(ns), i.d(ns, "timeUnitDurations", function () { return Xo; }), i.d(ns, "getNextUnit", function () { return nr; }), i.d(ns, "getDuration", function () { return rr; }), i.d(ns, "now", function () { return sr; }), i.d(ns, "getTime", function () { return or; }), i.d(ns, "copy", function () { return ar; }), i.d(ns, "checkChange", function () { return lr; }), i.d(ns, "add", function () { return hr; }), i.d(ns, "round", function () { return ur; }); var rs = {}; i.r(rs), i.d(rs, "polyline", function () { return br; }), i.d(rs, "moveTo", function () { return xr; }), i.d(rs, "lineTo", function () { return _r; }), i.d(rs, "quadraticCurveTo", function () { return Pr; }), i.d(rs, "cubicCurveTo", function () { return wr; }), i.d(rs, "closePath", function () { return Cr; }), i.d(rs, "arcTo", function () { return Or; }), i.d(rs, "arc", function () { return Sr; }), i.d(rs, "arcToPoint", function () { return Ir; }), i.d(rs, "rectangle", function () { return Dr; }), i.d(rs, "rectToPath", function () { return kr; }), i.d(rs, "pathToPoints", function () { return Tr; }), i.d(rs, "spiralPoints", function () { return Ar; }), i.d(rs, "pointsToPath", function () { return Vr; }); var ss = {}; i.r(ss), i.d(ss, "System", function () { return js; }), i.d(ss, "system", function () { return Ls; }), i.d(ss, "BaseObject", function () { return $s; }), i.d(ss, "BaseObjectEvents", function () { return Js; }), i.d(ss, "Component", function () { return Fa; }), i.d(ss, "Container", function () { return _a; }), i.d(ss, "DataItem", function () { return Va; }), i.d(ss, "Sprite", function () { return ba; }), i.d(ss, "SpriteEventDispatcher", function () { return Co; }), i.d(ss, "SpriteState", function () { return Po; }), i.d(ss, "registry", function () { return Fs; }), i.d(ss, "Registry", function () { return Vs; }), i.d(ss, "options", function () { return Ms; }), i.d(ss, "CSVParser", function () { return Ca; }), i.d(ss, "DataLoader", function () { return Sa; }), i.d(ss, "dataLoader", function () { return Ia; }), i.d(ss, "DataParser", function () { return Pa; }), i.d(ss, "DataSource", function () { return Da; }), i.d(ss, "JSONParser", function () { return Oa; }), i.d(ss, "SVGDefaults", function () { return Oo; }), i.d(ss, "Button", function () { return La; }), i.d(ss, "Circle", function () { return Ea; }), i.d(ss, "Ellipse", function () { return Ra; }), i.d(ss, "Image", function () { return Ba; }), i.d(ss, "Label", function () { return Ma; }), i.d(ss, "Line", function () { return Na; }), i.d(ss, "Popup", function () { return Uo; }), i.d(ss, "Modal", function () { return Go; }), i.d(ss, "PointedRectangle", function () { return Wa; }), i.d(ss, "PointedShape", function () { return Ha; }), i.d(ss, "Polyarc", function () { return Ya; }), i.d(ss, "Polygon", function () { return Ua; }), i.d(ss, "Polyline", function () { return Xa; }), i.d(ss, "Polyspline", function () { return Ga; }), i.d(ss, "Preloader", function () { return Za; }), i.d(ss, "Rectangle", function () { return xa; }), i.d(ss, "ResizeButton", function () { return qa; }), i.d(ss, "RoundedRectangle", function () { return ja; }), i.d(ss, "Scrollbar", function () { return $a; }), i.d(ss, "Slider", function () { return Ja; }), i.d(ss, "Slice", function () { return Ka; }), i.d(ss, "TextLink", function () { return Qa; }), i.d(ss, "Tooltip", function () { return il; }), i.d(ss, "Trapezoid", function () { return nl; }), i.d(ss, "Triangle", function () { return rl; }), i.d(ss, "WavedCircle", function () { return al; }), i.d(ss, "WavedLine", function () { return ll; }), i.d(ss, "WavedRectangle", function () { return hl; }), i.d(ss, "ZoomOutButton", function () { return ul; }), i.d(ss, "PlayButton", function () { return pl; }), i.d(ss, "Cone", function () { return gl; }), i.d(ss, "Rectangle3D", function () { return ml; }), i.d(ss, "Slice3D", function () { return vl; }), i.d(ss, "Export", function () { return ma; }), i.d(ss, "ExportMenu", function () { return ga; }), i.d(ss, "DateFormatter", function () { return ua; }), i.d(ss, "DurationFormatter", function () { return pa; }), i.d(ss, "NumberFormatter", function () { return ha; }), i.d(ss, "TextFormatter", function () { return la; }), i.d(ss, "getTextFormatter", function () { return dr; }), i.d(ss, "Inertia", function () { return No; }), i.d(ss, "Interaction", function () { return Yo; }), i.d(ss, "getInteraction", function () { return pr; }), i.d(ss, "InteractionKeyboardObject", function () { return Bo; }), i.d(ss, "InteractionObject", function () { return Ro; }), i.d(ss, "InteractionObjectEventDispatcher", function () { return Eo; }), i.d(ss, "MouseCursorStyle", function () { return sa; }), i.d(ss, "AMElement", function () { return Mo; }), i.d(ss, "Group", function () { return jo; }), i.d(ss, "Paper", function () { return Jo; }), i.d(ss, "Tension", function () { return sl; }), i.d(ss, "Basis", function () { return ol; }), i.d(ss, "SVGContainer", function () { return $o; }), i.d(ss, "ColorModifier", function () { return cl; }), i.d(ss, "LinearGradient", function () { return ia; }), i.d(ss, "LinearGradientModifier", function () { return fl; }), i.d(ss, "RadialGradientModifier", function () { return bl; }), i.d(ss, "LinePattern", function () { return xl; }), i.d(ss, "Pattern", function () { return ea; }), i.d(ss, "RadialGradient", function () { return na; }), i.d(ss, "RectPattern", function () { return _l; }), i.d(ss, "ColorizeFilter", function () { return Pl; }), i.d(ss, "DesaturateFilter", function () { return wl; }), i.d(ss, "DropShadowFilter", function () { return el; }), i.d(ss, "BlurFilter", function () { return Cl; }), i.d(ss, "Filter", function () { return tl; }), i.d(ss, "FocusFilter", function () { return Ol; }), i.d(ss, "LightenFilter", function () { return yl; }), i.d(ss, "GlobalAdapter", function () { return Us; }), i.d(ss, "globalAdapter", function () { return Gs; }), i.d(ss, "Adapter", function () { return Ks; }), i.d(ss, "Animation", function () { return Io; }), i.d(ss, "animate", function () { return Fn; }), i.d(ss, "nextFrame", function () { return Wt; }), i.d(ss, "readFrame", function () { return Xt; }), i.d(ss, "writeFrame", function () { return Yt; }), i.d(ss, "whenIdle", function () { return zt; }), i.d(ss, "triggerIdle", function () { return Ut; }), i.d(ss, "Cache", function () { return Ts; }), i.d(ss, "cache", function () { return As; }), i.d(ss, "Color", function () { return qs; }), i.d(ss, "color", function () { return Je; }), i.d(ss, "isColor", function () { return Qe; }), i.d(ss, "castColor", function () { return ti; }), i.d(ss, "ColorSet", function () { return Sl; }), i.d(ss, "InterfaceColorSet", function () { return ta; }), i.d(ss, "DictionaryDisposer", function () { return Is; }), i.d(ss, "Dictionary", function () { return Ds; }), i.d(ss, "DictionaryTemplate", function () { return ks; }), i.d(ss, "Disposer", function () { return fs; }), i.d(ss, "MultiDisposer", function () { return gs; }), i.d(ss, "MutableValueDisposer", function () { return ys; }), i.d(ss, "CounterDisposer", function () { return ms; }), i.d(ss, "StyleRule", function () { return Ao; }), i.d(ss, "StyleClass", function () { return Fo; }), i.d(ss, "getElement", function () { return Bn; }), i.d(ss, "addClass", function () { return Nn; }), i.d(ss, "removeClass", function () { return Hn; }), i.d(ss, "blur", function () { return Yn; }), i.d(ss, "focus", function () { return zn; }), i.d(ss, "outerHTML", function () { return Un; }), i.d(ss, "isElement", function () { return Gn; }), i.d(ss, "copyAttributes", function () { return qn; }), i.d(ss, "fixPixelPerfect", function () { return $n; }), i.d(ss, "ready", function () { return Qn; }), i.d(ss, "EventDispatcher", function () { return Cs; }), i.d(ss, "TargetedEventDispatcher", function () { return Os; }), i.d(ss, "ListIterator", function () { return Ss; }), i.d(ss, "min", function () { return Ce; }), i.d(ss, "max", function () { return Se; }), i.d(ss, "join", function () { return Ie; }), i.d(ss, "Keyboard", function () { return Ho; }), i.d(ss, "keyboard", function () { return Wo; }), i.d(ss, "Language", function () { return aa; }), i.d(ss, "IndexedIterable", function () { return Es; }), i.d(ss, "ListGrouper", function () { return Rs; }), i.d(ss, "ListDisposer", function () { return Bs; }), i.d(ss, "List", function () { return Ns; }), i.d(ss, "ListTemplate", function () { return Hs; }), i.d(ss, "Morpher", function () { return za; }), i.d(ss, "reverse", function () { return Fe; }), i.d(ss, "or", function () { return Me; }), i.d(ss, "Percent", function () { return hs; }), i.d(ss, "percent", function () { return h; }), i.d(ss, "isPercent", function () { return u; }), i.d(ss, "Plugin", function () { return Il; }), i.d(ss, "Responsive", function () { return ka; }), i.d(ss, "ResponsiveBreakpoints", function () { return Aa; }), i.d(ss, "defaultRules", function () { return Ta; }), i.d(ss, "OrderedList", function () { return Ws; }), i.d(ss, "SortedList", function () { return Xs; }), i.d(ss, "OrderedListTemplate", function () { return Ys; }), i.d(ss, "SortedListTemplate", function () { return zs; }), i.d(ss, "PX", function () { return Qs; }), i.d(ss, "STRING", function () { return to; }), i.d(ss, "NUMBER", function () { return eo; }), i.d(ss, "DATE", function () { return io; }), i.d(ss, "DURATION", function () { return no; }), i.d(ss, "PLACEHOLDER", function () { return ro; }), i.d(ss, "PLACEHOLDER2", function () { return so; }), i.d(ss, "isNaN", function () { return p; }), i.d(ss, "checkString", function () { return f; }), i.d(ss, "checkBoolean", function () { return g; }), i.d(ss, "checkNumber", function () { return y; }), i.d(ss, "checkObject", function () { return m; }), i.d(ss, "castString", function () { return x; }), i.d(ss, "castNumber", function () { return _; }), i.d(ss, "isString", function () { return T; }), i.d(ss, "isNumber", function () { return A; }), i.d(ss, "isObject", function () { return V; }), i.d(ss, "isArray", function () { return F; }), i.d(ss, "Validatable", function () { return fa; }), i.d(ss, "path", function () { return rs; }), i.d(ss, "colors", function () { return ts; }), i.d(ss, "ease", function () { return is; }), i.d(ss, "math", function () { return Kr; }), i.d(ss, "array", function () { return Zr; }), i.d(ss, "number", function () { return Qr; }), i.d(ss, "object", function () { return qr; }), i.d(ss, "string", function () { return Jr; }), i.d(ss, "time", function () { return ns; }), i.d(ss, "utils", function () { return es; }), i.d(ss, "iter", function () { return $r; }), i.d(ss, "type", function () { return Gr; }), i.d(ss, "create", function () { return Nr; }), i.d(ss, "createFromConfig", function () { return Hr; }), i.d(ss, "disposeAllCharts", function () { return jr; }), i.d(ss, "useTheme", function () { return Wr; }), i.d(ss, "unuseTheme", function () { return Xr; }), i.d(ss, "unuseAllThemes", function () { return Yr; }), i.d(ss, "addLicense", function () { return zr; }); var os = {}; i.r(os), i.d(os, "GaugeChartDataItem", function () { return Ih; }), i.d(os, "GaugeChart", function () { return Dh; }), i.d(os, "RadarChartDataItem", function () { return Ch; }), i.d(os, "RadarChart", function () { return Oh; }), i.d(os, "XYChartDataItem", function () { return ch; }), i.d(os, "XYChart", function () { return dh; }), i.d(os, "SerialChartDataItem", function () { return Rl; }), i.d(os, "SerialChart", function () { return Bl; }), i.d(os, "PieChart3DDataItem", function () { return Nh; }), i.d(os, "PieChart3D", function () { return Hh; }), i.d(os, "PieChartDataItem", function () { return Lh; }), i.d(os, "PieChart", function () { return Eh; }), i.d(os, "SlicedChart", function () { return Xh; }), i.d(os, "SlicedChartDataItem", function () { return Wh; }), i.d(os, "FlowDiagramDataItem", function () { return Uh; }), i.d(os, "FlowDiagram", function () { return Gh; }), i.d(os, "SankeyDiagramDataItem", function () { return $h; }), i.d(os, "SankeyDiagram", function () { return Jh; }), i.d(os, "ChordDiagramDataItem", function () { return iu; }), i.d(os, "ChordDiagram", function () { return nu; }), i.d(os, "TreeMapDataItem", function () { return hu; }), i.d(os, "TreeMap", function () { return uu; }), i.d(os, "XYChart3DDataItem", function () { return yu; }), i.d(os, "XYChart3D", function () { return mu; }), i.d(os, "ChartDataItem", function () { return Tl; }), i.d(os, "Chart", function () { return Al; }), i.d(os, "LegendDataItem", function () { return Fl; }), i.d(os, "Legend", function () { return jl; }), i.d(os, "LegendSettings", function () { return Ml; }), i.d(os, "HeatLegend", function () { return vu; }), i.d(os, "SeriesDataItem", function () { return Ll; }), i.d(os, "Series", function () { return El; }), i.d(os, "XYSeriesDataItem", function () { return hh; }), i.d(os, "XYSeries", function () { return uh; }), i.d(os, "LineSeriesDataItem", function () { return gh; }), i.d(os, "LineSeries", function () { return yh; }), i.d(os, "LineSeriesSegment", function () { return fh; }), i.d(os, "CandlestickSeriesDataItem", function () { return xu; }), i.d(os, "CandlestickSeries", function () { return _u; }), i.d(os, "OHLCSeriesDataItem", function () { return wu; }), i.d(os, "OHLCSeries", function () { return Cu; }), i.d(os, "ColumnSeriesDataItem", function () { return su; }), i.d(os, "ColumnSeries", function () { return ou; }), i.d(os, "StepLineSeriesDataItem", function () { return Su; }), i.d(os, "StepLineSeries", function () { return Iu; }), i.d(os, "RadarSeriesDataItem", function () { return mh; }), i.d(os, "RadarSeries", function () { return vh; }), i.d(os, "RadarColumnSeriesDataItem", function () { return ku; }), i.d(os, "RadarColumnSeries", function () { return Tu; }), i.d(os, "PieSeriesDataItem", function () { return Mh; }), i.d(os, "PieSeries", function () { return jh; }), i.d(os, "FunnelSeries", function () { return Mu; }), i.d(os, "FunnelSeriesDataItem", function () { return Fu; }), i.d(os, "PyramidSeries", function () { return Lu; }), i.d(os, "PyramidSeriesDataItem", function () { return ju; }), i.d(os, "PictorialStackedSeries", function () { return Ru; }), i.d(os, "PictorialStackedSeriesDataItem", function () { return Eu; }), i.d(os, "PieTick", function () { return Fh; }), i.d(os, "FunnelSlice", function () { return Au; }), i.d(os, "PieSeries3DDataItem", function () { return Rh; }), i.d(os, "PieSeries3D", function () { return Bh; }), i.d(os, "TreeMapSeriesDataItem", function () { return au; }), i.d(os, "TreeMapSeries", function () { return lu; }), i.d(os, "ColumnSeries3DDataItem", function () { return fu; }), i.d(os, "ColumnSeries3D", function () { return gu; }), i.d(os, "ConeSeriesDataItem", function () { return Nu; }), i.d(os, "ConeSeries", function () { return Hu; }), i.d(os, "CurvedColumnSeries", function () { return Yu; }), i.d(os, "CurvedColumnSeriesDataItem", function () { return Xu; }), i.d(os, "AxisDataItem", function () { return Wl; }), i.d(os, "Axis", function () { return Xl; }), i.d(os, "Grid", function () { return Ul; }), i.d(os, "AxisTick", function () { return Zl; }), i.d(os, "AxisLabel", function () { return Gl; }), i.d(os, "AxisLine", function () { return Yl; }), i.d(os, "AxisFill", function () { return zl; }), i.d(os, "AxisRenderer", function () { return ql; }), i.d(os, "AxisBreak", function () { return Nl; }), i.d(os, "AxisBullet", function () { return $l; }), i.d(os, "ValueAxisDataItem", function () { return th; }), i.d(os, "ValueAxis", function () { return eh; }), i.d(os, "CategoryAxisDataItem", function () { return ah; }), i.d(os, "CategoryAxis", function () { return lh; }), i.d(os, "CategoryAxisBreak", function () { return oh; }), i.d(os, "DateAxisDataItem", function () { return nh; }), i.d(os, "DateAxis", function () { return rh; }), i.d(os, "DurationAxisDataItem", function () { return zu; }), i.d(os, "DurationAxis", function () { return Uu; }), i.d(os, "DateAxisBreak", function () { return ih; }), i.d(os, "ValueAxisBreak", function () { return Ql; }), i.d(os, "AxisRendererX", function () { return sh; }), i.d(os, "AxisRendererY", function () { return Jl; }), i.d(os, "AxisRendererRadial", function () { return wh; }), i.d(os, "AxisLabelCircular", function () { return _h; }), i.d(os, "AxisRendererCircular", function () { return Ph; }), i.d(os, "AxisFillCircular", function () { return bh; }), i.d(os, "GridCircular", function () { return xh; }), i.d(os, "AxisRendererX3D", function () { return pu; }), i.d(os, "AxisRendererY3D", function () { return cu; }), i.d(os, "Tick", function () { return Kl; }), i.d(os, "Bullet", function () { return Vl; }), i.d(os, "LabelBullet", function () { return Kh; }), i.d(os, "CircleBullet", function () { return Gu; }), i.d(os, "ErrorBullet", function () { return Ku; }), i.d(os, "XYChartScrollbar", function () { return ph; }), i.d(os, "ClockHand", function () { return Sh; }), i.d(os, "FlowDiagramNode", function () { return Yh; }), i.d(os, "FlowDiagramLink", function () { return zh; }), i.d(os, "SankeyNode", function () { return Zh; }), i.d(os, "SankeyLink", function () { return qh; }), i.d(os, "ChordNode", function () { return Qh; }), i.d(os, "ChordLink", function () { return eu; }), i.d(os, "NavigationBarDataItem", function () { return Zu; }), i.d(os, "NavigationBar", function () { return qu; }), i.d(os, "Column", function () { return ru; }), i.d(os, "Candlestick", function () { return bu; }), i.d(os, "OHLC", function () { return Pu; }), i.d(os, "RadarColumn", function () { return Du; }), i.d(os, "Column3D", function () { return du; }), i.d(os, "ConeColumn", function () { return Bu; }), i.d(os, "CurvedColumn", function () { return Wu; }), i.d(os, "XYCursor", function () { return Ju; }), i.d(os, "Cursor", function () { return $u; }), i.d(os, "RadarCursor", function () { return Qu; }); var _as = function as(t, e) { return (_as = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e; } || function (t, e) { for (var i in e) e.hasOwnProperty(i) && (t[i] = e[i]); })(t, e); }, _ls = function ls() { return (_ls = Object.assign || function (t) { for (var e, i = 1, n = arguments.length; i < n; i++) for (var r in e = arguments[i]) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); return t; }).apply(this, arguments); }, hs = function () { function t(t) { this._value = t; } return Object.defineProperty(t.prototype, "value", { get: function get() { return this._value / 100; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "percent", { get: function get() { return this._value; }, enumerable: !0, configurable: !0 }), t.prototype.toString = function () { return this._value + "%"; }, t; }(), us = Math.PI, ps = us / 2, cs = us / 180, ds = 180 / us, fs = function () { function t(t) { this._disposed = !1, this._dispose = t; } return t.prototype.isDisposed = function () { return this._disposed; }, t.prototype.dispose = function () { this._disposed || (this._disposed = !0, this._dispose()); }, t; }(), gs = function (t) { function e(e) { return t.call(this, function () { mt(e, function (t) { t.dispose(); }); }) || this; } return n(e, t), e; }(fs), ys = function (t) { function e() { var e = t.call(this, function () { S(e._disposer) && (e._disposer.dispose(), e._disposer = void 0); }) || this; return e; } return n(e, t), e.prototype.get = function () { return this._value; }, e.prototype.set = function (t, e) { S(this._disposer) && this._disposer.dispose(), this._disposer = e, this._value = t; }, e.prototype.reset = function () { this.set(void 0, void 0); }, e; }(fs), ms = function (t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e._counter = 0, e; } return n(e, t), e.prototype.increment = function () { var t = this; return ++this._counter, new fs(function () { 0 === --t._counter && t.dispose(); }); }, e; }(fs), vs = !1, bs = [], xs = [], _s = [], Ps = [], ws = "function" == typeof requestAnimationFrame ? function (t) { requestAnimationFrame(t); } : function (t) { setTimeout(t, 1e3 / 60); }, Cs = function () { function t() { this._listeners = [], this._killed = [], this._disabled = {}, this._iterating = 0, this._enabled = !0, this._disposed = !1; } return t.prototype.isDisposed = function () { return this._disposed; }, t.prototype.dispose = function () { if (!this._disposed) { this._disposed = !0; var t = this._listeners; this._iterating = 1, this._listeners = null, this._disabled = null; try { mt(t, function (t) { t.disposer.dispose(); }); } finally { this._killed = null, this._iterating = null; } } }, t.prototype.hasListeners = function () { return 0 !== this._listeners.length; }, t.prototype.hasListenersByType = function (t) { return gt(this._listeners, function (e) { return (null === e.type || e.type === t) && !e.killed; }); }, t.prototype.enable = function () { this._enabled = !0; }, t.prototype.disable = function () { this._enabled = !1; }, t.prototype.enableType = function (t) { delete this._disabled[t]; }, t.prototype.disableType = function (t, e) { void 0 === e && (e = 1 / 0), this._disabled[t] = e; }, t.prototype._removeListener = function (t) { if (0 === this._iterating) { var e = this._listeners.indexOf(t); if (-1 === e) throw new Error("Invalid state: could not remove listener"); this._listeners.splice(e, 1); } else this._killed.push(t); }, t.prototype._removeExistingListener = function (t, e, i, n) { if (this._disposed) throw new Error("EventDispatcher is disposed"); this._eachListener(function (r) { r.once !== t || r.type !== e || null != i && r.callback !== i || r.context !== n || r.disposer.dispose(); }); }, t.prototype.isEnabled = function (t) { if (this._disposed) throw new Error("EventDispatcher is disposed"); return this._enabled && this._listeners.length > 0 && this.hasListenersByType(t) && null == this._disabled[t]; }, t.prototype.has = function (t, e, i) { return -1 !== Et(this._listeners, function (n) { return !0 !== n.once && n.type === t && (null == e || n.callback === e) && n.context === i; }); }, t.prototype._shouldDispatch = function (t) { if (this._disposed) throw new Error("EventDispatcher is disposed"); var e = this._disabled[t]; return A(e) ? (e <= 1 ? delete this._disabled[t] : --this._disabled[t], !1) : this._enabled; }, t.prototype._eachListener = function (t) { var e = this; ++this._iterating; try { mt(this._listeners, t); } finally { 0 === --this._iterating && 0 !== this._killed.length && (mt(this._killed, function (t) { e._removeListener(t); }), this._killed.length = 0); } }, t.prototype.dispatchImmediately = function (t, e) { this._shouldDispatch(t) && this._eachListener(function (i) { i.killed || null !== i.type && i.type !== t || i.dispatch(t, e); }); }, t.prototype.dispatch = function (t, e) { this._shouldDispatch(t) && this._eachListener(function (i) { i.killed || null !== i.type && i.type !== t || zt(function () { i.killed || i.dispatch(t, e); }); }); }, t.prototype._on = function (t, e, i, n, r, s) { var o = this; if (this._disposed) throw new Error("EventDispatcher is disposed"); this._removeExistingListener(t, e, i, n); var a = { type: e, callback: i, context: n, shouldClone: r, dispatch: s, killed: !1, once: t, disposer: new fs(function () { a.killed = !0, o._removeListener(a); }) }; return this._listeners.push(a), a; }, t.prototype.onAll = function (t, e, i) { return void 0 === i && (i = !0), this._on(!1, null, t, e, i, function (i, n) { return t.call(e, i, n); }).disposer; }, t.prototype.on = function (t, e, i, n) { return void 0 === n && (n = !0), this._on(!1, t, e, i, n, function (t, n) { return e.call(i, n); }).disposer; }, t.prototype.once = function (t, e, i, n) { void 0 === n && (n = !0); var r = this._on(!0, t, e, i, n, function (t, n) { r.disposer.dispose(), e.call(i, n); }); return r.disposer; }, t.prototype.off = function (t, e, i) { this._removeExistingListener(!1, t, e, i); }, t.prototype.copyFrom = function (t) { var e = this; if (this._disposed) throw new Error("EventDispatcher is disposed"); if (t === this) throw new Error("Cannot copyFrom the same TargetedEventDispatcher"); mt(t._listeners, function (t) { !t.killed && t.shouldClone && (null === t.type ? e.onAll(t.callback, t.context) : t.once ? e.once(t.type, t.callback, t.context) : e.on(t.type, t.callback, t.context)); }); }, t; }(), Os = function (t) { function e(e) { var i = t.call(this) || this; return i.target = e, i; } return n(e, t), e.prototype.copyFrom = function (t) { var e = this; if (this._disposed) throw new Error("EventDispatcher is disposed"); if (t === this) throw new Error("Cannot copyFrom the same TargetedEventDispatcher"); mt(t._listeners, function (i) { i.context !== t.target && !i.killed && i.shouldClone && (null === i.type ? e.onAll(i.callback, i.context) : i.once ? e.once(i.type, i.callback, i.context) : e.on(i.type, i.callback, i.context)); }); }, e; }(Cs), Ss = function () { function t(t, e) { this.createNewItems = !1, this.list = t, this._create = e, this.reset(); } return t.prototype.reset = function () { this._listCopy = he(this.list.iterator()); }, t.prototype.clear = function () { this._listCopy.length = 0; }, t.prototype.getFirst = function () { return this.returnItem(0); }, t.prototype.getLast = function () { return this.returnItem(this._listCopy.length - 1); }, t.prototype.find = function (t) { var e = Et(this._listCopy, t); if (-1 !== e) { var i = this._listCopy[e]; return St(this._listCopy, i), i; } return this.getLast(); }, t.prototype.removeItem = function (t) { return St(this._listCopy, t); }, t.prototype.returnItem = function (t) { if (t >= 0 && t < this._listCopy.length) { var e = this._listCopy[t]; return St(this._listCopy, e), e; } if (this.createNewItems) return this._create(); }, t.prototype.iterator = function () { return ae(this._listCopy); }, t; }(), Is = function (t) { function e(e) { var i = e.events.on("removed", function (t) { t.oldValue.dispose(); }, void 0, !1); return t.call(this, function () { i.dispose(), pe(e.iterator(), function (t) { t[1].dispose(); }); }) || this; } return n(e, t), e; }(fs), Ds = function () { function t() { this.events = new Cs(), this._dictionary = {}; } return t.prototype.hasKey = function (t) { return qt(this._dictionary, t); }, t.prototype.getKey = function (t) { return this._dictionary[t]; }, t.prototype.insertKey = function (t, e) { if (qt(this._dictionary, t)) throw new Error("Key " + t + " already exists in dictionary"); this._dictionary[t] = e, this.events.isEnabled("insertKey") && this.events.dispatchImmediately("insertKey", { type: "insertKey", target: this, key: t, newValue: e }); }, t.prototype.setKey = function (t, e) { if (qt(this._dictionary, t)) { var i = this._dictionary[t]; i !== e && (this._dictionary[t] = e, this.events.isEnabled("setKey") && this.events.dispatchImmediately("setKey", { type: "setKey", target: this, key: t, oldValue: i, newValue: e }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", { type: "removed", target: this, oldValue: i })); } else this._dictionary[t] = e, this.events.isEnabled("insertKey") && this.events.dispatchImmediately("insertKey", { type: "insertKey", target: this, key: t, newValue: e }); }, t.prototype.updateKey = function (t, e) { if (!qt(this._dictionary, t)) throw new Error("Key " + t + " doesn't exist in dictionary"); var i = this._dictionary[t], n = e(i); i !== n && (this._dictionary[t] = n, this.events.isEnabled("setKey") && this.events.dispatchImmediately("setKey", { type: "setKey", target: this, key: t, oldValue: i, newValue: n }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", { type: "removed", target: this, oldValue: i })); }, t.prototype.removeKey = function (t) { if (qt(this._dictionary, t)) { var e = this._dictionary[t]; delete this._dictionary[t], this.events.isEnabled("removeKey") && this.events.dispatchImmediately("removeKey", { type: "removeKey", target: this, key: t, oldValue: e }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", { type: "removed", target: this, oldValue: e }); } }, t.prototype.insertKeyIfEmpty = function (t, e) { return this.hasKey(t) || this.insertKey(t, e()), this.getKey(t); }, t.prototype.clear = function () { var t = this; this.events.isEnabled("removed") && Qt(this._dictionary, function (e, i) { t.events.dispatchImmediately("removed", { type: "removed", target: t, oldValue: i }); }), this._dictionary = {}, this.events.isEnabled("cleared") && this.events.dispatchImmediately("cleared", { type: "cleared", target: this }); }, t.prototype.copyFrom = function (t) { var e = this; pe(t.iterator(), function (t) { e.setKey(t[0], t[1]); }); }, t.prototype.iterator = function () { return Gt(this._dictionary); }, t.prototype[Symbol.iterator] = function () { var t, e, i, n; return s(this, function (r) { switch (r.label) { case 0: for (e in t = [], this._dictionary) t.push(e); i = 0, r.label = 1; case 1: return i < t.length ? (n = t[i], qt(this._dictionary, n) ? [4, [n, this._dictionary[n]]] : [3, 3]) : [3, 4]; case 2: r.sent(), r.label = 3; case 3: return i++, [3, 1]; case 4: return [2]; } }); }, t.prototype.each = function (t) { pe(this.iterator(), function (e) { var i = a(e, 2), n = i[0], r = i[1]; return t(n, r); }); }, t.prototype.sortedIterator = function () { return ce(this.iterator(), function (t, e) { return De(t[0], e[0]); }); }, t; }(), ks = function (t) { function e(e) { var i = t.call(this) || this; return i.template = e, i; } return n(e, t), Object.defineProperty(e.prototype, "template", { get: function get() { return this._template; }, set: function set(t) { t.isTemplate = !0, this._template = t; }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (t) { var e = this; pe(t.iterator(), function (t) { e.setKey(t[0], t[1].clone()); }); }, e.prototype.create = function (t) { var e = this; return this.insertKeyIfEmpty(t, function () { return e.template.clone(); }); }, e; }(Ds), Ts = function () { function t() { this._storage = new Ds(), this.ttl = 1e3; } return t.prototype.set = function (t, e, i, n) { var r = this._storage.insertKeyIfEmpty(t, function () { return new Ds(); }), s = { touched: new Date().getTime(), ttl: A(n) ? n : this.ttl, value: i }; r.setKey(e, s); }, t.prototype.get = function (t, e, i) { if (void 0 === i && (i = void 0), this._storage.hasKey(t)) { var n = this._storage.getKey(t); if (n.hasKey(e)) { var r = n.getKey(e); return r.ttl && r.touched + r.ttl < new Date().getTime() && (r.expired = !0), r.expired ? (n.removeKey(e), i) : r.value; } return i; } return i; }, t.prototype.clear = function (t) { t ? this._storage.removeKey(t) : this._storage.clear(); }, t; }(), As = new Ts(), Vs = function () { function t() { this.events = new Cs(), this.themes = [], this.loadedThemes = {}, this._uidCount = 0, this.registeredClasses = {}, this._placeholders = {}, this.invalidSprites = {}, this.invalidDatas = {}, this.invalidRawDatas = [], this.invalidDataItems = [], this.invalidDataRange = [], this.invalidPositions = {}, this.invalidLayouts = {}, this.baseSprites = [], this.baseSpritesByUid = {}, this.queue = [], this.uid = this.getUniqueId(), this.invalidSprites.noBase = [], this.invalidDatas.noBase = [], this.invalidLayouts.noBase = [], this.invalidPositions.noBase = []; } return t.prototype.getUniqueId = function () { var t = this._uidCount; return this._uidCount += 1, "id-" + t; }, Object.defineProperty(t.prototype, "map", { get: function get() { return this._map || (this._map = new Ds()), this._map; }, enumerable: !0, configurable: !0 }), t.prototype.setCache = function (t, e, i) { As.set(this.uid, t, e, i); }, t.prototype.getCache = function (t, e) { return void 0 === e && (e = void 0), As.get(this.uid, t, e); }, t.prototype.dispatch = function (t, e) { this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatch(t, { type: t, target: this })) : this.events.dispatch(t, { type: t, target: this })); }, t.prototype.dispatchImmediately = function (t, e) { this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatchImmediately(t, e)) : this.events.dispatchImmediately(t, { type: t, target: this })); }, t.prototype.getPlaceholder = function (t) { return S(this._placeholders[t]) ? this._placeholders[t] : (this._placeholders[t] = "__amcharts_" + t + "_" + Te(8) + "__", this._placeholders[t]); }, t.prototype.addToInvalidComponents = function (t) { t.baseId ? It(this.invalidDatas[t.baseId], t) : It(this.invalidDatas.noBase, t); }, t.prototype.removeFromInvalidComponents = function (t) { t.baseId && St(this.invalidDatas[t.baseId], t), St(this.invalidDatas.noBase, t); }, t.prototype.addToInvalidSprites = function (t) { t.baseId ? Dt(this.invalidSprites[t.baseId], t) : Dt(this.invalidSprites.noBase, t); }, t.prototype.removeFromInvalidSprites = function (t) { t.baseId && St(this.invalidSprites[t.baseId], t), St(this.invalidSprites.noBase, t); }, t.prototype.addToInvalidPositions = function (t) { t.baseId ? Dt(this.invalidPositions[t.baseId], t) : Dt(this.invalidPositions.noBase, t); }, t.prototype.removeFromInvalidPositions = function (t) { t.baseId && St(this.invalidPositions[t.baseId], t), St(this.invalidPositions.noBase, t); }, t.prototype.addToInvalidLayouts = function (t) { t.baseId ? Dt(this.invalidLayouts[t.baseId], t) : Dt(this.invalidLayouts.noBase, t); }, t.prototype.removeFromInvalidLayouts = function (t) { t.baseId && St(this.invalidLayouts[t.baseId], t), St(this.invalidLayouts.noBase, t); }, t; }(), Fs = new Vs(), Ms = { verbose: !0, commercialLicense: !1, classNamePrefix: "amcharts-", autoSetClassName: !1, minPolylineStep: .5, onlyShowOnViewport: !1, queue: !1, licenses: [] }, js = function () { function t() { this._isPaused = !1, this.animations = [], this.uid = Fs.getUniqueId(), this.dummyCounter = 0, this._frameRequested = !1, this.updateStepDuration = 45, this.time = Date.now(); } return t.prototype.reportTime = function (t, e) { this.dummyCounter, e && (this.time = Date.now()); }, t.prototype.update = function () { var t = this; if (!this._isPaused) { this._frameRequested = !1; var e = Date.now(); Fs.dispatchImmediately("enterframe"); for (var i in Fs.invalidDatas) if (qt(Fs.invalidDatas, i)) { for (var n = Fs.invalidDatas[i]; n.length > 0;) { var r = (s = n[0]).dataProvider; if (s.isDisposed()) St(n, s);else if (r && r.dataInvalid) try { if (r.validateData(), r.dataValidationProgress < 1) break; } catch (t) { St(n, r), r.raiseCriticalError(t); } else try { if (s.validateData(), s.dataValidationProgress < 1) break; } catch (t) { St(n, s), s.raiseCriticalError(t); } } if (Date.now() - e > this.updateStepDuration) break; } for (; Fs.invalidRawDatas.length > 0;) if ((s = Fs.invalidRawDatas[0]).isDisposed()) St(Fs.invalidRawDatas, s);else try { s.validateRawData(); } catch (t) { St(Fs.invalidRawDatas, s), s.raiseCriticalError(t); } for (; Fs.invalidDataItems.length > 0;) { if (r = (s = Fs.invalidDataItems[0]).dataProvider, s.isDisposed() || s.dataInvalid || r && r.dataInvalid) ;else try { s.validateDataItems(); } catch (t) { St(Fs.invalidDataItems, s), s.raiseCriticalError(t); } St(Fs.invalidDataItems, s); } for (; Fs.invalidDataRange.length > 0;) { var s; if (r = (s = Fs.invalidDataRange[0]).dataProvider, s.isDisposed() || s.dataInvalid || r && r.dataInvalid) ;else try { s.validateDataRange(), s.skipRangeEvent || s.dispatchImmediately("datarangechanged"), s.skipRangeEvent = !1; } catch (t) { St(Fs.invalidDataRange, s), s.raiseCriticalError(t); } St(Fs.invalidDataRange, s); } var o = []; Qt(Fs.invalidLayouts, function (e) { t.validateLayouts(e); }), Qt(Fs.invalidPositions, function (e) { t.validatePositions(e); }); var a = !1; if (e = Date.now(), Qt(Fs.invalidSprites, function (i, n) { for (var r = 0; n.length > 0;) { if (t.validateLayouts(i), t.validatePositions(i), 5 == ++r) { if (Date.now() - e > t.updateStepDuration) break; r = 0; } var s = n[n.length - 1]; if (s && !s.isDisposed()) { if (s._systemCheckIfValidate()) { if (t.checkIfValidate2(s)) try { s._systemUpdate(o); } catch (t) { s.invalid = !1, St(n, s), s.raiseCriticalError(t); } else o.push(s); } else o.push(s); s.invalid = !1; } St(n, s); } Fs.invalidSprites[i] = Fs.invalidSprites[i].concat(o); }), Qt(Fs.invalidSprites, function (t, e) { e.length > 0 && (a = !0); }), Qt(Fs.invalidDatas, function (t, e) { e.length > 0 && (a = !0); }), mt(Vt(this.animations), function (t) { t.update(); }), Qt(Fs.invalidLayouts, function (e) { t.validateLayouts(e); }), Qt(Fs.invalidPositions, function (e) { t.validatePositions(e); }), Ut(), Qt(Fs.invalidLayouts, function (e) { t.validateLayouts(e); }), Qt(Fs.invalidPositions, function (e) { t.validatePositions(e); }), Fs.dispatchImmediately("exitframe"), (a || this.animations.length > 0 || [].length > 0) && this.requestFrame(), this.updateStepDuration < 200) { var l = !0; Qt(Fs.invalidDatas, function (t, e) { e.length > 0 && (l = !1); }), Qt(Fs.invalidSprites, function (t, e) { e.length > 0 && (l = !1); }), l && (this.updateStepDuration = 200); } } }, t.prototype.checkIfValidate2 = function (t) { return !(t.dataItem && t.dataItem.component && t.dataItem.component.dataInvalid && !t.dataItem.component.isTemplate); }, t.prototype.requestFrame = function () { var t = this; this._frameRequested || (ws(function () { t.update(); }), this._frameRequested = !0); }, t.prototype.validatePositions = function (t) { for (var e = Fs.invalidPositions[t]; e.length > 0;) { var i = e[e.length - 1]; if (i.isDisposed()) St(e, i);else try { i._systemValidatePositions(); } catch (t) { i.positionInvalid = !1, St(e, i), i.raiseCriticalError(t); } } }, t.prototype.validateLayouts = function (t) { for (var e = Fs.invalidLayouts[t]; e.length > 0;) { var i = e[e.length - 1]; if (i.isDisposed()) St(e, i);else try { i.children.each(function (t) { t._systemValidateLayouts(); }), i.validateLayout(); } catch (t) { i.layoutInvalid = !1, St(e, i), i.raiseCriticalError(t); } } }, t.prototype.log = function (t) { !function () { for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e]; Ms.verbose && console && console.log.apply(console, l(t)); }(t); }, Object.defineProperty(t.prototype, "isPaused", { get: function get() { return this._isPaused; }, set: function set(t) { this._isPaused = t, t || (this._frameRequested = !1, this.requestFrame()); }, enumerable: !0, configurable: !0 }), t.VERSION = "4.7.0", t; }(), Ls = new js(), Es = function () { function t(t, e, i) { this._array = t, this._start = e, this._end = i; } return t.prototype.iterator = function () { var t = this; return function (e) { if (t._start !== t._end) if (t._start < t._end) for (var i = t._start; i < t._end && e(t._array[i]); ++i);else for (i = t._start - 1; i >= t._end && e(t._array[i]); --i); }; }, t.prototype.backwards = function () { return new t(this._array, this._end, this._start); }, t.prototype.range = function (e, i) { if (e <= i) { if (this._start === this._end) return this; if (this._start < this._end) { var n = i - e; return e = Math.max(this._start + e, this._start), i = Math.min(e + n, this._end), new t(this._array, e, i); } return n = i - e, e = Math.max(this._start - e, this._end), i = Math.max(e - n, this._end), new t(this._array, e, i); } throw new Error("Start index must be lower than end index"); }, t; }(), Rs = function (t) { function e(e, i, n) { var r = t.call(this, [e.events.on("inserted", function (t) { var i = t.newValue, n = r._getKey(i), s = 0; ue(e.iterator(), function (t) { return t !== i && (r._getKey(t) === n && ++s, !0); }), r._insert(i, n, s); }, void 0, !1), e.events.on("removed", function (t) { r._remove(t.oldValue); }, void 0, !1)]) || this; return r._keys = [], r._groups = {}, r._getKey = i, r._sort = n, pe(e.iterator(), function (t) { r._insert(t, i(t)); }), r; } return n(e, t), e.prototype._insert = function (t, e, i) { if (null == this._groups[e]) { this._groups[e] = []; var n = Lt(this._keys, this._sort, e), r = n.found, s = n.index; if (r) throw new Error("Key already exists: " + e); Mt(this._keys, s, e); } null == i ? this._groups[e].push(t) : Mt(this._groups[e], i, t); }, e.prototype._remove = function (t) { var e = this._getKey(t), i = this._groups[e]; if (null != i && (St(i, t), 0 === i.length)) { delete this._groups[e]; var n = Lt(this._keys, this._sort, e), r = n.found, s = n.index; if (!r) throw new Error("Key doesn't exist: " + e); jt(this._keys, s); } }, e.prototype.iterator = function () { var t = this; return ye(de(ae(this._keys), function (e) { return ae(t._groups[e]); })); }, e; }(gs), Bs = function (t) { function e(e) { var i = e.events.on("removed", function (t) { t.oldValue.dispose(); }, void 0, !1); return t.call(this, function () { i.dispose(), pe(e.iterator(), function (t) { t.dispose(); }); }) || this; } return n(e, t), e; }(fs), Ns = function () { function t(t) { void 0 === t && (t = []), this.events = new Cs(), this._values = t; } return Object.defineProperty(t.prototype, "values", { get: function get() { return this._values; }, enumerable: !0, configurable: !0 }), t.prototype.contains = function (t) { return -1 !== this._values.indexOf(t); }, t.prototype.removeValue = function (t) { for (var e = 0, i = this._values.length; e < i;) this._values[e] === t ? (this.removeIndex(e), --i) : ++e; }, t.prototype.indexOf = function (t) { return ft(this._values, t); }, Object.defineProperty(t.prototype, "length", { get: function get() { return this._values.length; }, enumerable: !0, configurable: !0 }), t.prototype.hasIndex = function (t) { return t >= 0 && t < this._values.length; }, t.prototype.getIndex = function (t) { return this._values[t]; }, t.prototype.setIndex = function (t, e) { Ae(t, this._values.length); var i = this._values[t]; return i !== e && (this._values[t] = e, this.events.isEnabled("setIndex") && this.events.dispatchImmediately("setIndex", { type: "setIndex", target: this, index: t, oldValue: i, newValue: e }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", { type: "removed", target: this, oldValue: i }), this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", { type: "inserted", target: this, newValue: e })), i; }, t.prototype.insertIndex = function (t, e) { Ae(t, this._values.length + 1), Mt(this._values, t, e), this.events.isEnabled("insertIndex") && this.events.dispatchImmediately("insertIndex", { type: "insertIndex", target: this, index: t, newValue: e }), this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", { type: "inserted", target: this, newValue: e }); }, t.prototype._sortQuicksort = function (t, e, i) { if (t < e) { var n = this._sortPartition(t, e, i); this._sortQuicksort(t, n, i), this._sortQuicksort(n + 1, e, i); } }, t.prototype._sortPartition = function (t, e, i) { for (var n = this._values, r = n[t], s = t - 1, o = e + 1;;) { do { ++s; } while (i(n[s], r) < 0); do { --o; } while (i(n[o], r) > 0); if (s >= o) return o; this.swap(s, o); } }, t.prototype.sort = function (t) { this._sortQuicksort(0, this._values.length - 1, t); }, t.prototype.swap = function (t, e) { var i = this._values.length; if (Ae(t, i), Ae(e, i), t !== e) { var n = this._values[t], r = this._values[e]; this._values[t] = r, this.events.isEnabled("setIndex") && this.events.dispatchImmediately("setIndex", { type: "setIndex", target: this, index: t, oldValue: n, newValue: r }), this._values[e] = n, this.events.isEnabled("setIndex") && this.events.dispatchImmediately("setIndex", { type: "setIndex", target: this, index: e, oldValue: r, newValue: n }); } }, t.prototype.removeIndex = function (t) { Ae(t, this._values.length); var e = this._values[t]; return jt(this._values, t), this.events.isEnabled("removeIndex") && this.events.dispatchImmediately("removeIndex", { type: "removeIndex", target: this, index: t, oldValue: e }), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", { type: "removed", target: this, oldValue: e }), e; }, t.prototype.moveValue = function (t, e) { var i = this.indexOf(t); if (-1 !== i) { var n = this._values[i]; jt(this._values, i), this.events.isEnabled("removeIndex") && this.events.dispatchImmediately("removeIndex", { type: "removeIndex", target: this, index: i, oldValue: n }); } null == e ? (e = this._values.length, this._values.push(t)) : Mt(this._values, e, t), this.events.isEnabled("insertIndex") && this.events.dispatchImmediately("insertIndex", { type: "insertIndex", target: this, index: e, newValue: t }), -1 === i && this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", { type: "inserted", target: this, newValue: t }); }, t.prototype.push = function (t) { var e = this._values.push(t) - 1; return this.events.isEnabled("insertIndex") && this.events.dispatchImmediately("insertIndex", { type: "insertIndex", target: this, index: e, newValue: t }), this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", { type: "inserted", target: this, newValue: t }), t; }, t.prototype.unshift = function (t) { this.insertIndex(0, t); }, t.prototype.pushAll = function (t) { var e = this; mt(t, function (t) { e.push(t); }); }, t.prototype.copyFrom = function (t) { this.pushAll(t._values); }, t.prototype.pop = function () { return this._values.length - 1 < 0 ? void 0 : this.removeIndex(this._values.length - 1); }, t.prototype.shift = function () { return this._values.length ? this.removeIndex(0) : void 0; }, t.prototype.setAll = function (t) { var e = this, i = Vt(this._values); this._values.length = 0, mt(t, function (t) { e._values.push(t); }), this.events.isEnabled("setAll") && this.events.dispatchImmediately("setAll", { type: "setAll", target: this, oldArray: i, newArray: this._values }), this.events.isEnabled("removed") && mt(i, function (t) { e.events.dispatchImmediately("removed", { type: "removed", target: e, oldValue: t }); }), this.events.isEnabled("inserted") && mt(this._values, function (t) { e.events.dispatchImmediately("inserted", { type: "inserted", target: e, newValue: t }); }); }, t.prototype.clear = function () { this.setAll([]); }, t.prototype.iterator = function () { return ae(this._values); }, t.prototype[Symbol.iterator] = function () { var t, e; return s(this, function (i) { switch (i.label) { case 0: t = this._values.length, e = 0, i.label = 1; case 1: return e < t ? [4, this._values[e]] : [3, 4]; case 2: i.sent(), i.label = 3; case 3: return ++e, [3, 1]; case 4: return [2]; } }); }, t.prototype.each = function (t) { mt(this._values, t); }, t.prototype.range = function (t, e) { if (t <= e) { var i = e - t; return t = Math.max(t, 0), e = Math.min(t + i, this._values.length), new Es(this._values, t, e); } throw new Error("Start index must be lower than end index"); }, t.prototype.backwards = function () { return new Es(this._values, this._values.length, 0); }, t; }(), Hs = function (t) { function e(e) { var i = t.call(this) || this; return i.template = e, i; } return n(e, t), Object.defineProperty(e.prototype, "template", { get: function get() { return this._template; }, set: function set(t) { t.isTemplate = !0, this._template = t; }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (t) { var e = this; pe(t.iterator(), function (t) { e.push(t.clone()); }); }, e.prototype.create = function (t) { var e = null != t ? new t() : this.template.clone(); return this.push(e), e; }, e.prototype.clone = function () { for (var t = new e(this.template), i = this.values, n = i.length, r = 0; r < n; ++r) t.push(i[r].clone()); return t; }, e; }(Ns), Ws = function () { function t(t) { this._values = [], this.events = new Cs(), null != t && this.setAll(t); } return Object.defineProperty(t.prototype, "values", { get: function get() { return this._values; }, enumerable: !0, configurable: !0 }), t.prototype._insert = function (t) { return this._values.push(t), this._values.length - 1; }, Object.defineProperty(t.prototype, "length", { get: function get() { return this._values.length; }, enumerable: !0, configurable: !0 }), t.prototype.indexOf = function (t) { return ft(this._values, t); }, t.prototype.contains = function (t) { return -1 !== this.indexOf(t); }, t.prototype.getIndex = function (t) { return this._values[t]; }, Object.defineProperty(t.prototype, "first", { get: function get() { return this._values[0]; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "last", { get: function get() { return this._values[this._values.length - 1]; }, enumerable: !0, configurable: !0 }), t.prototype.insert = function (t) { var e = this._insert(t); this.events.isEnabled("inserted") && this.events.dispatchImmediately("inserted", { type: "inserted", target: this, index: e, newValue: t }); }, t.prototype.remove = function (t) { var e = this.indexOf(t); if (-1 !== e) { var i = this._values[e]; jt(this._values, e), this.events.isEnabled("removed") && this.events.dispatchImmediately("removed", { type: "removed", target: this, index: e, oldValue: i }); } }, t.prototype.setAll = function (t) { var e = this; vt(this._values, function (t, i) { e._values.pop(), e.events.isEnabled("removed") && e.events.dispatchImmediately("removed", { type: "removed", target: e, index: i, oldValue: t }); }), mt(t, function (t) { e.insert(t); }); }, t.prototype.clear = function () { this.setAll([]); }, t.prototype.slice = function (e, i) { var n = new t(); return n._values = this._values.slice(e, i), n; }, t.prototype.findClosestIndex = function (t, e, i) { void 0 === i && (i = "any"); var n, r, s = -1, o = 0; return ue(this.iterator(), function (a) { var l = e(a); if ("any" === i) { if (l === t) return s = o, !1; var h = Math.abs(t - l); (!S(r) || r > h) && (s = o, n = l, r = h); } else "left" === i && l < t ? (!S(n) || n < l) && (s = o, n = l) : "right" === i && l >= t && (!S(n) || n >= l) && (s = o, n = l); return ++o, !0; }), -1 === s && ("left" === i ? s = 0 : "right" === i && (s = this.length - 1)), s; }, t.prototype.iterator = function () { return ae(this._values); }, t.prototype[Symbol.iterator] = function () { var t, e; return s(this, function (i) { switch (i.label) { case 0: t = this._values.length, e = 0, i.label = 1; case 1: return e < t ? [4, this._values[e]] : [3, 4]; case 2: i.sent(), i.label = 3; case 3: return ++e, [3, 1]; case 4: return [2]; } }); }, t.prototype.each = function (t) { mt(this._values, t); }, t; }(), Xs = function (t) { function e(e) { var i = t.call(this) || this; return i._ordering = e, i; } return n(e, t), e.prototype._insert = function (t) { var e = Lt(this._values, this._ordering, t).index; return Mt(this._values, e, t), e; }, e.prototype.indexOf = function (t) { var e = Lt(this._values, this._ordering, t), i = e.found, n = e.index; return i ? n : -1; }, e.prototype.update = function (t) { var e = ft(this._values, t); if (-1 !== e) { var i = this._values.length - 1; (0 === e || this._ordering(this._values[e - 1], t) < 0) && (e === i || this._ordering(t, this._values[e + 1]) < 0) || (jt(this._values, e), this._insert(t)); } }, e; }(Ws), Ys = function (t) { function e(e) { var i = t.call(this) || this; return i.template = e, i; } return n(e, t), Object.defineProperty(e.prototype, "template", { get: function get() { return this._template; }, set: function set(t) { t.isTemplate = !0, this._template = t; }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (t) { var e = this; pe(t.iterator(), function (t) { e.insert(t.clone()); }); }, e.prototype.slice = function (t, i) { var n = new e(this.template); return n._values = this._values.slice(t, i), n; }, e.prototype.create = function (t) { var e = null != t ? new t() : this.template.clone(); return this.insert(e), e; }, e; }(Ws), zs = function (t) { function e(e, i) { var n = t.call(this, i) || this; return n.template = e, n; } return n(e, t), Object.defineProperty(e.prototype, "template", { get: function get() { return this._template; }, set: function set(t) { t.isTemplate = !0, this._template = t; }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (t) { var e = this; pe(t.iterator(), function (t) { e.insert(t.clone()); }); }, e.prototype.create = function (t) { var e = null != t ? new t() : this.template.clone(); return this.insert(e), e; }, e; }(Xs), Us = function () { function t() { this._callbackId = 0, this._callbacks = new Xs(function (t, e) { return Me(Ve(t.priority, e.priority), Ve(t.id, e.id)); }); } return t.prototype.addAll = function (t, e, i, n, r) { void 0 === n && (n = 0), this._callbacks.insert({ id: ++this._callbackId, key: e, callback: i, priority: n, scope: r, type: t }); }, t.prototype.isEnabled = function (t, e) { return this._callbacks.length > 0; }, t.prototype.applyAll = function (t, e, i) { var n = this._callbacks.values, r = n.length; if (0 == r) return i; for (var s = 0; s < r; ++s) { var o = n[s]; o.key === e && t instanceof o.type && (i = o.callback.call(o.scope, i, t, e)); } return i; }, t; }(), Gs = new Us(), Ks = function () { function t(t) { this._callbackId = 0, this._callbacks = new Xs(function (t, e) { return Me(Ve(t.priority, e.priority), Ve(t.id, e.id)); }), this.object = t, this.events = this._callbacks.events; } return t.prototype.add = function (t, e, i, n) { void 0 === i && (i = 0), this._callbacks.insert({ id: ++this._callbackId, key: t, callback: e, priority: i, scope: n }); }, t.prototype.has = function (t, e, i, n) { return void 0 === i && (i = 0), !1; }, t.prototype.remove = function (t, e) { var i = this; mt(he(this._callbacks.iterator()), function (n) { n.key !== t || A(e) && e !== n.priority || i._callbacks.remove(n); }); }, t.prototype.isEnabled = function (t) { return this._callbacks.length > 0 || Gs.isEnabled(this.object, t); }, t.prototype.apply = function (t, e) { var i = this._callbacks.values, n = i.length; if (n > 0) for (var r = 0; r < n; ++r) { var s = i[r]; s.key === t && (e = s.callback.call(s.scope, e, this.object, t)); } return e = Gs.applyAll(this.object, t, e); }, t.prototype.keys = function () { return he(de(this._callbacks.iterator(), function (t) { return t.key; })); }, t.prototype.copyFrom = function (t) { var e = this; pe(t._callbacks.iterator(), function (t) { e.add(t.key, t.callback, t.priority, t.scope); }); }, t.prototype.clear = function () { this._callbacks.clear(); }, t; }(), Zs = { aliceblue: { r: 240, g: 248, b: 255 }, antiquewhite: { r: 250, g: 235, b: 215 }, aqua: { r: 0, g: 255, b: 255 }, aquamarine: { r: 127, g: 255, b: 212 }, azure: { r: 240, g: 255, b: 255 }, beige: { r: 245, g: 245, b: 220 }, bisque: { r: 255, g: 228, b: 196 }, black: { r: 0, g: 0, b: 0 }, blanchedalmond: { r: 255, g: 235, b: 205 }, blue: { r: 0, g: 0, b: 255 }, blueviolet: { r: 138, g: 43, b: 226 }, brown: { r: 165, g: 42, b: 42 }, burlywood: { r: 222, g: 184, b: 135 }, cadetblue: { r: 95, g: 158, b: 160 }, chartreuse: { r: 127, g: 255, b: 0 }, chocolate: { r: 210, g: 105, b: 30 }, coral: { r: 255, g: 127, b: 80 }, cornflowerblue: { r: 100, g: 149, b: 237 }, cornsilk: { r: 255, g: 248, b: 220 }, crimson: { r: 220, g: 20, b: 60 }, cyan: { r: 0, g: 255, b: 255 }, darkblue: { r: 0, g: 0, b: 139 }, darkcyan: { r: 0, g: 139, b: 139 }, darkgoldenrod: { r: 184, g: 134, b: 11 }, darkgray: { r: 169, g: 169, b: 169 }, darkgrey: { r: 169, g: 169, b: 169 }, darkgreen: { r: 0, g: 100, b: 0 }, darkkhaki: { r: 189, g: 183, b: 107 }, darkmagenta: { r: 139, g: 0, b: 139 }, darkolivegreen: { r: 85, g: 107, b: 47 }, darkorange: { r: 255, g: 140, b: 0 }, darkorchid: { r: 153, g: 50, b: 204 }, darkred: { r: 139, g: 0, b: 0 }, darksalmon: { r: 233, g: 150, b: 122 }, darkseagreen: { r: 143, g: 188, b: 143 }, darkslateblue: { r: 72, g: 61, b: 139 }, darkslategray: { r: 47, g: 79, b: 79 }, darkslategrey: { r: 47, g: 79, b: 79 }, darkturquoise: { r: 0, g: 206, b: 209 }, darkviolet: { r: 148, g: 0, b: 211 }, deeppink: { r: 255, g: 20, b: 147 }, deepskyblue: { r: 0, g: 191, b: 255 }, dimgray: { r: 105, g: 105, b: 105 }, dimgrey: { r: 105, g: 105, b: 105 }, dodgerblue: { r: 30, g: 144, b: 255 }, firebrick: { r: 178, g: 34, b: 34 }, floralwhite: { r: 255, g: 250, b: 240 }, forestgreen: { r: 34, g: 139, b: 34 }, fuchsia: { r: 255, g: 0, b: 255 }, gainsboro: { r: 220, g: 220, b: 220 }, ghostwhite: { r: 248, g: 248, b: 255 }, gold: { r: 255, g: 215, b: 0 }, goldenrod: { r: 218, g: 165, b: 32 }, gray: { r: 128, g: 128, b: 128 }, grey: { r: 128, g: 128, b: 128 }, green: { r: 0, g: 128, b: 0 }, greenyellow: { r: 173, g: 255, b: 47 }, honeydew: { r: 240, g: 255, b: 240 }, hotpink: { r: 255, g: 105, b: 180 }, indianred: { r: 205, g: 92, b: 92 }, indigo: { r: 75, g: 0, b: 130 }, ivory: { r: 255, g: 255, b: 240 }, khaki: { r: 240, g: 230, b: 140 }, lavender: { r: 230, g: 230, b: 250 }, lavenderblush: { r: 255, g: 240, b: 245 }, lawngreen: { r: 124, g: 252, b: 0 }, lemonchiffon: { r: 255, g: 250, b: 205 }, lightblue: { r: 173, g: 216, b: 230 }, lightcoral: { r: 240, g: 128, b: 128 }, lightcyan: { r: 224, g: 255, b: 255 }, lightgoldenrodyellow: { r: 250, g: 250, b: 210 }, lightgray: { r: 211, g: 211, b: 211 }, lightgrey: { r: 211, g: 211, b: 211 }, lightgreen: { r: 144, g: 238, b: 144 }, lightpink: { r: 255, g: 182, b: 193 }, lightsalmon: { r: 255, g: 160, b: 122 }, lightseagreen: { r: 32, g: 178, b: 170 }, lightskyblue: { r: 135, g: 206, b: 250 }, lightslategray: { r: 119, g: 136, b: 153 }, lightslategrey: { r: 119, g: 136, b: 153 }, lightsteelblue: { r: 176, g: 196, b: 222 }, lightyellow: { r: 255, g: 255, b: 224 }, lime: { r: 0, g: 255, b: 0 }, limegreen: { r: 50, g: 205, b: 50 }, linen: { r: 250, g: 240, b: 230 }, magenta: { r: 255, g: 0, b: 255 }, maroon: { r: 128, g: 0, b: 0 }, mediumaquamarine: { r: 102, g: 205, b: 170 }, mediumblue: { r: 0, g: 0, b: 205 }, mediumorchid: { r: 186, g: 85, b: 211 }, mediumpurple: { r: 147, g: 112, b: 219 }, mediumseagreen: { r: 60, g: 179, b: 113 }, mediumslateblue: { r: 123, g: 104, b: 238 }, mediumspringgreen: { r: 0, g: 250, b: 154 }, mediumturquoise: { r: 72, g: 209, b: 204 }, mediumvioletred: { r: 199, g: 21, b: 133 }, midnightblue: { r: 25, g: 25, b: 112 }, mintcream: { r: 245, g: 255, b: 250 }, mistyrose: { r: 255, g: 228, b: 225 }, moccasin: { r: 255, g: 228, b: 181 }, navajowhite: { r: 255, g: 222, b: 173 }, navy: { r: 0, g: 0, b: 128 }, oldlace: { r: 253, g: 245, b: 230 }, olive: { r: 128, g: 128, b: 0 }, olivedrab: { r: 107, g: 142, b: 35 }, orange: { r: 255, g: 165, b: 0 }, orangered: { r: 255, g: 69, b: 0 }, orchid: { r: 218, g: 112, b: 214 }, palegoldenrod: { r: 238, g: 232, b: 170 }, palegreen: { r: 152, g: 251, b: 152 }, paleturquoise: { r: 175, g: 238, b: 238 }, palevioletred: { r: 219, g: 112, b: 147 }, papayawhip: { r: 255, g: 239, b: 213 }, peachpuff: { r: 255, g: 218, b: 185 }, peru: { r: 205, g: 133, b: 63 }, pink: { r: 255, g: 192, b: 203 }, plum: { r: 221, g: 160, b: 221 }, powderblue: { r: 176, g: 224, b: 230 }, purple: { r: 128, g: 0, b: 128 }, rebeccapurple: { r: 102, g: 51, b: 153 }, red: { r: 255, g: 0, b: 0 }, rosybrown: { r: 188, g: 143, b: 143 }, royalblue: { r: 65, g: 105, b: 225 }, saddlebrown: { r: 139, g: 69, b: 19 }, salmon: { r: 250, g: 128, b: 114 }, sandybrown: { r: 244, g: 164, b: 96 }, seagreen: { r: 46, g: 139, b: 87 }, seashell: { r: 255, g: 245, b: 238 }, sienna: { r: 160, g: 82, b: 45 }, silver: { r: 192, g: 192, b: 192 }, skyblue: { r: 135, g: 206, b: 235 }, slateblue: { r: 106, g: 90, b: 205 }, slategray: { r: 112, g: 128, b: 144 }, slategrey: { r: 112, g: 128, b: 144 }, snow: { r: 255, g: 250, b: 250 }, springgreen: { r: 0, g: 255, b: 127 }, steelblue: { r: 70, g: 130, b: 180 }, tan: { r: 210, g: 180, b: 140 }, teal: { r: 0, g: 128, b: 128 }, thistle: { r: 216, g: 191, b: 216 }, tomato: { r: 255, g: 99, b: 71 }, turquoise: { r: 64, g: 224, b: 208 }, violet: { r: 238, g: 130, b: 238 }, wheat: { r: 245, g: 222, b: 179 }, white: { r: 255, g: 255, b: 255 }, whitesmoke: { r: 245, g: 245, b: 245 }, yellow: { r: 255, g: 255, b: 0 }, yellowgreen: { r: 154, g: 205, b: 50 } }, qs = function () { function t(t) { this._value = t; } return Object.defineProperty(t.prototype, "rgb", { get: function get() { return this._value; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "hex", { get: function get() { return this._value ? Re(this._value) : "none"; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "rgba", { get: function get() { return this._value ? Be(this._value) : "none"; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "alpha", { get: function get() { return null != this._value && null != this._value.a ? this._value.a : 1; }, set: function set(t) { this._value && (this._value.a = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "lightColor", { get: function get() { return this._lightColor || (this._lightColor = new t({ r: 255, g: 255, b: 255 })), this._lightColor; }, set: function set(t) { this._lightColor = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "darkColor", { get: function get() { return this._darkColor || (this._darkColor = new t({ r: 0, g: 0, b: 0 })), this._darkColor; }, set: function set(t) { this._darkColor = t; }, enumerable: !0, configurable: !0 }), t.prototype.toString = function () { return this.alpha < 1 ? this.rgba : this.hex; }, t.prototype.lighten = function (e) { return new t(We(this.rgb, e)); }, t.prototype.brighten = function (e) { return new t(Ye(this.rgb, e)); }, t.prototype.saturate = function (e) { return new t(Ue(this.rgb, e)); }, Object.defineProperty(t.prototype, "alternative", { get: function get() { if (null != this.rgb) return $e(this.rgb) ? this.darkColor : this.lightColor; throw new Error("Color does not exist"); }, enumerable: !0, configurable: !0 }), t; }(), $s = function () { function t() { this._disposed = !1, this._disposers = [], this.className = "BaseObject"; } return t.prototype.debug = function () {}, Object.defineProperty(t.prototype, "uid", { get: function get() { return this._uid || (this._uid = Fs.getUniqueId(), Fs.map.setKey(this._uid, this)), this._uid; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "id", { get: function get() { return this._id; }, set: function set(t) { this._id = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "map", { get: function get() { return this._map || (this._map = new Ds()), this._map; }, enumerable: !0, configurable: !0 }), t.prototype.applyTheme = function () { var t = this; if (Fs) { var e = this.getCurrentThemes(); e && mt(e, function (e, i) { e(t); }); } }, Object.defineProperty(t.prototype, "themes", { get: function get() { return this._themes; }, set: function set(t) { this._themes = t; }, enumerable: !0, configurable: !0 }), t.prototype.getCurrentThemes = function () { return this.themes || Fs.themes; }, t.prototype.isDisposed = function () { return this._disposed; }, t.prototype.dispose = function () { if (!this._disposed) { this._disposed = !0; var t = this._disposers; for (this._disposers = null; 0 !== t.length;) t.shift().dispose(); this.clearCache(), this.clonedFrom && this.clonedFrom.clones.removeValue(this); var e = this._uid; null != e && Fs.map.removeKey(e); } }, t.prototype.addDisposer = function (t) { this._disposers.push(t); }, t.prototype.removeDispose = function (t) { if (!this._disposed) { var e = ft(this._disposers, t); e > -1 && this._disposers.splice(e, 1); } t.dispose(); }, t.prototype.clone = function (t) { t || (t = "clone-" + Fs.getUniqueId()); var e = new this.constructor(); return e.cloneId = t, e.copyFrom(this), e; }, Object.defineProperty(t.prototype, "clones", { get: function get() { return this._clones || (this._clones = new Ns()), this._clones; }, enumerable: !0, configurable: !0 }), t.prototype.copyFrom = function (t) { t.clones.push(this), this.clonedFrom = t; }, Object.defineProperty(t.prototype, "className", { get: function get() { return this._className; }, set: function set(t) { this._className = t; }, enumerable: !0, configurable: !0 }), t.prototype.setCache = function (t, e, i) { As.set(this.uid, t, e, i); }, t.prototype.getCache = function (t, e) { return void 0 === e && (e = void 0), As.get(this.uid, t, e); }, t.prototype.clearCache = function () { As.clear(this.uid); }, t.prototype.setTimeout = function (t, e) { var i = this, n = setTimeout(function () { i.removeDispose(r), t(); }, e), r = new fs(function () { clearTimeout(n); }); return this._disposers.push(r), r; }, t.prototype.setInterval = function (t, e) { var i = this, n = setInterval(function () { i.removeDispose(r), t(); }, e), r = new fs(function () { clearTimeout(n); }); return this._disposers.push(r), r; }, Object.defineProperty(t.prototype, "config", { set: function set(t) { try { this.processConfig(t); } catch (t) { this.raiseCriticalError(t); } }, enumerable: !0, configurable: !0 }), t.prototype.processConfig = function (e) { var i = this; if (e) { var n = this; if (te(e, function (e, r) { var s, o = r; if ("callback" == e && "function" == typeof r && r.call(n), i.hasProperty(e)) { if (!V(o) || !S(o.type) || V(n[e]) && S(n[e].className) && !o.forceCreate && n[e].className == o.type ? s = n[e] : (s = i.createClassInstance(o.type)) ? n[e] = s : s = n[e], s instanceof Ks) i.processAdapters(s, o);else if (s instanceof Cs) i.processEvents(s, o);else if ("locale" == e && T(o)) document["am4lang_" + o] && (n[e] = document["am4lang_" + o]);else if ("parent" == e && T(o)) { var a = i.map.getKey(o); if (!a) throw Error('Non-existing ID in config: "' + o + '".'); n[e] = a; } else if (i.asIs(e)) n[e] = o;else if (i.asFunction(e) && T(o)) { if (!S(Fs.registeredClasses[o])) throw Error("Invalid easing function: " + o); n[e] = Fs.registeredClasses[o]; } else if (o instanceof t) n[e] = o;else if (s instanceof t) s.config = o;else if (s instanceof Hs || s instanceof Ys || s instanceof zs) { if (F(o)) s instanceof Hs ? i.processListTemplate(o, s) : i.processOrderedTemplate(o, s);else if (V(o)) if (o instanceof t) s.template = o;else { var l = void 0; l = S(o.template) ? o.template : o, s.template instanceof t ? s.template.config = l : Qt(l, function (e, n) { var r = s.template[e]; r instanceof Ks ? i.processAdapters(r, n) : r instanceof Cs ? i.processEvents(r, n) : r instanceof ks ? i.processDictionaryTemplate(r, n) : s.template[e] instanceof t ? s.template[e].config = n : V(n) && S(n.type) ? (r = i.createClassInstance(n.type)) ? (r instanceof t && (r.config = n), s.template[e] = r) : s.template[e] = n : r instanceof Ns ? i.processList(n, r) : s.template[e] = i.maybeColorOrPercent(n); }), S(o.values) && (s instanceof Hs ? i.processListTemplate(o.values, s) : i.processOrderedTemplate(o.values, s)); } } else s instanceof Ns ? "children" == e ? i.processList(o, s, i) : i.processList(o, s) : s instanceof ks ? i.processDictionaryTemplate(s, o) : s instanceof Ds ? i.processDictionary(s, o) : s instanceof qs || s instanceof hs ? n[e] = i.maybeColorOrPercent(o) : V(s) && V(o) ? oe(o, s) : (o = i.maybeColorOrPercent(o), n[e] = o); } else i.isReserved(e) || (n[e] = o); }, this.configOrder), this.processingErrors.length) { var r = this.processingErrors.join("\n"); throw this._processingErrors = [], Error(r); } } }, t.prototype.maybeColorOrPercent = function (t) { if (T(t)) { if (t.match(/^[\-]?[0-9.]+\%$/)) return h(w(t)); if (t.match(/^\#[0-9abcdef]{3,}$/i)) return Je(t); } return t; }, t.prototype.processAdapters = function (t, e) { var i = this; F(e) ? mt(e, function (e, n) { t.add(e.key, e.callback, e.priority || 0, i); }) : V(e) && Qt(e, function (e, i) { t.has(e, i) || t.add(e, i); }); }, t.prototype.processEvents = function (t, e) { var i = this; V(e) ? Qt(e, function (e, i) { t.has(e, i) || t.on(e, i); }) : F(e) && mt(e, function (e, n) { t.on(e.type, e.callback, i); }); }, t.prototype.processDictionaryTemplate = function (e, i) { V(i) && Qt(i, function (i, n) { var r; (r = "template" == i ? e.template : e.hasKey(i) ? e.getKey(i) : e.create(i)) instanceof t ? r.config = n : V(r) && V(n) ? oe(n, r) : r.setKey(i, n); }); }, t.prototype.processDictionary = function (t, e) { V(e) && Qt(e, function (e, i) { t.setKey(e, i); }); }, t.prototype.processListTemplate = function (e, i) { var n = this; for (mt(e, function (e, r) { var s, o = n.getConfigEntryType(e); if (i.hasIndex(r) && !e.forceCreate) s = i.getIndex(r);else { if (e instanceof t) return void i.push(e); s = o ? i.create(o) : i.create(); } e === s || V(e) && (s instanceof t ? s.config = e : V(s) && V(e) ? oe(e, s) : i.setIndex(i.indexOf(s), e)); }); e.length > i.length;) i.pop(); }, t.prototype.processOrderedTemplate = function (e, i) { var n = this; mt(e, function (e, r) { var s, o = n.getConfigEntryType(e); s = o ? i.create(o) : i.create(), V(e) && (s instanceof t ? s.config = e : V(s) && V(e) ? oe(e, s) : i.insert(e)); }); }, t.prototype.processList = function (e, i, n) { var r = this; F(e) || (e = [e]); var s = i.length; for (mt(e, function (e, o) { if (V(e)) { var a = void 0; if (o < s && !e.forceCreate) a = i.getIndex(o);else { if (e instanceof t) return void i.push(e); a = r.createEntryInstance(e), n ? a.parent = n : i.push(a); } a instanceof t ? a.config = e : V(a) && V(e) && oe(e, a); } else i.hasIndex(o) ? i.setIndex(o, e) : i.push(e); }); e.length > i.length;) i.pop(); }, t.prototype.configOrder = function (t, e) { return t == e ? 0 : "language" == t ? -1 : "language" == e ? 1 : 0; }, t.prototype.asIs = function (t) { return -1 != ft(["locale"], t); }, t.prototype.asFunction = function (t) { return !1; }, t.prototype.createClassInstance = function (t) { if (S(Fs.registeredClasses[t])) return new Fs.registeredClasses[t](); }, t.prototype.createEntryInstance = function (t) { var e; return S(t.type) && (e = this.createClassInstance(t.type)), e || t; }, t.prototype.getConfigEntryType = function (t) { if (S(t.type)) { if (S(Fs.registeredClasses[t.type])) return Fs.registeredClasses[t.type]; throw Error('Invalid type: "' + t.type + '".'); } }, t.prototype.hasProperty = function (t) { return t in this; }, t.prototype.isReserved = function (t) { return -1 !== ["type", "forceCreate"].indexOf(t); }, Object.defineProperty(t.prototype, "processingErrors", { get: function get() { return this._processingErrors || (this._processingErrors = []), this._processingErrors; }, enumerable: !0, configurable: !0 }), t; }(), Js = function (t) { function e() { var e = t.call(this) || this; return e.className = "BaseObjectEvents", e; } return n(e, t), Object.defineProperty(e.prototype, "events", { get: function get() { return this._eventDispatcher || (this._eventDispatcher = new Cs(), this._disposers.push(this._eventDispatcher)), this._eventDispatcher; }, enumerable: !0, configurable: !0 }), e.prototype.dispatch = function (t, e) { this._eventDispatcher && this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatch(t, { type: t, target: this })) : this.events.dispatch(t, { type: t, target: this })); }, e.prototype.dispatchImmediately = function (t, e) { this._eventDispatcher && this.events.isEnabled(t) && (e ? (e.type = t, e.target = e.target || this, this.events.dispatchImmediately(t, e)) : this.events.dispatchImmediately(t, { type: t, target: this })); }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), e._eventDispatcher && this.events.copyFrom(e._eventDispatcher); }, e; }($s), Qs = "px", to = "string", eo = "number", io = "date", no = "duration", ro = "__§§§__", so = "__§§§§__", oo = /^([a-zA-Z][a-zA-Z0-9\+\.\-]*:)?(?:(\/\/)([^\@]+\@)?([^\/\?\#\:]*)(\:[0-9]+)?)?([^\?\#]*)(\?[^\#]*)?(\#.*)?$/; Fs.registeredClasses["ease.linear"] = sn, Fs.registeredClasses["ease.quadIn"] = on, Fs.registeredClasses["ease.quadOut"] = an, Fs.registeredClasses["ease.quadInOut"] = ln, Fs.registeredClasses["ease.polyIn"] = hn, Fs.registeredClasses["ease.polyOut"] = un, Fs.registeredClasses["ease.polyInOut"] = pn, Fs.registeredClasses["ease.polyIn3"] = cn, Fs.registeredClasses["ease.polyOut3"] = dn, Fs.registeredClasses["ease.polyInOut3"] = fn, Fs.registeredClasses["ease.expIn"] = gn, Fs.registeredClasses["ease.expOut"] = yn, Fs.registeredClasses["ease.expInOut"] = mn, Fs.registeredClasses["ease.sinIn"] = vn, Fs.registeredClasses["ease.sinOut"] = bn, Fs.registeredClasses["ease.sinInOut"] = xn, Fs.registeredClasses["ease.cubicIn"] = _n, Fs.registeredClasses["ease.cubicOut"] = Pn, Fs.registeredClasses["ease.cubicInOut"] = wn, Fs.registeredClasses["ease.circleIn"] = Cn, Fs.registeredClasses["ease.circleOut"] = On, Fs.registeredClasses["ease.circleInOut"] = Sn; var ao = 4 / 11, lo = 6 / 11, ho = 8 / 11, uo = .75, po = 9 / 11, co = 10 / 11, fo = .9375, go = 21 / 22, yo = 63 / 64, mo = 1 / ao / ao; Fs.registeredClasses["ease.bounceIn"] = In, Fs.registeredClasses["ease.bounceOut"] = Dn, Fs.registeredClasses["ease.bounceInOut"] = kn; var vo = 2 * Math.PI, bo = 1, xo = .3 / vo, _o = Math.asin(1 / bo) * xo; Fs.registeredClasses["ease.elasticIn"] = Tn, Fs.registeredClasses["ease.elasticOut"] = An, Fs.registeredClasses["ease.elasticInOut"] = Vn; var Po = function (t) { function e() { var e = t.call(this) || this; return e.transitionDuration = 0, e.transitionEasing = Pn, e.properties = {}, e.propertyFields = {}, e.filters = new Ns(), e.isTemplate = !1, e.className = "SpriteState", e._disposers.push(new Bs(e.filters)), e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "adapter", { get: function get() { var t = this; return this._adapterO || (this._adapterO = new Ks(this), this._adapterO.events.on("inserted", function (e) { t[e.newValue.key] = t[e.newValue.key]; }, void 0, !1), this._adapterO.events.on("removed", function (e) { t[e.newValue.key] = t[e.newValue.key]; }, void 0, !1)), this._adapterO; }, enumerable: !0, configurable: !0 }), e.prototype.getPropertyValue = function (t) { var e = this.properties[t], i = this.sprite; if (i) { var n = this.propertyFields[t]; if (S(n) && i.dataItem && (e = i.dataItem.dataContext[n]), S(e)) this._adapterO && (e = this._adapterO.apply(t, e));else { var r = i.getPropertyValue(t); (e = this._adapterO ? this._adapterO.apply(t, r) : r) == r && (e = void 0); } } return e; }, e.prototype.copyFrom = function (t) { t && t != this && (this.transitionDuration = t.transitionDuration, this.transitionEasing = t.transitionEasing, ni(t.properties, this.properties), ni(t.propertyFields, this.propertyFields), this.filters.copyFrom(t.filters), t._adapterO && this.adapter.copyFrom(t._adapterO)); }, Object.defineProperty(e.prototype, "allValues", { get: function get() { var t = this, e = {}; return Qt(this.properties, function (i, n) { e[i] = t.getPropertyValue(i); }), this._adapterO && Qt(this._adapterO.keys(), function (i, n) { var r = t.getPropertyValue(n); e[n] = r; }), Qt(this.propertyFields, function (i) { var n = t.getPropertyValue(i); e[i] = n; }), e; }, enumerable: !0, configurable: !0 }), e.prototype.reset = function () { this.properties = {}, this.filters.clear(); }, e.prototype.processConfig = function (e) { S(e) && S(e.properties) && Qt(e.properties, function (t, i) { T(i) && (i.match(/^[0-9.\-]+\%$/) ? e.properties[t] = h(w(i)) : i.match(/^\#[0-9abcdef]{3,}$/i) && (e.properties[t] = ei(i))); }), t.prototype.processConfig.call(this, e); }, e.prototype.asFunction = function (e) { return "transitionEasing" == e || t.prototype.asIs.call(this, e); }, e; }($s); Fs.registeredClasses.SpriteState = Po; var wo, Co = function (t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e._interactionEvents = new Ds(), e; } return n(e, t), e.prototype._dispatchSpriteEvent = function (t) { if (!this.target.disabled && !this.target.isTemplate && this.target.events.isEnabled(t.type)) { var e = ie(t, { target: this.target }); this.target.events.dispatchImmediately(e.type, e); } }, e.prototype._dispatchSpritePointEvent = function (t) { if (!this.target.disabled && !this.target.isTemplate && this.target.events.isEnabled(t.type)) { var e = ie(t, { target: this.target, spritePoint: Ki(t.point, this.target), svgPoint: this.target.getSvgPoint(t.point) }); this.target.events.dispatchImmediately(e.type, e); } }, e.prototype._addInteractionObjectEvent = function (t, e, i, n) { var r = this; return this._interactionEvents.insertKeyIfEmpty(t, function () { var s = r.target.interactions.events.on(t, e, i, n); return new ms(function () { r._interactionEvents.removeKey(t), s.dispose(); }); }).increment(); }, e.prototype._on = function (e, i, n, r, s, o) { var a = t.prototype._on.call(this, e, i, n, r, s, o), l = [a.disposer]; switch (i) { case "hit": case "track": case "doublehit": case "wheel": case "wheelup": case "wheeldown": case "wheelleft": case "wheelright": l.push(this._addInteractionObjectEvent(i, this._dispatchSpritePointEvent, this, s)); break; case "rightclick": case "down": case "up": case "drag": case "dragged": case "dragstart": case "dragstop": case "over": case "out": case "swipe": case "swipeleft": case "swiperight": case "resize": case "focus": case "blur": case "toggled": l.push(this._addInteractionObjectEvent(i, this._dispatchSpriteEvent, this, s)); } switch (i) { case "hit": case "doublehit": case "rightclick": case "down": case "up": this.target.clickable = !0; break; case "toggled": this.target.togglable = !0; break; case "drag": case "dragstart": case "dragstop": this.target.draggable = !0; break; case "track": this.target.trackable = !0; break; case "resize": this.target.resizable = !0; break; case "swipe": case "swipeleft": case "swiperight": this.target.swipeable = !0; break; case "wheel": case "wheelup": case "wheeldown": case "wheelleft": case "wheelright": this.target.wheelable = !0; break; case "over": this.target.hoverable = !0; case "out": this.target.hoverable = !0; break; case "focus": case "blur": this.target.focusable = !0; } return a.disposer = new gs(l), a; }, e; }(Os), Oo = function () { function t() {} return t.opacity = 1, t.strokeOpacity = 1, t.strokeWidth = 1, t.fillOpacity = 1, t.fill = Je("#000000"), t.stroke = Je("#000000"), t.focusable = void 0, t.tabindex = 0, t; }(), So = function () { function t(t) { this._disposer = new fs(function () { for (; 0 !== t.length;) t[0].dispose(); }); } return t.prototype.isDisposed = function () { return this._disposer.isDisposed(); }, t.prototype.dispose = function () { this._disposer.dispose(); }, t; }(), Io = function (t) { function e(e, i, n, r) { var s = t.call(this) || this; return s.duration = 0, s.easing = sn, s.progress = 0, s._loop = 0, s._pause = !1, s._delayTimeout = null, s._time = 0, s._isFinished = !1, s.className = "Animation", s.object = e, s.animationOptions = Tt(i), s.duration = n, r && (s.easing = r), s.applyTheme(), s; } return n(e, t), e.prototype.debug = function () {}, e.prototype.dispose = function () { t.prototype.dispose.call(this), this.pause(); }, e.prototype.delay = function (t) { var e = this; if (t > 0) { this.pause(), It(this.object.animations, this); var i = setTimeout(function () { e._delayTimeout = null, e.start(); }, t); this._delayTimeout = new fs(function () { clearTimeout(i); }); } return this; }, e.prototype._start = function () { this._isFinished = !1, this._delayTimeout && (this.removeDispose(this._delayTimeout), this._delayTimeout = null), this.stopSameAnimations(), this._pause = !1, It(Ls.animations, this), It(this.object.animations, this), Ls.requestFrame(); }, e.prototype.start = function () { this._start(), this._startTime = Date.now(), this._time = 0, this.staticOptions = []; for (var t = this.animationOptions.length - 1; t >= 0; t--) { var e = this.animationOptions[t]; if (S(e.from) || (e.childObject ? e.from = e.childObject[e.property] : (e.from = this.object[e.property], S(e.from) || (e.from = Oo[e.property]))), e.from == e.to) St(this.animationOptions, e);else if (S(e.from)) { if (A(e.to)) { if (e.updateMethod = Mn, e.from instanceof hs) { var i = this.object[En(e.property, "pixel")]; isNaN(i) ? (this.staticOptions.push(e), St(this.animationOptions, e)) : e.from = i; } else isNaN(e.from) && (this.staticOptions.push(e), St(this.animationOptions, e)); } else e.to instanceof qs ? e.from ? e.updateMethod = Ln : (this.staticOptions.push(e), St(this.animationOptions, e)) : e.to instanceof hs ? (e.updateMethod = jn, isNaN(e.from) || (i = this.object[En(e.property, "relative")], isNaN(i) || (e.from = h(100 * i)))) : (this.staticOptions.push(e), St(this.animationOptions, e)); } else this.staticOptions.push(e), St(this.animationOptions, e); } if (this.applyStaticOptions(), this.events.isEnabled("animationstarted")) { var n = { type: "animationstarted", target: this, progress: this.progress }; this.events.dispatchImmediately("animationstarted", n); } return this.update(), 0 === this.duration && this.end(), this; }, e.prototype.loop = function (t) { return A(t) || (t = 1 / 0), this._loop = t, this; }, e.prototype.pause = function () { return this._pause = !0, this._delayTimeout && (this.removeDispose(this._delayTimeout), this._delayTimeout = null), St(Ls.animations, this), St(this.object.animations, this), this; }, e.prototype.resume = function () { return this._start(), this._startTime = Date.now() - this._time, this; }, e.prototype.end = function () { if (0 == this._loop && this.pause(), this.setProgress(1), this.applyStaticOptions(), this.events.isEnabled("animationended")) { var t = { type: "animationended", target: this, progress: this.progress }; this.events.dispatchImmediately("animationended", t); } return this._loop > 0 ? (this._loop--, this.start()) : (this.stop(), this._isFinished = !0), this; }, e.prototype.kill = function () { this.pause(), this._isFinished = !0; }, e.prototype.isFinished = function () { return this._isFinished; }, e.prototype.applyStaticOptions = function () { var t = this; mt(this.staticOptions, function (e) { e.childObject ? e.childObject[e.property] = 1 == t.progress ? e.to : e.from : t.object[e.property] = 1 == t.progress ? e.to : e.from; }); }, e.prototype.stop = function (t) { if (this.pause(), !t && this.events.isEnabled("animationstopped")) { var e = { type: "animationstopped", target: this, progress: this.progress }; this.events.dispatchImmediately("animationstopped", e); } return this; }, e.prototype.setProgress = function (t) { var e = this; if (this._time = this.duration * t, mt(this.animationOptions, function (i) { if (i.updateMethod && S(i.from)) { var n = i.updateMethod(t, i.from, i.to); i.childObject ? i.childObject[i.property] = n : e.object[i.property] = n; } }), this.progress = t, this.events.isEnabled("animationprogress")) { var i = { type: "animationprogress", target: this, progress: this.progress }; this.events.dispatchImmediately("animationprogress", i); } Ls.requestFrame(); }, e.prototype.update = function () { if (!this._pause) { var t = void 0; this._time = R(Date.now() - this._startTime, 0, this.duration); var e = this._time / this.duration; t = this.easing(e), (0 == this.duration || !A(t) || e >= 1) && (t = 1), this.setProgress(t), 1 == j(this._time / this.duration, 6) && this.end(); } return this; }, Object.defineProperty(e.prototype, "delayed", { get: function get() { return !!this._delayTimeout; }, enumerable: !0, configurable: !0 }), e.prototype.stopSameAnimations = function () { var t = this; mt(Vt(this.object.animations), function (e) { if (e !== t && !e.delayed) { var i = []; mt(t.animationOptions, function (t) { mt(e.animationOptions, function (n) { t.property == n.property && t.childObject == n.childObject && (i.push(n), 0 == e.animationOptions.length && e.kill()); }); }), mt(i, function (t) { St(e.animationOptions, t); }); } }); }, e.prototype.asFunction = function (e) { return "easing" == e || t.prototype.asIs.call(this, e); }, e; }(Js), Do = "http://www.w3.org/2000/svg", ko = "http://www.w3.org/2000/xmlns/", To = "http://www.w3.org/1999/xlink", Ao = function (t) { function e(e, i) { var n = t.call(this, function () { var t = Jn(), e = ft(t.cssRules, n._rule); if (-1 === e) throw new Error("Could not dispose StyleRule"); t.deleteRule(e); }) || this; return n._rule = function (t) { var e = Jn(), i = e.cssRules.length; return e.insertRule(t + "{}", i), e.cssRules[i]; }(e), Qt(i, function (t, e) { n.setStyle(t, e); }), n; } return n(e, t), Object.defineProperty(e.prototype, "selector", { get: function get() { return this._rule.selectorText; }, set: function set(t) { this._rule.selectorText = t; }, enumerable: !0, configurable: !0 }), e.prototype._setVendorPrefixName = function (t, e) { var i = this._rule.style; i.setProperty("-webkit-" + t, e, ""), i.setProperty("-moz-" + t, e, ""), i.setProperty("-ms-" + t, e, ""), i.setProperty("-o-" + t, e, ""), i.setProperty(t, e, ""); }, e.prototype.setStyle = function (t, e) { "transition" === t ? this._setVendorPrefixName(t, e) : this._rule.style.setProperty(t, e, ""); }, e; }(fs), Vo = 0, Fo = function (t) { function e(e, i) { var n = this, r = S(i) ? i : "__style_" + ++Vo + "__"; return (n = t.call(this, "." + r, e) || this)._className = r, n; } return n(e, t), Object.defineProperty(e.prototype, "className", { get: function get() { return this._className; }, set: function set(t) { this._className = t, this.selector = "." + t; }, enumerable: !0, configurable: !0 }), e.prototype.toString = function () { return this._className; }, e; }(Ao), Mo = function () { function t(t) { this._isDisposed = !1, this._x = 0, this._y = 0, this._rotation = 0, this._scale = 1, this.node = "string" == typeof t ? document.createElementNS(Do, t) : t; } return t.prototype.removeNode = function () { this.node && this.node.parentNode && this.node.parentNode.removeChild(this.node); }, Object.defineProperty(t.prototype, "transformString", { get: function get() { if (this.node) return this._transformString; }, enumerable: !0, configurable: !0 }), t.prototype.transform = function () { var t = "translate(" + this._x + "," + this._y + ")"; 1 != this._scale && (t += (t ? " " : "") + "scale(" + this._scale + ")"), 0 != this._rotation && (t += (t ? " " : "") + "rotate(" + this._rotation + ")"), this._transformString = t, this.node.setAttribute("transform", t); }, t.prototype.getBBox = function () { var t = { width: 0, height: 0, x: 0, y: 0 }; if (this.node && this.node.parentNode) try { var e = this.node.getBBox(); t.x = e.x, t.y = e.y, t.width = e.width, t.height = e.height; } catch (t) {} return t; }, t.prototype.moveTo = function (t) { if (t) { var e = t.x, i = t.y; this._x == e && this._y == i || (this._x = e, this._y = i, this.transform()); } }, Object.defineProperty(t.prototype, "content", { get: function get() { return this.node.innerHTML || ""; }, set: function set(t) { this.node.innerHTML = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "textContent", { get: function get() { return this.node.textContent || ""; }, set: function set(t) { this.node.textContent = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "x", { get: function get() { return this._x; }, set: function set(t) { this._x != t && (this._x = t, this.transform()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "y", { get: function get() { return this._y; }, set: function set(t) { this._y != t && (this._y = t, this.transform()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "rotation", { get: function get() { return this._rotation; }, set: function set(t) { this._rotation != t && (this._rotation = t, this.transform()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "scale", { get: function get() { return this._scale; }, set: function set(t) { this._scale != t && (this._scale = t, this.transform()); }, enumerable: !0, configurable: !0 }), t.prototype.removeAttr = function (t) { this.node.removeAttribute(t); }, t.prototype.attr = function (t) { var e = this; return Qt(t, function (t, i) { S(i) ? e.node.setAttribute(t, i) : e.node.removeAttribute(t); }), this; }, t.prototype.getAttr = function (t) { return this.node.getAttribute(t); }, t.prototype.attrNS = function (t, e, i) { return this.node.setAttributeNS(t, e, i), this; }, t.prototype.getAttrNS = function (t, e) { return this.node.getAttributeNS(t, e); }, t.prototype.removeStyle = function (t) { delete this.node.style[t]; }, t.prototype.getStyle = function (t) { return this.node.style[t]; }, t.prototype.addStyle = function (t) { var e = this; return Qt(t, function (t, i) { S(i) ? e.node.style[t] = i : e.removeStyle(t); }), this; }, t.prototype.addClass = function (t) { Nn(this.node, t); }, t.prototype.removeClass = function (t) { Hn(this.node, t); }, t.prototype.setClass = function (t) { this.node.setAttribute("class", t); }, t.prototype.removeChildNodes = function () { for (; this.node.childNodes.length > 0;) this.node.removeChild(this.node.firstChild); }, t.prototype.isDisposed = function () { return this._isDisposed; }, t.prototype.dispose = function () { this.removeNode(); }, t; }(), jo = function (t) { function e(e) { return t.call(this, e) || this; } return n(e, t), e.prototype.add = function (t) { t && this.node.appendChild(t.node); }, e.prototype.addToBack = function (t) { if (t) { var e = this.node.childNodes[0]; e ? e != t.node && this.node.insertBefore(t.node, e) : this.node.appendChild(t.node); } }, e.prototype.removeElement = function (t) { if (t) try { t.node && t.node.parentNode == this.node && this.node.removeChild(t.node); } catch (t) {} }, e.prototype.hasChild = function (t) { for (var e = 0; e < this.node.childNodes.length; e++) if (this.node.childNodes[e] == t.node) return !0; return !1; }, Object.defineProperty(e.prototype, "content", { get: function get() { return this.node.innerHTML; }, set: function set(t) { this.node.innerHTML = t; }, enumerable: !0, configurable: !0 }), e.prototype.removeChildren = function () { if (this.node.childNodes) for (; this.node.childNodes.length > 0;) { var t = this.node.firstChild; t && t.parentNode && t.parentNode.removeChild(t); } }, e; }(Mo), Lo = new Ds(), Eo = function (t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e._domEvents = {}, e; } return n(e, t), e.prototype._addDOMEvent = function (t, e, i, n) { var r = this; if (!this._domEvents[t]) { var s = function s(t) { i.call(n, e, t); }; this.target.element.addEventListener(t, s, !1), this._domEvents[t] = new ms(function () { delete r._domEvents[t], r.target.element.removeEventListener(t, s, !1); }); } return this._domEvents[t].increment(); }, e.prototype._dispatchKeyboardEvent = function (t, e) { this.target.events.isEnabled(t) && this.target.events.dispatchImmediately(t, { type: t, target: this.target, event: e }); }, e.prototype._on = function (e, i, n, r, s, o) { var a = t.prototype._on.call(this, e, i, n, r, s, o), l = [a.disposer]; switch (i) { case "hit": case "doublehit": case "rightclick": case "down": case "up": this.target.clickable = !0; break; case "drag": case "dragstart": case "dragstop": this.target.draggable = !0; break; case "track": this.target.trackable = !0; break; case "resize": this.target.resizable = !0; break; case "swipe": case "swipeleft": case "swiperight": this.target.swipeable = !0; break; case "wheel": case "wheelup": case "wheeldown": case "wheelleft": case "wheelright": this.target.wheelable = !0; break; case "over": case "out": this.target.hoverable = !0; break; case "focus": case "blur": case "focusin": case "focusout": this.target.focusable = !0; break; case "keydown": case "keyup": case "keypress": case "input": l.push(this._addDOMEvent(i, i, this._dispatchKeyboardEvent, this)); } return a.disposer = new gs(l), a; }, e; }(Os), Ro = function (t) { function e(e) { var i = t.call(this) || this; return i._eventDispatcher = new Eo(i), i.eventDisposers = new Ds(), i.replacedStyles = new Ds(), i._clickable = !1, i._contextMenuDisabled = !1, i._hoverable = !1, i._trackable = !1, i._draggable = !1, i._swipeable = !1, i._resizable = !1, i._wheelable = !1, i._inert = !1, i._isHover = !1, i._isHoverByTouch = !1, i._isDown = !1, i._isFocused = !1, i._isTouchProtected = !1, i._inertiaOptions = new Ds(), i.inertias = new Ds(), i._hitOptions = {}, i._hoverOptions = {}, i._swipeOptions = {}, i._keyboardOptions = {}, i._mouseOptions = {}, i._cursorOptions = { defaultStyle: [{ property: "cursor", value: "default" }] }, i._disposers.push(i._eventDispatcher), i._element = e, i.className = "InteractionObject", i._disposers.push(new Is(i.inertias)), i._disposers.push(new Is(i.eventDisposers)), i.applyTheme(), i; } return n(e, t), Object.defineProperty(e.prototype, "events", { get: function get() { return this._eventDispatcher; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isHover", { get: function get() { return this._isHover; }, set: function set(t) { this.isHover != t && (this._isHover = t, t ? pr().overObjects.moveValue(this) : pr().overObjects.removeValue(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isHoverByTouch", { get: function get() { return this._isHoverByTouch; }, set: function set(t) { this.isHoverByTouch != t && (this._isHoverByTouch = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "overPointers", { get: function get() { return this._overPointers || (this._overPointers = new Ns()), this._overPointers; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isDown", { get: function get() { return this._isDown; }, set: function set(t) { this.isDown != t && (this._isDown = t, t ? pr().downObjects.moveValue(this) : pr().downObjects.removeValue(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "downPointers", { get: function get() { return this._downPointers || (this._downPointers = new Ns()), this._downPointers; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isFocused", { get: function get() { return this._isFocused; }, set: function set(t) { this.isFocused != t && (this._isFocused = t, pr().focusedObject = t ? this : void 0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isTouchProtected", { get: function get() { return this._isTouchProtected; }, set: function set(t) { this._isTouchProtected != t && (this._isTouchProtected = t, t ? pr().unprepElement(this) : (this.draggable || this.swipeable || this.trackable || this.resizable) && pr().prepElement(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "clickable", { get: function get() { return this._clickable; }, set: function set(t) { this._clickable !== t && (this._clickable = t, pr().processClickable(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "contextMenuDisabled", { get: function get() { return this._contextMenuDisabled; }, set: function set(t) { this._contextMenuDisabled !== t && (this._contextMenuDisabled = t, pr().processContextMenu(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hoverable", { get: function get() { return this._hoverable; }, set: function set(t) { this._hoverable !== t && (this._hoverable = t, pr().processHoverable(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "trackable", { get: function get() { return this._trackable; }, set: function set(t) { this._trackable !== t && (this._trackable = t, pr().processTrackable(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "draggable", { get: function get() { return this._draggable; }, set: function set(t) { this._draggable !== t && (this._draggable = t, pr().processDraggable(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "swipeable", { get: function get() { return this._swipeable; }, set: function set(t) { this._swipeable !== t && (this._swipeable = t, pr().processSwipeable(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "resizable", { get: function get() { return this._resizable; }, set: function set(t) { this._resizable !== t && (this._resizable = t, pr().processResizable(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "wheelable", { get: function get() { return this._wheelable; }, set: function set(t) { this._wheelable !== t && (this._wheelable = t, pr().processWheelable(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "inert", { get: function get() { return this._inert; }, set: function set(t) { this._inert !== t && (this._inert = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "focusable", { get: function get() { return this._focusable; }, set: function set(t) { this._focusable !== t && (this._focusable = t, this._focusable && -1 == this.tabindex && (this._tabindex = 1), pr().processFocusable(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tabindex", { get: function get() { return D(this._tabindex, -1); }, set: function set(t) { this._tabindex !== t && (this._tabindex = t, t > -1 && (this.focusable = !0), pr().processFocusable(this)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "element", { get: function get() { return this._element; }, set: function set(t) { this._element = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "originalPosition", { get: function get() { return this._originalPosition || { x: 0, y: 0 }; }, set: function set(t) { this._originalPosition = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "originalScale", { get: function get() { return D(this._originalScale, 1); }, set: function set(t) { this._originalScale !== t && (this._originalScale = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "originalAngle", { get: function get() { return D(this._originalAngle, 0); }, set: function set(t) { this._originalAngle !== t && (this._originalAngle = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "inertiaOptions", { get: function get() { return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("inertiaOptions", this._inertiaOptions) : this._inertiaOptions; }, set: function set(t) { this._inertiaOptions = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hitOptions", { get: function get() { return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("hitOptions", this._hitOptions) : this._hitOptions; }, set: function set(t) { this._hitOptions = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hoverOptions", { get: function get() { return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("hoverOptions", this._hoverOptions) : this._hoverOptions; }, set: function set(t) { this._hoverOptions = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "swipeOptions", { get: function get() { return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("swipeOptions", this._swipeOptions) : this._swipeOptions; }, set: function set(t) { this._swipeOptions = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "keyboardOptions", { get: function get() { return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("keyboardOptions", this._keyboardOptions) : this._keyboardOptions; }, set: function set(t) { this._keyboardOptions = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "mouseOptions", { get: function get() { return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("mouseOptions", this._mouseOptions) : this._mouseOptions; }, set: function set(t) { this._mouseOptions = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cursorOptions", { get: function get() { return this.sprite && this.sprite._adapterO ? this.sprite._adapterO.apply("cursorOptions", this._cursorOptions) : this._cursorOptions; }, set: function set(t) { this._cursorOptions = t; }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.inertiaOptions = e.inertiaOptions, this.hitOptions = e.hitOptions, this.hoverOptions = e.hoverOptions, this.swipeOptions = e.swipeOptions, this.keyboardOptions = e.keyboardOptions, this.cursorOptions = e.cursorOptions, this.contextMenuDisabled = e.contextMenuDisabled, pr().applyCursorOverStyle(this); }, e.prototype.setEventDisposer = function (t, e, i) { var n = this.eventDisposers.getKey(t); e ? null == n && this.eventDisposers.setKey(t, i()) : null != n && (n.dispose(), this.eventDisposers.removeKey(t)); }, e.prototype.dispose = function () { t.prototype.dispose.call(this); var e = pr(); e.overObjects.removeValue(this), e.downObjects.removeValue(this), e.trackedObjects.removeValue(this), e.transformedObjects.removeValue(this), this.isHover && this.wheelable && e.unlockWheel(), e.focusedObject === this && (e.focusedObject = void 0); }, e; }(Js), Bo = function () { function t(t, e) { this._disposed = !1, this.directionX = 0, this.directionY = 0, this.interaction = t, this.keyboardEvent = e, this._startedOn = new Date().getTime(), pr().processDragStart(t), Ls.animations.push(this), this.update(); } return t.prototype.update = function () { var t = this.interaction, e = pr().getKeyboardOption(t, "speed"), i = pr().getKeyboardOption(t, "accelleration"), n = pr().getKeyboardOption(t, "accellerationDelay"), r = { x: 0, y: 0 }; this.keyboardEvent.shiftKey ? (e *= .5, i = 1) : this.keyboardEvent.ctrlKey && (e *= 2); var s = new Date().getTime() - this._startedOn, o = s - n; if (i > 0 && o > 0) { var a = s / n; s = n, r.x += this.directionX * (e * i * a * o), r.y += this.directionY * (e * i * a * o); } r.x += this.directionX * (e * s), r.y += this.directionY * (e * s), pr().handleTransformMove(t, r, { x: 0, y: 0 }, this.keyboardEvent, !0, !1); }, t.prototype.isDisposed = function () { return this._disposed; }, t.prototype.dispose = function () { this._disposed || (pr().processDragStop(this.interaction), St(Ls.animations, this)); }, t; }(), No = function (t) { function e(e, i, n, r) { var s = t.call(this) || this; return s.animations = [], s.className = "Inertia", s.interaction = e, s.type = i, s.point = n, s.startPoint = r, s._disposers.push(new So(s.animations)), s; } return n(e, t), Object.defineProperty(e.prototype, "x", { get: function get() { return this.point.x; }, set: function set(t) { A(t) && (this.point.x = t, this.handleMove()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "y", { get: function get() { return this.point.y; }, set: function set(t) { A(t) && (this.point.y = t, this.handleMove()); }, enumerable: !0, configurable: !0 }), e.prototype.handleMove = function () { if (this.interaction.events.isEnabled("drag")) { var t = { type: "drag", target: this.interaction, shift: { x: this.x - this.startPoint.x, y: this.y - this.startPoint.y }, startPoint: this.startPoint, point: { x: this.x, y: this.y }, touch: !1 }; this.interaction.events.dispatchImmediately("drag", t); } }, e.prototype.done = function () { this.interaction.inertias.removeKey(this.type), "move" === this.type && pr().processDragStop(this.interaction), this.dispose(); }, e; }($s), Ho = function () { function t() {} return t.prototype.getEventKey = function (t) { var e; switch (t.keyCode || t.which) { case 38: e = "up"; break; case 40: e = "down"; break; case 37: e = "left"; break; case 39: e = "right"; break; case 13: e = "enter"; break; case 27: e = "esc"; break; case 36: e = "home"; break; case 35: e = "end"; break; case 9: e = "tab"; break; case 17: e = "ctrl"; break; case 18: e = "alt"; break; case 16: e = "shift"; break; case 32: e = "space"; break; case 36: e = "home"; break; case 35: e = "end"; break; case 33: e = "pgup"; break; case 34: e = "pgdn"; break; case 45: e = "ins"; break; case 46: e = "del"; break; case 107: e = "plus"; break; case 109: e = "minus"; break; default: e = "other"; } return e; }, t.prototype.isKey = function (t, e) { var i = this.getEventKey(t); return T(e) && (e = [e]), -1 !== e.indexOf(i); }, t.prototype.shiftKey = function (t) { return t.shiftKey; }, t.prototype.ctrlKey = function (t) { return t.ctrlKey; }, t.prototype.altKey = function (t) { return t.altKey; }, t.prototype.metaKey = function (t) { return t.metaKey; }, t; }(), Wo = new Ho(), Xo = { millisecond: 1, second: 1e3, minute: 6e4, hour: 36e5, day: 864e5, week: 6048e5, month: 2592e6, year: 31536e6 }, Yo = function (t) { function e() { var i = t.call(this) || this; return i._globalEventsAdded = !1, i._pointerEvents = { pointerdown: "mousedown", pointerup: "mouseup", pointermove: "mousemove", pointercancel: "mouseup", pointerover: "mouseover", pointerout: "mouseout", wheel: "wheel" }, i._usePointerEventsOnly = !1, i._useTouchEventsOnly = !1, i._addHoverEvents = !0, i._passiveSupported = !1, i._delayedEvents = { out: [] }, i.overObjects = new Ns(), i.downObjects = new Ns(), i.trackedObjects = new Ns(), i.transformedObjects = new Ns(), i.pointers = new Ds(), i.inertiaOptions = new Ds(), i.hitOptions = { doubleHitTime: 300, hitTolerance: 10, noFocus: !0 }, i.hoverOptions = { touchOutBehavior: "leave", touchOutDelay: 1e3 }, i.swipeOptions = { time: 500, verticalThreshold: 75, horizontalThreshold: 30 }, i.keyboardOptions = { speed: .1, accelleration: 1.2, accellerationDelay: 2e3 }, i.mouseOptions = { sensitivity: 1 }, i.className = "Interaction", i.body = i.getInteraction(document.body), i._disposers.push(i.body), window.hasOwnProperty("PointerEvent") ? (i._pointerEvents.pointerdown = "pointerdown", i._pointerEvents.pointerup = "pointerup", i._pointerEvents.pointermove = "pointermove", i._pointerEvents.pointercancel = "pointercancel", i._pointerEvents.pointerover = "pointerover", i._pointerEvents.pointerout = "pointerout") : window.hasOwnProperty("MSPointerEvent") ? (i._pointerEvents.pointerdown = "MSPointerDown", i._pointerEvents.pointerup = "MSPointerUp", i._pointerEvents.pointermove = "MSPointerMove", i._pointerEvents.pointercancel = "MSPointerUp", i._pointerEvents.pointerover = "MSPointerOver", i._pointerEvents.pointerout = "MSPointerOut") : "undefined" != typeof matchMedia && matchMedia("(pointer:fine)").matches ? "ontouchstart" in window && (i._addHoverEvents = !1, i._useTouchEventsOnly = !0) : window.navigator.userAgent.match(/MSIE /) ? i._usePointerEventsOnly = !0 : i._useTouchEventsOnly = !0, "onwheel" in document.createElement("div") ? i._pointerEvents.wheel = "wheel" : S(document.onmousewheel) && (i._pointerEvents.wheel = "mousewheel"), i.inertiaOptions.setKey("move", { time: 100, duration: 500, factor: 1, easing: dn }), i.inertiaOptions.setKey("resize", { time: 100, duration: 500, factor: 1, easing: dn }), i._passiveSupported = e.passiveSupported, i.applyTheme(), i; } return n(e, t), e.prototype.fullFF = function () { return window.navigator.userAgent.match(/Firefox/) && !window.navigator.userAgent.match(/Android/); }, e.prototype.debug = function () {}, e.prototype.addGlobalEvents = function () { var t = this; this._globalEventsAdded || (this._useTouchEventsOnly || (this._disposers.push(Rn(document, this._pointerEvents.pointerdown, function (e) { t.handleGlobalPointerDown(e); })), this._disposers.push(Rn(document, this._pointerEvents.pointermove, function (e) { t.handleGlobalPointerMove(e); })), this._disposers.push(Rn(document, this._pointerEvents.pointerup, function (e) { t.handleGlobalPointerUp(e); })), this._disposers.push(Rn(document, this._pointerEvents.pointercancel, function (e) { t.handleGlobalPointerUp(e, !0); }))), this._usePointerEventsOnly || (this._disposers.push(Rn(document, "touchstart", function (e) { t.handleGlobalTouchStart(e); })), this._disposers.push(Rn(document, "touchmove", function (e) { t.handleGlobalTouchMove(e); })), this._disposers.push(Rn(document, "touchend", function (e) { t.handleGlobalTouchEnd(e); }))), this._disposers.push(Rn(document, "keydown", function (e) { t.handleGlobalKeyDown(e); })), this._disposers.push(Rn(document, "keyup", function (e) { t.handleGlobalKeyUp(e); })), this._globalEventsAdded = !0); }, e.prototype.processClickable = function (t) { this.processTouchable(t); }, e.prototype.processContextMenu = function (t) { t.contextMenuDisabled ? t.eventDisposers.hasKey("contextMenuDisabled") || t.eventDisposers.setKey("contextMenuDisabled", Rn(t.element, "contextmenu", function (t) { t.preventDefault(); })) : t.eventDisposers.hasKey("contextMenuDisabled") && t.eventDisposers.getKey("contextMenuDisabled").dispose(); }, e.prototype.processHoverable = function (t) { var e = this; if (t.hoverable || t.trackable) this.addGlobalEvents(), this.applyCursorOverStyle(t), !t.eventDisposers.hasKey("hoverable") && this._addHoverEvents && t.eventDisposers.setKey("hoverable", new gs([Rn(t.element, this._pointerEvents.pointerout, function (i) { return e.handlePointerOut(t, i); }), Rn(t.element, this._pointerEvents.pointerover, function (i) { return e.handlePointerOver(t, i); })])), t.trackable;else { var i = t.eventDisposers.getKey("hoverable"); null != i && (i.dispose(), t.eventDisposers.removeKey("hoverable")); } this.processTouchable(t); }, e.prototype.processMovable = function (t) { (t.draggable || t.swipeable || t.trackable || t.resizable) && (this.isGlobalElement(t) || t.isTouchProtected || this.prepElement(t), this.applyCursorOverStyle(t)), this.processTouchable(t); }, e.prototype.processTrackable = function (t) { this.processHoverable(t), this.processMovable(t), t.trackable ? this.trackedObjects.moveValue(t) : this.trackedObjects.removeValue(t); }, e.prototype.processDraggable = function (t) { this.processMovable(t); }, e.prototype.processSwipeable = function (t) { this.processMovable(t); }, e.prototype.processResizable = function (t) { this.processMovable(t); }, e.prototype.processWheelable = function (t) { var e = this; if (t.wheelable) t.eventDisposers.hasKey("wheelable") || t.eventDisposers.setKey("wheelable", new gs([Rn(t.element, this._pointerEvents.wheel, function (i) { return e.handleMouseWheel(t, i); }, !!this._passiveSupported && { passive: !1 }), t.events.on("out", function (i) { t.wheelable && e.unlockWheel(); }), t.events.on("over", function (i) { t.wheelable && e.lockWheel(); })]));else { var i = t.eventDisposers.getKey("wheelable"); null != i && (i.dispose(), t.eventDisposers.removeKey("wheelable")); } }, e.prototype.processFocusable = function (t) { var e = this; if (!0 === t.focusable && t.tabindex > -1 && !this._useTouchEventsOnly) t.eventDisposers.hasKey("focusable") || t.eventDisposers.setKey("focusable", new gs([Rn(t.element, "focus", function (i) { return e.handleFocus(t, i); }), Rn(t.element, "blur", function (i) { return e.handleBlur(t, i); }), Rn(t.element, this._pointerEvents.pointerdown, function (i) { return e.handleFocusBlur(t, i); }), Rn(t.element, "touchstart", function (i) { return e.handleFocusBlur(t, i); }, !!this._passiveSupported && { passive: !1 })]));else { var i = t.eventDisposers.getKey("focusable"); null != i && (i.dispose(), t.eventDisposers.removeKey("focusable")); } }, e.prototype.processTouchable = function (t) { var e = this; if (t.clickable || t.hoverable || t.trackable || t.draggable || t.swipeable || t.resizable) this.addGlobalEvents(), t.eventDisposers.hasKey("touchable") || (this._useTouchEventsOnly || this._usePointerEventsOnly ? this._useTouchEventsOnly ? this._usePointerEventsOnly || t.eventDisposers.setKey("touchable", Rn(t.element, "touchstart", function (i) { return e.handleTouchDown(t, i); }, !!this._passiveSupported && { passive: !1 })) : t.eventDisposers.setKey("touchable", Rn(t.element, this._pointerEvents.pointerdown, function (i) { return e.handlePointerDown(t, i); })) : t.eventDisposers.setKey("touchable", new gs([Rn(t.element, this._pointerEvents.pointerdown, function (i) { return e.handlePointerDown(t, i); }), Rn(t.element, "touchstart", function (i) { return e.handleTouchDown(t, i); }, !!this._passiveSupported && { passive: !1 })])));else { var i = t.eventDisposers.getKey("touchable"); null != i && (i.dispose(), t.eventDisposers.removeKey("touchable")); } }, e.prototype.handleFocus = function (t, e) { if (t.focusable) { if (t.isFocused = !0, t.events.isEnabled("focus") && !Ls.isPaused) { var i = { type: "focus", target: t, event: e }; t.events.dispatchImmediately("focus", i); } } else e.preventDefault(); }, e.prototype.handleFocusBlur = function (t, e) { !1 !== t.focusable && this.getHitOption(t, "noFocus") && t.events.once("focus", function () { t.events.disableType("blur"), Yn(), t.sprite && t.sprite.handleBlur(), t.events.enableType("blur"); }); }, e.prototype.handleBlur = function (t, e) { if (t.focusable) { if (t.isFocused = !1, t.events.isEnabled("blur") && !Ls.isPaused) { var i = { type: "blur", target: t, event: e }; t.events.dispatchImmediately("blur", i); } } else e.preventDefault(); }, e.prototype.handleGlobalKeyDown = function (t) { if (this.focusedObject) if (Wo.isKey(t, "esc")) Yn();else if (this.focusedObject.draggable && Wo.isKey(t, ["up", "down", "left", "right"])) { t.preventDefault(); var e = this.focusedObject; if (e.eventDisposers.hasKey("interactionKeyboardObject")) return; var i = new Bo(e, t); switch (e.eventDisposers.setKey("interactionKeyboardObject", i), Wo.getEventKey(t)) { case "up": i.directionY = -1; break; case "down": i.directionY = 1; break; case "left": i.directionX = -1; break; case "right": i.directionX = 1; } } }, e.prototype.handleGlobalKeyUp = function (t) { if (this.focusedObject) { var e = this.focusedObject.eventDisposers.getKey("interactionKeyboardObject"); null != e && (t.preventDefault(), e.dispose(), this.focusedObject.eventDisposers.removeKey("interactionKeyboardObject")); } }, e.prototype.handleGlobalPointerMove = function (t) { var e = this.getPointer(t); if (e.point = this.getPointerPoint(t), this.events.isEnabled("track") && !Ls.isPaused) { var i = { type: "track", target: this, event: t, pointer: e, touch: e.touch }; this.events.dispatchImmediately("track", i); } this.addBreadCrumb(e, e.point), this.handleGlobalMove(e, t); }, e.prototype.handleGlobalPointerDown = function (t) { this.processDelayed(); var e = this.getPointer(t); if (this.events.isEnabled("down") && !Ls.isPaused) { var i = { type: "down", target: this, event: t, pointer: e, touch: e.touch }; this.events.dispatchImmediately("down", i); } }, e.prototype.preventTouchAction = function (t) { t.defaultPrevented || t.preventDefault(); }, e.prototype.handleGlobalPointerUp = function (t, e) { void 0 === e && (e = !1); var i = this.getPointer(t); if (this.events.isEnabled("up") && !Ls.isPaused) { var n = { type: "up", target: this, event: t, pointer: i, touch: i.touch }; this.events.dispatchImmediately("up", n); } this.handleGlobalUp(i, t, e); }, e.prototype.handleGlobalTouchMove = function (t) { for (var e = 0; e < t.changedTouches.length; e++) { var i = this.getPointer(t.changedTouches[e]); if (i.point = this.getPointerPoint(t.changedTouches[e]), this.events.isEnabled("track") && !Ls.isPaused) { var n = { type: "track", target: this, event: t, pointer: i, touch: i.touch }; this.events.dispatchImmediately("track", n); } this.addBreadCrumb(i, i.point), this.handleGlobalMove(i, t); } }, e.prototype.handleGlobalTouchStart = function (t) { this.processDelayed(); for (var e = 0; e < t.changedTouches.length; e++) { var i = this.getPointer(t.changedTouches[e]); if (!this._usePointerEventsOnly && this.events.isEnabled("down") && !Ls.isPaused) { var n = { type: "down", target: this, event: t, pointer: i, touch: i.touch }; this.events.dispatchImmediately("down", n); } } }, e.prototype.handleGlobalTouchEnd = function (t) { for (var e = 0; e < t.changedTouches.length; e++) { var i = this.getPointer(t.changedTouches[e]); if (this.events.isEnabled("up") && !Ls.isPaused) { var n = { type: "up", target: this, event: t, pointer: i, touch: i.touch }; this.events.dispatchImmediately("up", n); } this.handleGlobalUp(i, t); } }, e.prototype.handlePointerDown = function (t, e) { var i = this.getPointer(e); (i.touch || 1 == e.which || 3 == e.which) && (i.button = e.which, this.resetPointer(i, e), this.handleDown(t, i, e)); }, e.prototype.handlePointerOver = function (t, e) { var i = this.getPointer(e); this.handleOver(t, i, e); }, e.prototype.handlePointerOut = function (t, e) { var i = this.getPointer(e); this.handleOut(t, i, e); }, e.prototype.handleMouseWheel = function (t, e) { var i = this.getPointer(e); i.point = this.getPointerPoint(e); var n = 0, r = 0, s = 1; if (1 == e.deltaMode && (s = 50), s *= this.getMouseOption(t, "sensitivity"), !(e instanceof WheelEvent)) throw new Error("Invalid event type"); n = Math.round(-1 * e.wheelDeltaX || e.deltaX) * s, r = Math.round(-1 * e.wheelDeltaY || e.deltaY) * s, this.handleWheel(t, i, n, r, e); }, e.prototype.handleTouchDown = function (t, e) { for (var i = 0; i < e.changedTouches.length; i++) { var n = this.getPointer(e.changedTouches[i]); this.maybePreventDefault(t, e, n), this.resetPointer(n, e.changedTouches[i]), this.handleDown(t, n, e); } }, e.prototype.handleHit = function (t, e, i) { var n = or(); if (t.lastHit && t.lastHit >= n - this.getHitOption(t, "doubleHitTime")) { if (n - t.lastHit < 100) return; if (t.lastHit = void 0, t.lastHitPointer = void 0, t.events.isEnabled("doublehit") && !Ls.isPaused) { var r = { type: "doublehit", target: t, point: e.point, event: i, touch: e.touch }; t.events.dispatchImmediately("doublehit", r); } } else t.lastHit = n, t.lastHitPointer = e, 3 === e.button ? t.events.isEnabled("rightclick") && !Ls.isPaused && (r = { type: "rightclick", target: t, event: i }, t.events.dispatchImmediately("rightclick", r)) : t.events.isEnabled("hit") && !Ls.isPaused && (r = { type: "hit", target: t, event: i, point: e.point, touch: e.touch }, t.events.dispatchImmediately("hit", r)); }, e.prototype.handleOver = function (t, e, i, n) { if (void 0 === n && (n = !1), t.hoverable && (this.processDelayed(), t.overPointers.moveValue(e), !t.isHover && (t.isHover = !0, this.overObjects.moveValue(t), this.handleTrack(this.body, e, i, !0), t.events.isEnabled("over") && !Ls.isPaused))) { var r = { type: "over", target: t, event: i, pointer: e, touch: e.touch }; t.events.dispatchImmediately("over", r); } }, e.prototype.handleOut = function (t, e, i, n, r) { var s = this; if (void 0 === n && (n = !1), void 0 === r && (r = !1), t.hoverable && (t.overPointers.removeValue(e), t.isHover && (!t.hasDelayedOut || r))) { if (n && t.overPointers.length) return; if (e.touch && !r && !this.old(e)) { var o = this.getHoverOption(t, "touchOutBehavior"); if ("leave" == o) return this._delayedEvents.out.push({ type: "out", io: t, pointer: e, event: i, keepUntil: or() + 500 }), void (t.hasDelayedOut = !0); if ("delay" == o && this.getHoverOption(t, "touchOutDelay")) return void this._delayedEvents.out.push({ type: "out", io: t, pointer: e, event: i, keepUntil: or() + 500, timeout: this.setTimeout(function () { s.handleOut(t, e, i, !0); }, this.getHoverOption(t, "touchOutDelay")) }); } if (t.isHover = !1, this.overObjects.removeValue(t), t.events.isEnabled("out") && !Ls.isPaused) { var a = { type: "out", target: t, event: i, pointer: e, touch: e.touch }; t.events.dispatchImmediately("out", a); } t.overPointers.clear(), t.hasDelayedOut = !1; } }, e.prototype.processDelayed = function () { for (var t; t = this._delayedEvents.out.pop();) t.timeout && t.timeout.dispose(), this.handleOut(t.io, t.pointer, t.event, !1, !0); }, e.prototype.handleDown = function (t, e, i) { if (this.maybePreventDefault(t, i, e), t.inert && this.stopInertia(t), this.handleOver(t, e, i, !0), t.downPointers.moveValue(e), this.applyCursorDownStyle(t, e), t.isDown || (!1 !== t.focusable && this.getHitOption(t, "noFocus") && this.focusedObject && Yn(), t.isDown = !0, this.downObjects.moveValue(t), t.draggable && this.processDragStart(t, e, i), t.resizable && this.processResizeStart(t, e, i)), t.events.isEnabled("down") && !Ls.isPaused) { var n = { type: "down", target: t, event: i, pointer: e, touch: e.touch }; t.events.dispatchImmediately("down", n); } }, e.prototype.handleGlobalUp = function (t, e, i) { var n = this; void 0 === i && (i = !1), pe(this.downObjects.backwards().iterator(), function (r) { r && r.downPointers.contains(t) && n.handleUp(r, t, e, i); }); }, e.prototype.handleUp = function (t, e, i, n) { if (void 0 === n && (n = !1), this.restoreCursorDownStyle(t, e), t.downPointers.removeValue(e), (e.touch || this._useTouchEventsOnly) && this.handleOut(t, e, i, !0), t.isDown) { if (0 == t.downPointers.length && (t.isDown = !1, this.downObjects.removeValue(t)), t.events.isEnabled("up") && !Ls.isPaused) { var r = { type: "up", target: t, event: i, pointer: e, touch: e.touch }; t.events.dispatchImmediately("up", r); } n || (t.swipeable && this.swiped(t, e) ? this.handleSwipe(t, e, i) : (t.clickable && !this.moved(e, this.getHitOption(t, "hitTolerance")) && this.handleHit(t, e, i), t.inert && this.moved(e, this.getHitOption(t, "hitTolerance")) ? this.handleInertia(t, e) : t.draggable && this.processDragStop(t, e, i), t.resizable && this.processResizeStop(t, e, i))); } }, e.prototype.maybePreventDefault = function (t, e, i) { !S(e) || !(t.draggable || t.swipeable || t.trackable || t.resizable) || this.isGlobalElement(t) || !1 === e.cancelable || t.isTouchProtected && i && i.touch || e.preventDefault(); }, e.prototype.handleGlobalMove = function (t, e) { var i, n = this; if (!t.touch) { var r = "function" == typeof (i = t.lastEvent).composedPath ? i.composedPath()[0] : i.target; pe(this.overObjects.backwards().iterator(), function (i) { if (i && i.overPointers.contains(t) && i.hoverable) { var s = !1; i.element && t.lastEvent && Kn(i.element, r) || (s = !0), s && n.handleOut(i, t, e, !0); } }); } pe(this.transformedObjects.backwards().iterator(), function (i) { !i.downPointers.contains(t) || i.swipeable && n.swiping(i, t) || !i.draggable && !i.resizable || n.handleTransform(i, e); }), pe(this.trackedObjects.backwards().iterator(), function (i) { i.overPointers.contains(t) || n.handleTrack(i, t, e); }); }, e.prototype.handleTrack = function (t, e, i, n) { if (void 0 === n && (n = !1), (n || this.moved(e, 0)) && t.events.isEnabled("track") && !Ls.isPaused) { var r = { type: "track", target: t, event: i, point: e.point, pointer: e, touch: e.touch }; t.events.dispatchImmediately("track", r); } }, e.prototype.handleSwipe = function (t, e, i) { if (t.events.isEnabled("swipe") && !Ls.isPaused) { var n = { type: "swipe", target: t, event: i, touch: e.touch }; t.events.dispatchImmediately("swipe", n); } e.startPoint.x < e.point.x ? t.events.isEnabled("swiperight") && !Ls.isPaused && (n = { type: "swiperight", target: t, event: i, touch: e.touch }, t.events.dispatchImmediately("swiperight", n)) : t.events.isEnabled("swipeleft") && !Ls.isPaused && (n = { type: "swipeleft", target: t, event: i, touch: e.touch }, t.events.dispatchImmediately("swipeleft", n)); }, e.prototype.handleWheel = function (t, e, i, n, r) { var s = { x: i, y: n }; t.events.isEnabled("wheel") && !Ls.isPaused && t.events.dispatchImmediately("wheel", { type: "wheel", target: t, event: r, point: e.point, shift: s }), i < 0 ? t.events.isEnabled("wheelleft") && !Ls.isPaused && t.events.dispatchImmediately("wheelleft", { type: "wheelleft", target: t, event: r, point: e.point, shift: s }) : i > 0 ? t.events.isEnabled("swiperight") && !Ls.isPaused && t.events.dispatchImmediately("wheelright", { type: "wheelright", target: t, event: r, point: e.point, shift: s }) : n < 0 ? t.events.isEnabled("wheelup") && !Ls.isPaused && t.events.dispatchImmediately("wheelup", { type: "wheelup", target: t, event: r, point: e.point, shift: s }) : n > 0 && t.events.isEnabled("wheeldown") && !Ls.isPaused && t.events.dispatchImmediately("wheeldown", { type: "wheeldown", target: t, event: r, point: e.point, shift: s }); }, e.prototype.handleInertia = function (t, e) { t.draggable && 0 === t.downPointers.length && this.handleMoveInertia(t, e), t.resizable && t.downPointers.length > 1 && this.handleResizeInertia(t, e); }, e.prototype.handleMoveInertia = function (t, e) { var i = t, n = { x: e.point.x, y: e.point.y }, r = { x: e.startPoint.x, y: e.startPoint.y }, s = new No(i, "move", n, r), o = this.getTrailPoint(e, or() - this.getInertiaOption(t, "move", "time")); if (void 0 !== o) { var a = this.getInertiaOption(t, "move", "factor"), l = [{ to: e.point.x + (e.point.x - o.point.x) * a, property: "x" }, { to: e.point.y + (e.point.y - o.point.y) * a, property: "y" }], h = new Io(s, l, this.getInertiaOption(t, "move", "duration"), this.getInertiaOption(t, "move", "easing")).start(); this._disposers.push(h.events.on("animationended", function (t) { s.done(); })), t.inertias.setKey("move", s); } else this.processDragStop(t, e, e.lastUpEvent); }, e.prototype.handleResizeInertia = function (t, e) {}, e.prototype.handleTransform = function (t, e) { var i, n, r, s = t.downPointers.getIndex(0), o = null, a = null; s && (o = s.point, a = s.startPoint), r = n = { x: t.originalPosition.x, y: t.originalPosition.y }; for (var l = !0, h = 1; h < t.downPointers.length; h++) { var u = t.downPointers.getIndex(h); if (a.x != u.startPoint.x && a.y != u.startPoint.y) { l = !1, n = (i = u).point, r = i.startPoint; break; } } var p = s && this.moved(s, 0); if (t.draggable && s && s.dragStartEvents && s.dragStartEvents.length && p && t.events.isEnabled("dragstart") && !Ls.isPaused && t.events.dispatchImmediately("dragstart", s.dragStartEvents.shift()), l && t.draggable) this.handleTransformMove(t, o, a, e, p, s.touch);else { var c = i && this.moved(i, 0); t.draggable && t.resizable ? (this.handleTransformMove(t, o, a, e, p && c, s.touch), this.handleTransformResize(t, o, a, n, r, e, p && c, s.touch)) : (t.draggable && this.handleTransformMove(t, o, a, e, p, s.touch), !t.resizable || l && !e.ctrlKey || this.handleTransformResize(t, o, a, n, r, e, p && c, s.touch)); } }, e.prototype.handleTransformMove = function (t, e, i, n, r, s) { if (r && t.events.isEnabled("drag") && !Ls.isPaused && (!t.isTouchProtected || !s)) { var o = { type: "drag", target: t, event: n, shift: { x: e.x - i.x, y: e.y - i.y }, startPoint: i, point: e, touch: s }; t.events.dispatchImmediately("drag", o); } }, e.prototype.handleTransformResize = function (t, e, i, n, r, s, o, a) { if (t.events.isEnabled("resize") && !Ls.isPaused && (!t.isTouchProtected || !a)) { var l = { type: "resize", target: t, event: s, scale: q(e, i, n, r), startPoint1: i, point1: e, startPoint2: r, point2: n, touch: a }; t.events.dispatchImmediately("resize", l); } }, e.prototype.processDragStart = function (t, e, i) { this.transformedObjects.moveValue(t); var n = { type: "dragstart", target: t, event: i, touch: !!e && e.touch }; e && (e.dragTarget = t), e && e.dragStartEvents ? e.dragStartEvents.push(n) : Ls.isPaused || t.dispatchImmediately("dragstart", n); }, e.prototype.processDragStop = function (t, e, i) { if (e || (e = this.getDragPointer(t)), e && (e.dragTarget = void 0), this.transformedObjects.removeValue(t), (!e || this.moved(e, 0)) && t.events.isEnabled("dragstop") && !Ls.isPaused) { var n = { type: "dragstop", target: t, touch: !!e && e.touch }; t.events.dispatchImmediately("dragstop", n); } }, e.prototype.processResizeStart = function (t, e, i) { this.transformedObjects.moveValue(t); }, e.prototype.processResizeStop = function (t, e, i) { this.transformedObjects.removeValue(t); }, e.prototype.dragStart = function (t, e) { e || (e = this.getDragPointer(t)), e && this.handleDown(t, e, e.lastDownEvent); }, e.prototype.dragStop = function (t, e) { e || (e = this.getDragPointer(t)), e && this.handleGlobalUp(e, e.lastUpEvent); }, e.prototype.getDragPointer = function (t) { return t ? t.downPointers.getIndex(0) : this.transformedObjects.length ? this.getDragPointer(this.transformedObjects.getIndex(0)) : void 0; }, e.prototype.getPointerId = function (t) { return (S(t.identifier) ? "" + t.identifier : S(t.pointerId) ? "" + t.pointerId : "m").replace("-", ""); }, e.prototype.getPointerPoint = function (t) { return { x: t.clientX, y: t.clientY }; }, e.prototype.getPointer = function (t) { var e, i = this.getPointerId(t), n = this.getPointerPoint(t); return this.pointers.hasKey(i) ? (e = this.pointers.getKey(i)).touch = this.isPointerTouch(t) : (e = { id: i, touch: this.isPointerTouch(t), startPoint: n, startTime: or(), point: n, track: [], swipeCanceled: !1, dragStartEvents: [] }, this.addBreadCrumb(e, n), this.pointers.setKey(i, e)), e.lastEvent = t, e; }, e.prototype.isPointerTouch = function (t) { if ("undefined" != typeof Touch && t instanceof Touch) return !0; if ("undefined" != typeof PointerEvent && t instanceof PointerEvent && S(t.pointerType)) switch (t.pointerType) { case "touch": case "pen": case 2: return !0; case "mouse": case 4: return !1; default: return !(t instanceof MouseEvent); } else if (S(t.type) && t.type.match(/^mouse/)) return !1; return !0; }, e.prototype.resetPointer = function (t, e) { var i = this.getPointerPoint(e); t.startTime = or(), t.startPoint = { x: i.x, y: i.y }, t.point = { x: i.x, y: i.y }, t.track = [], t.swipeCanceled = !1; }, e.prototype.addBreadCrumb = function (t, e) { t.track.push({ timestamp: or(), point: e }); }, e.prototype.lockDocument = function () { this.prepElement(this.body); }, e.prototype.unlockDocument = function () { 0 == this.transformedObjects.length && this.restoreAllStyles(this.body); }, e.prototype.lockElement = function (t) { this.prepElement(t); }, e.prototype.unlockElement = function (t) { this.restoreAllStyles(t); }, e.prototype.lockWheel = function () { window.addEventListener(this._pointerEvents.wheel, this.wheelLockEvent, !!this._passiveSupported && { passive: !1 }); }, e.prototype.unlockWheel = function () { window.removeEventListener(this._pointerEvents.wheel, this.wheelLockEvent); }, e.prototype.isLocalElement = function (t, e, i) { var n = this.getCache("local_pointer_" + t.id); if (S(n)) return n; var r = (Zn(e) || document).elementFromPoint(t.point.x, t.point.y), s = r && Kn(e, r); return this.setCache("local_pointer_" + t.id + "_" + i, s, 100), s; }, e.prototype.wheelLockEvent = function (t) { return t.preventDefault(), !1; }, e.prototype.prepElement = function (t) { var e = t.element; if (e) { for (var i = ["touchAction", "webkitTouchAction", "MozTouchAction", "MSTouchAction", "msTouchAction", "oTouchAction", "userSelect", "webkitUserSelect", "MozUserSelect", "MSUserSelect", "msUserSelect", "oUserSelect", "touchSelect", "webkitTouchSelect", "MozTouchSelect", "MSTouchSelect", "msTouchSelect", "oTouchSelect", "touchCallout", "webkitTouchCallout", "MozTouchCallout", "MSTouchCallout", "msTouchCallout", "oTouchCallout", "contentZooming", "webkitContentZooming", "MozContentZooming", "MSContentZooming", "msContentZooming", "oContentZooming", "userDrag", "webkitUserDrag", "MozUserDrag", "MSUserDrag", "msUserDrag", "oUserDrag"], n = 0; n < i.length; n++) i[n] in e.style && this.setTemporaryStyle(t, i[n], "none"); this.setTemporaryStyle(t, "tapHighlightColor", "rgba(0, 0, 0, 0)"); } }, e.prototype.unprepElement = function (t) { var e = t.element; if (e) { for (var i = ["touchAction", "webkitTouchAction", "MozTouchAction", "MSTouchAction", "msTouchAction", "oTouchAction", "userSelect", "webkitUserSelect", "MozUserSelect", "MSUserSelect", "msUserSelect", "oUserSelect", "touchSelect", "webkitTouchSelect", "MozTouchSelect", "MSTouchSelect", "msTouchSelect", "oTouchSelect", "touchCallout", "webkitTouchCallout", "MozTouchCallout", "MSTouchCallout", "msTouchCallout", "oTouchCallout", "contentZooming", "webkitContentZooming", "MozContentZooming", "MSContentZooming", "msContentZooming", "oContentZooming", "userDrag", "webkitUserDrag", "MozUserDrag", "MSUserDrag", "msUserDrag", "oUserDrag"], n = 0; n < i.length; n++) i[n] in e.style && this.restoreStyle(t, i[n]); this.restoreStyle(t, "tapHighlightColor"); } }, e.prototype.getHitOption = function (t, e) { var i = t.hitOptions[e]; return void 0 === i && (i = this.hitOptions[e]), i; }, e.prototype.getHoverOption = function (t, e) { var i = t.hoverOptions[e]; return void 0 === i && (i = this.hoverOptions[e]), i; }, e.prototype.getSwipeOption = function (t, e) { var i = t.swipeOptions[e]; return void 0 === i && (i = this.swipeOptions[e]), i; }, e.prototype.getKeyboardOption = function (t, e) { var i = t.keyboardOptions[e]; return void 0 === i && (i = this.keyboardOptions[e]), i; }, e.prototype.getMouseOption = function (t, e) { var i = t.mouseOptions[e]; return void 0 === i && (i = this.mouseOptions[e]), i; }, e.prototype.getInertiaOption = function (t, e, i) { var n = t.inertiaOptions.getKey(e); return n && S(n[i]) ? n[i] : this.inertiaOptions.getKey(e)[i]; }, e.prototype.stopInertia = function (t) { for (var e, i = ["move", "resize"], n = 0; n < i.length; n++) if (e = i[n], t.inertias.hasKey(e)) { var r = t.inertias.getKey(e); if (r) { r.dispose(); continue; } } }, e.prototype.swiping = function (t, e) { var i = or(); return !(e.swipeCanceled || !t.swipeable) && Math.abs(e.startPoint.y - e.point.y) < this.getSwipeOption(t, "verticalThreshold") && e.startTime > i - this.getSwipeOption(t, "time"); }, e.prototype.swiped = function (t, e) { var i = or(); return !e.swipeCanceled && Math.abs(e.startPoint.x - e.point.x) > this.getSwipeOption(t, "horizontalThreshold") && Math.abs(e.startPoint.y - e.point.y) < this.getSwipeOption(t, "verticalThreshold") && e.startTime > i - this.getSwipeOption(t, "time"); }, e.prototype.applyCursorOverStyle = function (t) { var e = t.cursorOptions; if (S(e.overStyle)) for (var i = 0; i < e.overStyle.length; i++) Wn(t.element, e.overStyle[i].property, e.overStyle[i].value); }, e.prototype.applyCursorDownStyle = function (t, e) { if (!e.touch) { var i = t.cursorOptions.downStyle; if (t.downPointers.contains(e) && S(i)) for (var n = 0; n < i.length; n++) this.setTemporaryStyle(this.body, i[n].property, i[n].value), this.setTemporaryStyle(t, i[n].property, i[n].value); } }, e.prototype.restoreCursorDownStyle = function (t, e) { if (!e.touch) { var i = t.cursorOptions.downStyle; if (t.downPointers.contains(e) && S(i)) for (var n = 0; n < i.length; n++) this.restoreStyle(this.body, i[n].property), this.restoreStyle(t, i[n].property); } }, e.prototype.setGlobalStyle = function (t) { for (var e = pr().body, i = F(t) ? t : [t], n = 0; n < i.length; n++) this.setTemporaryStyle(e, i[n].property, i[n].value); }, e.prototype.restoreGlobalStyle = function (t) { for (var e = pr().body, i = F(t) ? t : [t], n = 0; n < i.length; n++) this.restoreStyle(e, i[n].property); }, e.prototype.isGlobalElement = function (t) { return document.body === t.element; }, e.prototype.moved = function (t, e, i) { void 0 === i && (i = 300); var n = this.getShift(t); return Math.abs(n.x) > e || Math.abs(n.y) > e; }, e.prototype.old = function (t, e) { return void 0 === e && (e = 300), or() - t.startTime > e; }, e.prototype.getShift = function (t) { return { x: t.startPoint.x - t.point.x, y: t.startPoint.y - t.point.y }; }, e.prototype.getTrailPoint = function (t, e) { for (var i, n = 0; n < t.track.length; n++) if (t.track[n].timestamp >= e) { i = t.track[n]; break; } return i; }, e.prototype.pointerExists = function (t, e) { var i = !1; return t.each(function (t) { t != e && (i = t.point.x == e.point.x && t.point.y == e.point.y); }), i; }, e.prototype.getInteraction = function (t) { return new Ro(t); }, e.prototype.setTemporaryStyle = function (t, e, i) { var n = t.element; S(n.style[e]) && !t.replacedStyles.hasKey(e) && t.replacedStyles.setKey(e, n.style[e]), Wn(n, e, i); }, e.prototype.restoreStyle = function (t, e) { t.replacedStyles.hasKey(e) ? (t.element.style[e] = t.replacedStyles.getKey(e), t.replacedStyles.removeKey(e)) : delete t.element.style[e]; }, e.prototype.restoreAllStyles = function (t) { pe(t.replacedStyles.iterator(), function (e) { var i = e[0], n = e[1]; t.element.style[i] = n, t.replacedStyles.removeKey(i); }); }, e.prototype.dispose = function () { this.isDisposed() || (t.prototype.dispose.call(this), this.restoreAllStyles(this.body), this.unlockWheel()); }, e.prototype.log = function (t, e, i) { if (e.changedTouches) for (var n = 0; n < e.changedTouches.length; n++) this.logTouch(t, e.type, e.changedTouches[n]);else { var r = ""; if (e.pointerType) switch (e.pointerType) { case 2: r = "touch"; break; case 4: r = "mouse"; break; default: r = e.pointerType; } else r = "undefined" != typeof TouchEvent && e instanceof TouchEvent ? "touch" : e.type.match(/^mouse/) ? "mouse" : "???"; var s = ""; s = S(e.identifier) ? e.identifier : S(e.pointerId) ? e.pointerId : "???", i ? console.log(t + " (" + i.uid + ") " + e.type + " " + r + " " + s) : console.log(t + " " + e.type + " " + r + " " + s); } }, e.prototype.logTouch = function (t, e, i) { console.log(t + " " + e + " touch " + i.identifier); }, Object.defineProperty(e, "passiveSupported", { get: function get() { var t = this; if (null == this._passiveSupported) try { var e = Object.defineProperty({}, "passive", { get: function get() { t._passiveSupported = !0; } }); window.addEventListener("test", e, e), window.removeEventListener("test", e, e); } catch (t) { this._passiveSupported = !1; } return this._passiveSupported; }, enumerable: !0, configurable: !0 }), e; }(Js), zo = null, Uo = function (t) { function e() { var e = t.call(this) || this; return e.adapter = new Ks(e), e._elements = {}, e._IOs = {}, e._content = "", e._title = "", e._classPrefix = "ampopup", e._defaultStyles = !0, e._showCurtain = !1, e._draggable = !0, e._align = "center", e._verticalAlign = "middle", e._shift = { x: 0, y: 0 }, e._tempShift = { x: 0, y: 0 }, e._readerTitle = "", e._closable = !0, e._cssLoaded = !1, e._fitTo = "window", e.isTemplate = !1, e._sized = !1, e.className = "Popup", e; } return n(e, t), e.prototype.open = function () { this.container && (this._elements.wrapper && this.container.appendChild(this._elements.wrapper), this._elements.curtain && (this.container.appendChild(this._elements.curtain), this.showCurtain = this.showCurtain), this.positionElement(), this.dispatchImmediately("opened")); }, e.prototype.close = function () { this._elements.wrapper && this._elements.wrapper.parentElement && this._elements.wrapper.parentElement.removeChild(this._elements.wrapper), this._elements.curtain && this._elements.curtain.parentElement && this._elements.curtain.parentElement.removeChild(this._elements.curtain), this.dispatchImmediately("closed"), this.releasePointers(); }, e.prototype.dispose = function () { this.close(), t.prototype.dispose.call(this); }, e.prototype.positionElement = function (t) { var e = this; void 0 === t && (t = !0), this._elements.wrapper && setTimeout(function () { if (e._elements.wrapper) { if (t || !e._sized) { if (e._elements.wrapper.style.opacity = "0.01", e._elements.wrapper.style.left = "0", e._elements.wrapper.style.top = "0", e._elements.wrapper.style.margin = "0 0 0 0", !e._elements.wrapper.style.width) { var i = e._elements.wrapper.getBoundingClientRect(); e._elements.wrapper.style.width = i.width + "px", e._elements.wrapper.style.height = i.height + "px"; } e._sized = !0; } setTimeout(function () { if (e._elements.wrapper) { var i; switch (!t && e._sized || !e._bbox ? (i = e._elements.wrapper.getBoundingClientRect(), e._elements.wrapper.style.opacity = "") : i = e._bbox, e.align) { case "left": e._elements.wrapper.style.left = "0", e._elements.wrapper.style.right = "auto", e._elements.wrapper.style.marginLeft = e.toStyle(e._shift.x + e._tempShift.x); break; case "center": e._elements.wrapper.style.left = "50%", e._elements.wrapper.style.right = "auto", e._elements.wrapper.style.marginLeft = e.toStyle(Math.round(-i.width / 2) + (e._shift.x + e._tempShift.x)); break; case "right": e._elements.wrapper.style.left = "auto", e._elements.wrapper.style.right = "0", e._elements.wrapper.style.marginLeft = e.toStyle(e._shift.x + e._tempShift.x); break; default: e._elements.wrapper.style.left = e.toStyle(e.left) || "auto", e._elements.wrapper.style.right = e.toStyle(e.right) || "auto", e._elements.wrapper.style.marginLeft = e.toStyle(e._shift.x + e._tempShift.x); } switch (e.verticalAlign) { case "top": e._elements.wrapper.style.top = "0", e._elements.wrapper.style.bottom = "auto", e._elements.wrapper.style.marginTop = e.toStyle(e._shift.y + e._tempShift.y); break; case "middle": e._elements.wrapper.style.top = "50%", e._elements.wrapper.style.bottom = "auto", e._elements.wrapper.style.marginTop = e.toStyle(Math.round(-i.height / 2) + (e._shift.y + e._tempShift.y)); break; case "bottom": e._elements.wrapper.style.top = "auto", e._elements.wrapper.style.bottom = "0", e._elements.wrapper.style.marginTop = e.toStyle(e._shift.y + e._tempShift.y); break; default: e._elements.wrapper.style.top = e.toStyle(e.top) || "auto", e._elements.wrapper.style.bottom = e.toStyle(e.bottom) || "auto", e._elements.wrapper.style.marginTop = e.toStyle(e._shift.y + e._tempShift.y); } } }, 1); } }, 1); }, e.prototype.setupDragging = function () { var t = this; this.draggable ? (this._IOs.wrapper.events.has("drag") || this._IOs.wrapper.events.on("drag", function (e) { t._tempShift.x = e.shift.x, t._tempShift.y = e.shift.y, t.positionElement(!1); }), this._IOs.wrapper.events.has("dragstop") || this._IOs.wrapper.events.on("dragstop", function (e) { t._shift.x += t._tempShift.x, t._shift.y += t._tempShift.y, t._tempShift.x = 0, t._tempShift.y = 0, t.positionElement(!1); })) : this._IOs.wrapper && (this._IOs.wrapper.events.has("drag") && this._IOs.wrapper.events.off("drag"), this._IOs.wrapper.events.has("dragstop") && this._IOs.wrapper.events.off("dragstop")); }, e.prototype.toStyle = function (t) { return S(t) ? A(t) ? t + "px" : t.toString() : null; }, Object.defineProperty(e.prototype, "classPrefix", { get: function get() { return this.adapter.apply("classPrefix", this._classPrefix); }, set: function set(t) { this._classPrefix = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "classPrefixRaw", { get: function get() { return this._classPrefix; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "content", { get: function get() { return this.adapter.apply("content", this._content); }, set: function set(t) { this._content != t && (this._content = t, this._elements.content || this.createContentElement(), this._elements.content.innerHTML = t, this.positionElement()); }, enumerable: !0, configurable: !0 }), e.prototype.getClassNames = function () { return this.adapter.apply("classNames", { wrapperClass: this.classPrefix + "", titleClass: this.classPrefix + "-title", contentClass: this.classPrefix + "-content", curtainClass: this.classPrefix + "-curtain", closeClass: this.classPrefix + "-close" }); }, e.prototype.createContentElement = function () { if (!this._elements.wrapper) { var t = this.getClassNames(), e = document.createElement("div"); e.className = t.contentClass, e.style.opacity = "0.01"; var i = document.createElement("a"); i.className = t.closeClass; var n = document.createElement("div"); n.innerHTML = this.title, n.className = t.titleClass, this.title || (n.style.display = "none"); var r = document.createElement("div"); r.innerHTML = this.content, this._IOs.wrapper = pr().getInteraction(e), this._disposers.push(this._IOs.wrapper), this._IOs.wrapper.events.on("over", this.disablePointers, this), this._IOs.wrapper.events.on("out", this.releasePointers, this), this._IOs.close = pr().getInteraction(i), this._disposers.push(this._IOs.close), i.style.visibility = "hidden", e.setAttribute("role", "dialog"), e.appendChild(i), e.appendChild(n), e.appendChild(r), this.container.appendChild(e), this._elements.wrapper = e, this._elements.content = r, this._elements.title = n, this._elements.close = i, this.defaultStyles && this.loadDefaultCSS(), this.createCurtainElement(), this.applyEvents(), this.applyReaderSettings(), this.setupDragging(); } }, Object.defineProperty(e.prototype, "title", { get: function get() { return this.adapter.apply("title", this._title); }, set: function set(t) { this._title != t && (this._title = t, this._elements.content || this.createContentElement(), this._elements.title.innerHTML = t, this.positionElement(), this.applyReaderSettings()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "readerTitle", { get: function get() { return this.adapter.apply("readerTitle", "" != this._readerTitle ? this._readerTitle : this.title); }, set: function set(t) { this._readerTitle != t && (this._readerTitle = t, this.applyReaderSettings()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "closable", { get: function get() { return this.adapter.apply("closable", this._closable); }, set: function set(t) { t !== this._closable && (this._closable = t, this.applyEvents()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fitTo", { get: function get() { return this.adapter.apply("fitTo", this._fitTo); }, set: function set(t) { t != this._fitTo && (this._fitTo = t, this.positionElement()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "defaultStyles", { get: function get() { return this.adapter.apply("defaultStyles", this._defaultStyles); }, set: function set(t) { this._defaultStyles != t && (this._defaultStyles = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "showCurtain", { get: function get() { return this.adapter.apply("showCurtain", this._showCurtain); }, set: function set(t) { this._showCurtain != t && (this._showCurtain = t, this._elements.curtain && (this._elements.curtain.style.display = t ? "block" : "none")); }, enumerable: !0, configurable: !0 }), e.prototype.createCurtainElement = function () { var t = this.getClassNames(), e = document.createElement("div"); e.className = t.curtainClass, this.container.appendChild(e), this._IOs.curtain = pr().getInteraction(e), this._disposers.push(this._IOs.curtain), this._IOs.curtain.events.on("over", this.disablePointers, this), this._IOs.curtain.events.on("out", this.releasePointers, this), e.style.display = this.showCurtain ? "block" : "none", this._elements.curtain = e; }, Object.defineProperty(e.prototype, "draggable", { get: function get() { return this.adapter.apply("draggable", this._draggable); }, set: function set(t) { this._draggable != t && (this._draggable = t, this.setupDragging()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "align", { get: function get() { return this.adapter.apply("align", this._align); }, set: function set(t) { this._align != t && (this._align = t, this.positionElement()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "verticalAlign", { get: function get() { return this.adapter.apply("verticalAlign", this._verticalAlign); }, set: function set(t) { this._verticalAlign != t && (this._verticalAlign = t, this.positionElement()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "left", { get: function get() { return this.adapter.apply("left", this._left); }, set: function set(t) { this.left != t && (this._left = t, this._align = "none", this.positionElement()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "right", { get: function get() { return this.adapter.apply("right", this._right); }, set: function set(t) { this.right != t && (this._right = t, this._align = "none", this.positionElement()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "top", { get: function get() { return this.adapter.apply("top", this._top); }, set: function set(t) { this.top != t && (this._top = t, this._verticalAlign = "none", this.positionElement()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bottom", { get: function get() { return this.adapter.apply("bottom", this._bottom); }, set: function set(t) { this.bottom != t && (this._bottom = t, this._verticalAlign = "none", this.positionElement()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "elements", { get: function get() { return this._elements; }, enumerable: !0, configurable: !0 }), e.prototype.loadDefaultCSS = function () { var t; this._cssLoaded || (this._disposers.push(((t = this.classPrefix) || (t = "ampopup"), Lo.insertKeyIfEmpty(t, function () { var e = new gs([new Ao("." + t, { overflow: "visible", position: "absolute", top: "0", left: "0", "z-index": "2000" }), new Ao("." + t + "-curtain", { width: "100%", height: "100%", position: "absolute", top: "0", left: "0", "z-index": "2001", background: "#fff", opacity: "0.5" }), new Ao("." + t + "-title", { "font-weight": "bold", "font-size": "120%" }), new Ao("." + t + "-content", { padding: "1em 2em", background: "rgb(255, 255, 255);", "background-color": "rgba(255, 255, 255, 0.8)", color: "#000", display: "inline-block", position: "absolute", top: "0", left: "0", "max-width": "90%", "max-height": "90%", overflow: "auto", "z-index": "2002" }), new Ao("." + t + "-close", { display: "block", position: "absolute", top: "0.3em", right: "0.3em", "background-color": "rgb(100, 100, 100)", background: "rgba(100, 100, 100, 0.1) url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyBoZWlnaHQ9IjUxMiIgdmVyc2lvbj0iMSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHdpZHRoPSI1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ0NS4yIDEwOS4ybC00Mi40LTQyLjRMMjU2IDIxMy42IDEwOS4yIDY2LjhsLTQyLjQgNDIuNEwyMTMuNiAyNTYgNjYuOCA0MDIuOGw0Mi40IDQyLjRMMjU2IDI5OC40bDE0Ni44IDE0Ni44IDQyLjQtNDIuNEwyOTguNCAyNTYiLz48L3N2Zz4=) no-repeat center", "background-size": "80%", width: "1.2em", height: "1.2em", cursor: "pointer" })]); return new ms(function () { Lo.removeKey(t), e.dispose(); }); }).increment())), Qt(this._elements, function (t, e) { e.style.display = ""; }), this._cssLoaded = !0); }, e.prototype.applyEvents = function () { var t = this; if (this._IOs.close) if (this.closable) { this._IOs.close.element.style.visibility = "visible"; var e = [pr().body.events.on("keyup", function (e) { Wo.isKey(e.event, "esc") && t.closable && t.close(); }), this._IOs.close.events.on("hit", function (e) { t.close(); })]; e.push(this._IOs.curtain.events.on("hit", function (e) { t.showCurtain && t.close(); })), this._disposers.push(new gs(e)); } else this._IOs.close.element.style.visibility = "hidden"; }, e.prototype.disablePointers = function () { this.sprite && (this._spriteInteractionsEnabled = this.sprite.interactionsEnabled, this.sprite.interactionsEnabled = !1); }, e.prototype.releasePointers = function () { S(this._spriteInteractionsEnabled) && (this.sprite.interactionsEnabled = this._spriteInteractionsEnabled, this._spriteInteractionsEnabled = void 0); }, e.prototype.applyReaderSettings = function () { this.elements.wrapper.setAttribute("aria-label", this.readerTitle); }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.container = e.container, this.sprite = e.sprite, this.classPrefix = e.classPrefixRaw, this.content = e.content, this.title = e.title, this.readerTitle = e.readerTitle, this.defaultStyles = e.defaultStyles, this.showCurtain = e.showCurtain, this.align = e.align, this.verticalAlign = e.verticalAlign, this.left = e.left, this.right = e.right, this.top = e.top, this.bottom = e.bottom, this.adapter.copyFrom(e.adapter); }, e; }(Js), Go = function (t) { function e() { var e = t.call(this) || this; return e.adapter = new Ks(e), e.className = "Modal", e.showCurtain = !0, e.draggable = !1, e; } return n(e, t), e; }(Uo), Ko = i(0), Zo = i.n(Ko), qo = [], $o = function () { function t(t, e) { var i = this; if (this._disposed = !1, this.autoResize = !0, this.nonExportableSprites = [], this._disposers = [], this.cssScale = 1, this.htmlElement = t, !e) { var n = function n() { i.autoResize && i.measure(); }; this.resizeSensor = new Zo.a(t, n), this._disposers.push(new fs(function () { i.resizeSensor.detach(n); })); } qo.push(this); var r = document.createElement("div"), s = r.style; s.width = "100%", s.height = "100%", s.position = "relative", t.appendChild(r), this.SVGContainer = r; } return t.prototype.measure = function () { var t = qi(this.htmlElement), e = $i(this.htmlElement), i = this.container; i && (this.width == t && this.height == e || (this.width = t, this.height = e, t > 0 && (i.maxWidth = t), e > 0 && (i.maxHeight = e), $n(this.SVGContainer)), i.maxWidth || (i.maxWidth = 0), i.maxHeight || (i.maxHeight = 0), this.cssScale = 1, this.checkTransform(this.htmlElement)); }, Object.defineProperty(t.prototype, "container", { get: function get() { return this._container; }, set: function set(t) { this._container = t, this.measure(); }, enumerable: !0, configurable: !0 }), t.prototype.isDisposed = function () { return this._disposed; }, t.prototype.dispose = function () { this._disposed || St(qo, this), mt(this._disposers, function (t) { t.dispose(); }); }, Object.defineProperty(t.prototype, "hideOverflow", { set: function set(t) { this.SVGContainer.style.overflow = t ? "hidden" : ""; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "modal", { get: function get() { return S(this._modal) || (this._modal = new Go(), this._modal.container = this.SVGContainer, this._disposers.push(this._modal)), this._modal; }, enumerable: !0, configurable: !0 }), t.prototype.openModal = function (t, e) { this.closeModal(); var i = this.modal; return i.content = t, i.readerTitle = e, i.open(), i; }, t.prototype.closeModal = function () { this._modal && this.modal.close(); }, Object.defineProperty(t.prototype, "popups", { get: function get() { if (!S(this._popups)) { var t = new Uo(); t.container = this.SVGContainer, this._popups = new Hs(t), this._disposers.push(new Bs(this._popups)), this._disposers.push(this._popups.template); } return this._popups; }, enumerable: !0, configurable: !0 }), t.prototype.openPopup = function (t, e) { var i = this.popups.create(); return i.content = t, S(e) && (i.title = e), i.open(), i; }, t.prototype.closeAllPopups = function () { this.popups.each(function (t) { t.close(); }); }, t.prototype.checkTransform = function (t) { if (window.getComputedStyle) { if (t && t.style) { var e = window.getComputedStyle(t, null); if (e) { var i = e.getPropertyValue("-webkit-transform") || e.getPropertyValue("-moz-transform") || e.getPropertyValue("-ms-transform") || e.getPropertyValue("-o-transform") || e.getPropertyValue("transform"); if (i && "none" !== i) { var n = i.split("(")[1].split(")")[0].split(","), r = Number(n[0]), s = Number(n[1]), o = Math.sqrt(r * r + s * s); isNaN(o) || (this.cssScale *= o); } } } t.parentNode && t.parentNode instanceof HTMLElement && this.checkTransform(t.parentNode); } }, t; }(), Jo = function () { function t(t, e) { this.container = t, this.id = e; var i = document.createElementNS(Do, "svg"); i.setAttribute("version", "1.1"), i.setAttributeNS(ko, "xmlns", Do), i.setAttributeNS(ko, "xmlns:xlink", To), i.setAttribute("role", "group"), this.container.appendChild(i); var n = document.createElementNS(Do, "desc"); n.appendChild(document.createTextNode("JavaScript chart by amCharts")), i.appendChild(n), this.defs = document.createElementNS(Do, "defs"), i.appendChild(this.defs), i.style.width = "100%", i.style.height = "100%", i.style.overflow = "visible", this.svg = i; } return t.prototype.add = function (t) { return new Mo(t); }, t.prototype.addGroup = function (t) { return new jo(t); }, t.prototype.append = function (t) { t && this.svg.appendChild(t.node); }, t.prototype.appendDef = function (t) { t && this.defs.appendChild(t.node); }, t.prototype.foreignObject = function () { return new Mo("foreignObject"); }, t.prototype.supportsForeignObject = function () { return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Extensibility", "1.1"); }, t; }(), Qo = null, ta = function (t) { function e() { var e = t.call(this) || this; return e._purposes = { stroke: Je("#e5e5e5"), fill: Je("#f3f3f3"), primaryButton: Je("#6794dc"), primaryButtonHover: Je("#6771dc"), primaryButtonDown: Je("#68dc75"), primaryButtonActive: Je("#68dc75"), primaryButtonText: Je("#FFFFFF"), primaryButtonStroke: Je("#FFFFFF"), secondaryButton: Je("#d9d9d9"), secondaryButtonHover: Je("#d9d9d9").brighten(-.25), secondaryButtonDown: Je("#d9d9d9").brighten(-.35), secondaryButtonActive: Je("#d9d9d9").brighten(.35), secondaryButtonText: Je("#000000"), secondaryButtonStroke: Je("#FFFFFF"), grid: Je("#000000"), background: Je("#ffffff"), alternativeBackground: Je("#000000"), text: Je("#000000"), alternativeText: Je("#FFFFFF"), disabledBackground: Je("#999999"), positive: Je("#67dc75"), negative: Je("#dc6788") }, e.className = "InterfaceColorSet", e.applyTheme(), e; } return n(e, t), e.prototype.debug = function () {}, e.prototype.getFor = function (t) { return this._purposes[t]; }, e.prototype.setFor = function (t, e) { this._purposes[t] = e; }, e; }($s); Fs.registeredClasses.InterfaceColorSet = ta; var ea = function (t) { function e() { var e = t.call(this) || this; e._elements = new Ns(), e.properties = {}, e.className = "Pattern", e.width = 10, e.height = 10, e.x = 0, e.y = 0, e.patternUnits = "userSpaceOnUse"; var i = new ta(); return e.backgroundFill = i.getFor("background"), e.backgroundOpacity = 0, e.fillOpacity = 1, e.fill = i.getFor("alternativeBackground"), e.stroke = i.getFor("alternativeBackground"), e.strokeOpacity = 1, e.strokeWidth = 1, e.shapeRendering = "crispEdges", e.rotation = 0, e.element = e.paper.addGroup("pattern"), e.id = "pattern-" + Fs.getUniqueId(), e.element.attr({ id: e.id }), e._disposers.push(e.element), e._disposers.push(new Bs(e._elements)), e.patternUnits = e.patternUnits, e.width = e.width, e.height = e.height, e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { var t = this, e = this.element; if (e) { e.removeChildNodes(); var i = this.paper.add("rect"); i.attr({ width: this.width, height: this.height, "shape-rendering": "crispEdges", fill: this.backgroundFill.hex, "fill-opacity": this.backgroundOpacity, stroke: this.backgroundFill.hex, "stroke-opacity": this.backgroundOpacity }), e.add(i), e.attr({ x: this.x, y: this.y, width: this.width, height: this.height, stroke: this.stroke.hex, fill: this.fill.hex, "fill-opacity": this.fillOpacity, "stroke-opacity": this.strokeOpacity, "stroke-width": this.strokeWidth, "shape-rendering": this.shapeRendering, patternUnits: this.patternUnits }), pe(this._elements.iterator(), function (e) { e.rotation = t.rotation, t.element.add(e); }); } }, e.prototype.animate = function (t, e, i) { return new Io(this, t, e, i).start(); }, e.prototype.addElement = function (t) { this._elements.push(t), this._disposers.push(t); }, e.prototype.removeElement = function (t) { this._elements.removeValue(t), this.removeDispose(t); }, Object.defineProperty(e.prototype, "elements", { get: function get() { return this._elements; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fillOpacity", { get: function get() { return this.properties.fillOpacity; }, set: function set(t) { this.properties.fillOpacity = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fill", { get: function get() { return this.properties.fill; }, set: function set(t) { this.properties.fill = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "backgroundFill", { get: function get() { return this.properties.backgroundFill; }, set: function set(t) { this.properties.backgroundFill = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "backgroundOpacity", { get: function get() { return this.properties.backgroundOpacity; }, set: function set(t) { this.properties.backgroundOpacity = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "stroke", { get: function get() { return this.properties.stroke; }, set: function set(t) { this.properties.stroke = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "strokeOpacity", { get: function get() { return this.properties.strokeOpacity; }, set: function set(t) { this.properties.strokeOpacity = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "strokeWidth", { get: function get() { return this.properties.strokeWidth; }, set: function set(t) { this.properties.strokeWidth = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "shapeRendering", { get: function get() { return this.properties.shapeRendering; }, set: function set(t) { this.properties.shapeRendering = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "rotation", { get: function get() { return this.properties.rotation; }, set: function set(t) { this.properties.rotation = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "patternUnits", { get: function get() { return this.properties.patternUnits; }, set: function set(t) { this.properties.patternUnits = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "width", { get: function get() { return this.properties.width; }, set: function set(t) { this.properties.width = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "height", { get: function get() { return this.properties.height; }, set: function set(t) { this.properties.height = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "x", { get: function get() { return this.properties.x; }, set: function set(t) { this.properties.x = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "y", { get: function get() { return this.properties.y; }, set: function set(t) { this.properties.y = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "paper", { get: function get() { return this._paper ? this._paper : cr(); }, set: function set(t) { this._paper != t && (this._paper = t, this.draw(), t.appendDef(this.element)); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { var i = this; t.prototype.copyFrom.call(this, e), Qt(e.properties, function (t, e) { i[t] = e; }); }, Object.defineProperty(e.prototype, "animations", { get: function get() { return this._animations || (this._animations = [], this._disposers.push(new So(this._animations))), this._animations; }, enumerable: !0, configurable: !0 }), e.prototype.processConfig = function (e) { if (e && S(e.elements) && F(e.elements)) for (var i = 0, n = e.elements.length; i < n; i++) { var r = e.elements[i]; if (S(r.type)) { var s = this.createEntryInstance(r); s instanceof $s && (s.config = r), this.addElement(S(r.typeProperty) ? s[r.typeProperty] : s.element); } } t.prototype.processConfig.call(this, e); }, e; }($s); Fs.registeredClasses.Pattern = ea; var ia = function (t) { function e() { var e = t.call(this) || this; return e._stops = new Ns(), e._rotation = 0, e.className = "LinearGradient", e._stops.events.on("setIndex", e.validate, e), e._stops.events.on("inserted", e.validate, e), e.element = e.paper.addGroup("linearGradient"), e.id = "gradient-" + Fs.getUniqueId(), e.element.attr({ id: e.id }), e._disposers.push(e.element), e.applyTheme(), e; } return n(e, t), e.prototype.validate = function () { var t = this, e = (this._rotation + 90) * cs, i = Math.round(50 + 50 * Math.sin(e + Math.PI)) + "%", n = Math.round(50 + 50 * Math.cos(e)) + "%", r = Math.round(50 + 50 * Math.sin(e)) + "%", s = Math.round(50 + 50 * Math.cos(e + Math.PI)) + "%", o = this.element; o.removeChildNodes(), o.attr({ x1: i, x2: r, y1: n, y2: s }), pe(me(this._stops.iterator()), function (e) { var i = e[0], n = e[1], r = n.offset; A(r) || (r = i / (t._stops.length - 1)); var s = t.paper.add("stop"); S(n.color) && s.attr({ "stop-color": n.color.toString() }), A(n.opacity) && s.attr({ "stop-opacity": n.opacity }), A(r) && s.attr({ offset: r }), o.add(s); }); }, e.prototype.clear = function () { this._stops.clear(); }, e.prototype.addColor = function (t, e, i) { this._stops.push({ color: t, opacity: e, offset: i }); }, Object.defineProperty(e.prototype, "stops", { get: function get() { return this._stops; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "paper", { get: function get() { return this._paper ? this._paper : cr(); }, set: function set(t) { this._paper != t && (this._paper = t, this.validate(), t.appendDef(this.element)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "rotation", { get: function get() { return this._rotation; }, set: function set(t) { this._rotation = t, this.validate(); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.stops.copyFrom(e.stops), this._rotation = e.rotation; }, e; }($s); Fs.registeredClasses.LinearGradient = ia; var na = function (t) { function e() { var e = t.call(this) || this; return e._stops = new Ns(), e.element = e.paper.addGroup("radialGradient"), e.id = "gradient-" + Fs.getUniqueId(), e.element.attr({ id: e.id }), e._disposers.push(e.element), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { var t, e = this, i = this.element; A(this.cx) && ((t = this.cx) instanceof hs && (t = t.percent + "%"), i.attr({ cx: t })), A(this.cy) && ((t = this.cy) instanceof hs && (t = t.percent + "%"), i.attr({ cy: t })), this.fx && ((t = this.fx) instanceof hs && (t = t.percent + "%"), i.attr({ fx: t })), this.fy && ((t = this.fy) instanceof hs && (t = t.percent + "%"), i.attr({ fy: t })), i.removeChildNodes(), pe(me(this._stops.iterator()), function (t) { var n = t[0], r = t[1], s = r.offset; A(s) || (s = n / (e._stops.length - 1)); var o = e.paper.add("stop"); S(r.color) && o.attr({ "stop-color": r.color.toString() }), A(r.opacity) && o.attr({ "stop-opacity": r.opacity }), A(s) && o.attr({ offset: s }), i.add(o); }); }, e.prototype.addColor = function (t, e, i) { this._stops.push({ color: t, opacity: e, offset: i }), this.draw(); }, Object.defineProperty(e.prototype, "paper", { get: function get() { return this._paper ? this._paper : cr(); }, set: function set(t) { this._paper != t && (this._paper = t, this.draw(), t.appendDef(this.element)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cx", { get: function get() { return this._cx; }, set: function set(t) { this._cx = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cy", { get: function get() { return this._cy; }, set: function set(t) { this._cy = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fx", { get: function get() { return this._fx; }, set: function set(t) { this._fx = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fy", { get: function get() { return this._fy; }, set: function set(t) { this._fy = t, this.draw(); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.stops.copyFrom(e.stops), this.cx = e.cx, this.cy = e.cy, this.fx = e.fx, this.fy = e.fy; }, Object.defineProperty(e.prototype, "stops", { get: function get() { return this._stops; }, enumerable: !0, configurable: !0 }), e.prototype.clear = function () { this._stops.clear(); }, e; }($s); Fs.registeredClasses.RadialGradient = na; var ra, sa = function () { function t() {} return t.grab = [{ property: "cursor", value: "move" }, { property: "cursor", value: "grab" }, { property: "cursor", value: "-webkit-grab" }], t.grabbing = [{ property: "cursor", value: "move" }, { property: "cursor", value: "grabbing" }, { property: "cursor", value: "-webkit-grabbing" }], t.pointer = [{ property: "cursor", value: "pointer" }], t["default"] = [{ property: "cursor", value: "default" }], t.horizontalResize = [{ property: "cursor", value: "ew-resize" }], t.verticalResize = [{ property: "cursor", value: "ns-resize" }], t; }(), oa = { _decimalSeparator: ".", _thousandSeparator: ",", _big_number_suffix_3: "k", _big_number_suffix_6: "M", _big_number_suffix_9: "G", _big_number_suffix_12: "T", _big_number_suffix_15: "P", _big_number_suffix_18: "E", _big_number_suffix_21: "Z", _big_number_suffix_24: "Y", _small_number_suffix_3: "m", _small_number_suffix_6: "μ", _small_number_suffix_9: "n", _small_number_suffix_12: "p", _small_number_suffix_15: "f", _small_number_suffix_18: "a", _small_number_suffix_21: "z", _small_number_suffix_24: "y", _byte_suffix_B: "B", _byte_suffix_KB: "KB", _byte_suffix_MB: "MB", _byte_suffix_GB: "GB", _byte_suffix_TB: "TB", _byte_suffix_PB: "PB", _date: "yyyy-MM-dd", _date_millisecond: "mm:ss SSS", _date_second: "HH:mm:ss", _date_minute: "HH:mm", _date_hour: "HH:mm", _date_day: "MMM dd", _date_week: "ww", _date_month: "MMM", _date_year: "yyyy", _duration_millisecond: "SSS", _duration_millisecond_second: "ss.SSS", _duration_millisecond_minute: "mm:ss SSS", _duration_millisecond_hour: "hh:mm:ss SSS", _duration_millisecond_day: "d'd' mm:ss SSS", _duration_millisecond_week: "d'd' mm:ss SSS", _duration_millisecond_month: "M'm' dd'd' mm:ss SSS", _duration_millisecond_year: "y'y' MM'm' dd'd' mm:ss SSS", _duration_second: "ss", _duration_second_minute: "mm:ss", _duration_second_hour: "hh:mm:ss", _duration_second_day: "d'd' hh:mm:ss", _duration_second_week: "d'd' hh:mm:ss", _duration_second_month: "M'm' dd'd' hh:mm:ss", _duration_second_year: "y'y' MM'm' dd'd' hh:mm:ss", _duration_minute: "mm", _duration_minute_hour: "hh:mm", _duration_minute_day: "d'd' hh:mm", _duration_minute_week: "d'd' hh:mm", _duration_minute_month: "M'm' dd'd' hh:mm", _duration_minute_year: "y'y' MM'm' dd'd' hh:mm", _duration_hour: "hh'h'", _duration_hour_day: "d'd' hh'h'", _duration_hour_week: "d'd' hh'h'", _duration_hour_month: "M'm' dd'd' hh'h'", _duration_hour_year: "y'y' MM'm' dd'd' hh'h'", _duration_day: "d'd'", _duration_day_week: "d'd'", _duration_day_month: "M'm' dd'd'", _duration_day_year: "y'y' MM'm' dd'd'", _duration_week: "w'w'", _duration_week_month: "w'w'", _duration_week_year: "w'w'", _duration_month: "M'm'", _duration_month_year: "y'y' MM'm'", _duration_year: "y'y'", _era_ad: "AD", _era_bc: "BC", A: "", P: "", AM: "", PM: "", "A.M.": "", "P.M.": "", January: "", February: "", March: "", April: "", May: "", June: "", July: "", August: "", September: "", October: "", November: "", December: "", Jan: "", Feb: "", Mar: "", Apr: "", "May(short)": "May", Jun: "", Jul: "", Aug: "", Sep: "", Oct: "", Nov: "", Dec: "", Sunday: "", Monday: "", Tuesday: "", Wednesday: "", Thursday: "", Friday: "", Saturday: "", Sun: "", Mon: "", Tue: "", Wed: "", Thu: "", Fri: "", Sat: "", _dateOrd: function _dateOrd(t) { var e = "th"; if (t < 11 || t > 13) switch (t % 10) { case 1: e = "st"; break; case 2: e = "nd"; break; case 3: e = "rd"; } return e; }, "Zoom Out": "", Play: "", Stop: "", Legend: "", "Click, tap or press ENTER to toggle": "", Loading: "", Home: "", Chart: "", "Serial chart": "", "X/Y chart": "", "Pie chart": "", "Gauge chart": "", "Radar chart": "", "Sankey diagram": "", "Flow diagram": "", "Chord diagram": "", "TreeMap chart": "", "Force directed tree": "", "Sliced chart": "", Series: "", "Candlestick Series": "", "OHLC Series": "", "Column Series": "", "Line Series": "", "Pie Slice Series": "", "Funnel Series": "", "Pyramid Series": "", "X/Y Series": "", Map: "", "Press ENTER to zoom in": "", "Press ENTER to zoom out": "", "Use arrow keys to zoom in and out": "", "Use plus and minus keys on your keyboard to zoom in and out": "", Export: "", Image: "", Data: "", Print: "", "Click, tap or press ENTER to open": "", "Click, tap or press ENTER to print.": "", "Click, tap or press ENTER to export as %1.": "", 'To save the image, right-click this link and choose "Save picture as..."': "", 'To save the image, right-click thumbnail on the left and choose "Save picture as..."': "", "(Press ESC to close this message)": "", "Image Export Complete": "", "Export operation took longer than expected. Something might have gone wrong.": "", "Saved from": "", PNG: "", JPG: "", GIF: "", SVG: "", PDF: "", JSON: "", CSV: "", XLSX: "", "Use TAB to select grip buttons or left and right arrows to change selection": "", "Use left and right arrows to move selection": "", "Use left and right arrows to move left selection": "", "Use left and right arrows to move right selection": "", "Use TAB select grip buttons or up and down arrows to change selection": "", "Use up and down arrows to move selection": "", "Use up and down arrows to move lower selection": "", "Use up and down arrows to move upper selection": "", "From %1 to %2": "", "From %1": "", "To %1": "", "No parser available for file: %1": "", "Error parsing file: %1": "", "Unable to load file: %1": "", "Invalid date": "" }, aa = function (t) { function e() { var e = t.call(this) || this; return e.adapter = new Ks(e), e._locale = oa, e._defaultLocale = oa, e.className = "Language", S(Ms.defaultLocale) && (e.locale = Ms.defaultLocale), e.applyTheme(), e; } return n(e, t), e.prototype.getLocale = function (t) { return null == t && (t = this._locale), this.adapter.apply("locale", { locale: t }).locale; }, e.prototype.translate = function (t, e) { for (var i = [], n = 2; n < arguments.length; n++) i[n - 2] = arguments[n]; e = this.getLocale(e); var r = t, s = this.getTranslations(e), o = s[t]; if (null === o) o = "";else if (S(o)) o && (r = o);else if (e !== this._defaultLocale) return this.translate.apply(this, l([t, this._defaultLocale], i)); if (i.length) for (var a = i.length, h = 0; h < a; ++h) r = r.split("%" + (h + 1)).join(i[h]); return this.adapter.apply("translate", { translation: r, locale: e }).translation; }, e.prototype.translateAny = function (t, e) { for (var i = [], n = 2; n < arguments.length; n++) i[n - 2] = arguments[n]; return this.translate(t, e); }, e.prototype.translateEmpty = function (t, e) { for (var i = [], n = 2; n < arguments.length; n++) i[n - 2] = arguments[n]; var r = this.translate.apply(this, l([t, e], i)); return r == t ? "" : r; }, e.prototype.translateFunc = function (t, e) { e = this.getLocale(e); var i = this.getTranslations(e)[t]; return null != i ? i : e !== this._defaultLocale ? this.translateFunc(t, this._defaultLocale) : function () { return ""; }; }, e.prototype.translateAll = function (t, e) { var i = this; return this.isDefault() ? t : yt(t, function (t) { return i.translate(t, e); }); }, e.prototype.isDefault = function () { return this._defaultLocale === this._locale; }, Object.defineProperty(e.prototype, "locale", { get: function get() { return this._locale; }, set: function set(t) { if (this._locale != t && (this._locale = t, this.events.isEnabled("localechanged"))) { var e = { type: "localechanged", locale: t, target: this }; this.events.dispatchImmediately("localechanged", e); } }, enumerable: !0, configurable: !0 }), e.prototype.getTranslations = function (t) { return this.adapter.apply("translations", { translations: t, locale: t }).translations; }, e; }(Js), la = function (t) { function e() { var e = t.call(this) || this; return e.adapter = new Ks(e), e.className = "TextFormatter", e.applyTheme(), e; } return n(e, t), e.prototype.debug = function () {}, e.prototype.format = function (t, e) { S(e) || (e = "svg"); var i = "", n = (t = this.escape(t)).match(/\[([^\]]*?)\]/gm); if (!n) return this.wrap(t, "", e); for (var r = t.split(/\[[^\[\]]*\]/), s = 0, o = r.length; s < o; s++) { var a = r[s]; if ("" !== a) { a = this.adapter.apply("chunk", a); var l = ""; s > 0 && (l = n[s - 1].replace("[", "").replace("]", "")), i += this.wrap(a, l, e); } } return i = this.unescape(i), this.cleanUp(i); }, e.prototype.escape = function (t) { return t.replace(/\[\[/g, Fs.getPlaceholder("1")).replace(/([^\/]{1})\]\]/g, "$1" + Fs.getPlaceholder("2")).replace(/\{\{/g, Fs.getPlaceholder("3")).replace(/\}\}/g, Fs.getPlaceholder("4")).replace(/\'\'/g, Fs.getPlaceholder("5")); }, e.prototype.unescape = function (t) { return t.replace(new RegExp(Fs.getPlaceholder("1"), "g"), "[[").replace(new RegExp(Fs.getPlaceholder("2"), "g"), "]]").replace(new RegExp(Fs.getPlaceholder("3"), "g"), "{{").replace(new RegExp(Fs.getPlaceholder("4"), "g"), "}}").replace(new RegExp(Fs.getPlaceholder("5"), "g"), "'"); }, e.prototype.cleanUp = function (t) { return t.replace(/\[\[/g, "[").replace(/\]\]/g, "]").replace(/\{\{/g, "{").replace(/\}\}/g, "}").replace(/\'\'/g, "'"); }, e.prototype.wrap = function (t, e, i) { switch ("" !== e && "/" !== e || (e = ""), i) { case "html": return this.wrapHtml(t, this.translateStyleShortcuts(e)); default: return this.wrapSvg(t, this.translateStyleShortcuts(e)); } }, e.prototype.wrapSvg = function (t, e) { return "" === e ? "<tspan>" + t + "</tspan>" : "<tspan style='" + e + "'>" + t + "</tspan>"; }, e.prototype.getSvgElement = function (t, e) { var i = new Mo("tspan"); return i.textContent = t, e && i.node.setAttribute("style", e), i; }, e.prototype.wrapHtml = function (t, e) { return "" === e ? "<span>" + t + "</span>" : "<span style='" + this.styleSvgToHtml(e) + "'>" + t + "</span>"; }, e.prototype.getHtmlElement = function (t, e) { var i = document.createElement("span"); return i.innerHTML = t, e && i.setAttribute("style", e), i; }, e.prototype.styleSvgToHtml = function (t) { return t = t.replace(/fill:/, "color:"); }, e.prototype.translateStyleShortcuts = function (t) { if ("" == t || "[ ]" == t) return ""; var e = Fs.getCache("translateStyleShortcuts_" + t); if (e) return e; var i = t.match(/([\w\-]*:[\s]?[^;\s\]]*)|(\#[\w]{1,6})|([\w]+)|(\/)/gi); if (!i) return t; for (var n = 0; n < i.length; n++) i[n].match(/^bold$/i) ? i[n] = "font-weight:" + i[n] : "/" == i[n] ? i[n] = "" : i[n].match(/:/) || (i[n] = "fill:" + i[n]); var r = i.join(";"); return Fs.setCache("translateStyleShortcuts_" + t, r), r; }, e.prototype.chunk = function (t, e, i) { void 0 === e && (e = !1), void 0 === i && (i = !1); var n = []; t = this.escape(t); for (var r = e ? t.split("'") : [t], s = 0; s < r.length; s++) { var o = r[s]; if ("" !== o) if (s % 2 == 0) for (var a = (o = (o = o.replace(/\]\[/g, "]" + ro + "[")).replace(/\[\]/g, "[ ]")).split(/[\[\]]+/), l = 0; l < a.length; l++) (h = this.cleanUp(this.unescape(a[l]))) !== ro && "" !== h && (l % 2 == 0 ? n.push({ type: "value", text: this.adapter.apply("chunk", h) }) : n.push({ type: i ? "value" : "format", text: "[" + h + "]" }));else for (a = o.split(/[\[\]]+/), l = 0; l < a.length; l++) { var h; "" !== (h = this.cleanUp(this.unescape(a[l]))) && (l % 2 == 0 ? n.push({ type: "text", text: h }) : this.isImage(h) ? n.push({ type: "image", text: "[" + h + "]" }) : n.push({ type: "format", text: "[" + h + "]" })); } } return n; }, e.prototype.isImage = function (t) { return !!t.match(/img[ ]?:/); }, e; }($s); Fs.registeredClasses.TextFormatter = la; var ha = function (t) { function e() { var e = t.call(this) || this; return e._negativeBase = 0, e._numberFormat = "#,###.#####", e._outputFormat = "svg", e._smallNumberThreshold = 1, e.className = "NumberFormatter", e.applyTheme(), e; } return n(e, t), e.prototype.dispose = function () { t.prototype.dispose.call(this), this.language && this.language.dispose(); }, Object.defineProperty(e.prototype, "language", { get: function get() { return this._language || (this.sprite ? this._language = this.sprite.language : this._language = new aa()), this._language; }, set: function set(t) { this._language = t; }, enumerable: !0, configurable: !0 }), e.prototype.format = function (t, e) { void 0 !== e && "number" !== e.toLowerCase() || (e = this._numberFormat), e = Si(e); var i, n = this.parseFormat(e, this.language), r = Number(t); return (i = r > this._negativeBase ? n.positive : r < this._negativeBase ? n.negative : n.zero).template.split(ro).join(this.applyFormat(r, i)); }, e.prototype.parseFormat = function (t, e) { var i = this, n = this.getCache(t); if (S(n)) return n; var r = { positive: { thousands: { active: -1, passive: -1, interval: -1, separator: e.translateEmpty("_thousandSeparator") }, decimals: { active: -1, passive: -1, separator: e.translateEmpty("_decimalSeparator") }, template: "", source: "", parsed: !1 }, negative: { thousands: { active: -1, passive: -1, interval: -1, separator: e.translateEmpty("_thousandSeparator") }, decimals: { active: -1, passive: -1, separator: e.translateEmpty("_decimalSeparator") }, template: "", source: "", parsed: !1 }, zero: { thousands: { active: -1, passive: -1, interval: -1, separator: e.translateEmpty("_thousandSeparator") }, decimals: { active: -1, passive: -1, separator: e.translateEmpty("_decimalSeparator") }, template: "", source: "", parsed: !1 } }, s = (t = t.replace("||", so)).split("|"); return r.positive.source = s[0], void 0 === s[2] ? r.zero = r.positive : r.zero.source = s[2], void 0 === s[1] ? r.negative = r.positive : r.negative.source = s[1], Qt(r, function (t, e) { if (!e.parsed) if (void 0 === i.getCache(e.source)) { var n = e.source; "number" === n.toLowerCase() && (n = i._numberFormat); for (var s = dr().chunk(n, !0), o = 0; o < s.length; o++) { var a = s[o]; if (a.text = a.text.replace(so, "|"), "value" === a.type) { var l = a.text.match(/[#0.,]+[ ]?[abesABES%!]?[abesABES‰!]?/); if (l) if (null === l || "" === l[0]) e.template += a.text;else { var h = l[0].match(/[abesABES%‰!]{2}|[abesABES%‰]{1}$/); h && (e.mod = h[0].toLowerCase(), e.modSpacing = !!l[0].match(/[ ]{1}[abesABES%‰!]{1}$/)); var u = l[0].split("."); if ("" === u[0]) ;else { e.thousands.active = (u[0].match(/0/g) || []).length, e.thousands.passive = (u[0].match(/\#/g) || []).length + e.thousands.active; var p = u[0].split(","); 1 === p.length || (e.thousands.interval = I(p.pop()).length, 0 === e.thousands.interval && (e.thousands.interval = -1)); } void 0 === u[1] || (e.decimals.active = (u[1].match(/0/g) || []).length, e.decimals.passive = (u[1].match(/\#/g) || []).length + e.decimals.active), e.template += a.text.split(l[0]).join(ro); } } else e.template += a.text; } i.setCache(e.source, e), e.parsed = !0; } else r[t] = i.getCache(e.source); }), this.setCache(t, r), r; }, e.prototype.applyFormat = function (t, e) { var i = t < 0; t = Math.abs(t); var n = "", r = "", s = e.mod ? e.mod.split("") : []; if (-1 !== s.indexOf("b")) { var o = this.applyPrefix(t, this.bytePrefixes, -1 !== s.indexOf("!")); t = o[0], n = o[1], r = o[2], e.modSpacing && (r = " " + r); } else if (-1 !== s.indexOf("a")) { var a = this.applyPrefix(t, t < this.smallNumberThreshold ? this.smallNumberPrefixes : this.bigNumberPrefixes, -1 !== s.indexOf("!")); t = a[0], n = a[1], r = a[2], e.modSpacing && (r = " " + r); } else if (-1 !== s.indexOf("%")) { var l = t.toString().length; t *= 100, t = parseFloat(t.toPrecision(l + 2)), r = "%"; } else -1 !== s.indexOf("‰") && (l = t.toString().length, t *= 1e3, t = parseFloat(t.toPrecision(l + 3)), r = "‰"); if (-1 !== s.indexOf("e")) { var h = void 0; h = e.decimals.passive >= 0 ? t.toExponential(e.decimals.passive).split("e") : t.toExponential().split("e"), t = Number(h[0]), r = "e" + h[1], e.modSpacing && (r = " " + r); } else if (0 === e.decimals.passive) t = Math.round(t);else if (e.decimals.passive > 0) { var u = Math.pow(10, e.decimals.passive); t = Math.round(t * u) / u; } var p = "", c = ki(t).split("."), d = c[0]; if (d.length < e.thousands.active && (d = Array(e.thousands.active - d.length + 1).join("0") + d), e.thousands.interval > 0) { for (var f = [], g = d.split("").reverse().join(""), y = 0, m = d.length; y <= m; y += e.thousands.interval) { var v = g.substr(y, e.thousands.interval).split("").reverse().join(""); "" !== v && f.unshift(v); } d = f.join(e.thousands.separator); } p += d, 1 === c.length && c.push(""); var b = c[1]; return b.length < e.decimals.active && (b += Array(e.decimals.active - b.length + 1).join("0")), "" !== b && (p += e.decimals.separator + b), "" === p && (p = "0"), 0 !== t && i && -1 === s.indexOf("s") && (p = "-" + p), n && (p = n + p), r && (p += r), p; }, e.prototype.applyPrefix = function (t, e, i) { void 0 === i && (i = !1); for (var n = t, r = "", s = "", o = !1, a = 1, l = 0, h = e.length; l < h; l++) e[l].number <= t && (0 === e[l].number ? n = 0 : (n = t / e[l].number, a = e[l].number), r = e[l].prefix, s = e[l].suffix, o = !0); return !o && i && e.length && 0 != t && (n = t / e[0].number, r = e[0].prefix, s = e[0].suffix, o = !0), o && (n = parseFloat(n.toPrecision(a.toString().length + Math.floor(n).toString().replace(/[^0-9]*/g, "").length))), [n, r, s]; }, e.prototype.invalidateSprite = function () { this.sprite && this.sprite.invalidate(); }, Object.defineProperty(e.prototype, "numberFormat", { get: function get() { return this._numberFormat; }, set: function set(t) { this._numberFormat = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "negativeBase", { get: function get() { return this._negativeBase; }, set: function set(t) { this._negativeBase = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bigNumberPrefixes", { get: function get() { return S(this._bigNumberPrefixes) || (this._bigNumberPrefixes = [{ number: 1e3, suffix: this.language.translate("_big_number_suffix_3") }, { number: 1e6, suffix: this.language.translate("_big_number_suffix_6") }, { number: 1e9, suffix: this.language.translate("_big_number_suffix_9") }, { number: 1e12, suffix: this.language.translate("_big_number_suffix_12") }, { number: 1e15, suffix: this.language.translate("_big_number_suffix_15") }, { number: 1e18, suffix: this.language.translate("_big_number_suffix_18") }, { number: 1e21, suffix: this.language.translate("_big_number_suffix_21") }, { number: 1e24, suffix: this.language.translate("_big_number_suffix_24") }]), this._bigNumberPrefixes; }, set: function set(t) { this._bigNumberPrefixes = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "smallNumberPrefixes", { get: function get() { return S(this._smallNumberPrefixes) || (this._smallNumberPrefixes = [{ number: 1e-24, suffix: this.language.translate("_small_number_suffix_24") }, { number: 1e-21, suffix: this.language.translate("_small_number_suffix_21") }, { number: 1e-18, suffix: this.language.translate("_small_number_suffix_18") }, { number: 1e-15, suffix: this.language.translate("_small_number_suffix_15") }, { number: 1e-12, suffix: this.language.translate("_small_number_suffix_12") }, { number: 1e-9, suffix: this.language.translate("_small_number_suffix_9") }, { number: 1e-6, suffix: this.language.translate("_small_number_suffix_6") }, { number: .001, suffix: this.language.translate("_small_number_suffix_3") }]), this._smallNumberPrefixes; }, set: function set(t) { this._smallNumberPrefixes = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "smallNumberThreshold", { get: function get() { return this._smallNumberThreshold; }, set: function set(t) { this._smallNumberThreshold = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bytePrefixes", { get: function get() { return S(this._bytePrefixes) || (this._bytePrefixes = [{ number: 1, suffix: this.language.translate("_byte_suffix_B") }, { number: 1024, suffix: this.language.translate("_byte_suffix_KB") }, { number: 1048576, suffix: this.language.translate("_byte_suffix_MB") }, { number: 1073741824, suffix: this.language.translate("_byte_suffix_GB") }, { number: 1099511627776, suffix: this.language.translate("_byte_suffix_TB") }, { number: 0x4000000000000, suffix: this.language.translate("_byte_suffix_PB") }]), this._bytePrefixes; }, set: function set(t) { this._bytePrefixes = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "outputFormat", { get: function get() { return this._outputFormat; }, set: function set(t) { this._outputFormat = t.toLowerCase(), this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), e.prototype.escape = function (t) { return t.replace("||", so); }, e.prototype.unescape = function (t) { return t.replace(so, "|"); }, e; }($s); Fs.registeredClasses.NumberFormatter = ha; var ua = function (t) { function e() { var e = t.call(this) || this; return e._dateFormat = "yyyy-MM-dd", e._inputDateFormat = "yyyy-MM-dd", e._utc = !1, e._firstDayOfWeek = 1, e._months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], e._monthsShort = ["Jan", "Feb", "Mar", "Apr", "May(short)", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], e._weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], e._weekdaysShort = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], e._outputFormat = "svg", e.capitalize = !0, e.className = "DateFormatter", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "language", { get: function get() { return this._language; }, set: function set(t) { this._language = t, this.dateFormat = this._language.translate("_date"); }, enumerable: !0, configurable: !0 }), e.prototype.format = function (t, e) { var i, n; if (this.language || (this.sprite ? this.language = this.sprite.language : this.language = new aa()), void 0 !== e && "" !== e || (e = this._dateFormat), n = T(t) ? this.parse(t) : Ti(t), e instanceof Object) return this.intlLocales ? new Intl.DateTimeFormat(this.intlLocales, e).format(n) : new Intl.DateTimeFormat(null, e).format(n); e = Si(e); var r = this.parseFormat(e); return S(this.timezoneOffset) && n.setMinutes(n.getMinutes() + n.getTimezoneOffset() - this.timezoneOffset), A(n.getTime()) ? (i = this.applyFormat(n, r, this.language), this.capitalize && (i = i.replace(/^.{1}/, i.substr(0, 1).toUpperCase())), i) : this.language.translate("Invalid date"); }, e.prototype.parseFormat = function (t) { var e = this.getCache(t); if (S(e)) return e; for (var i = { template: "", parts: [] }, n = dr().chunk(t, !0), r = 0; r < n.length; r++) { var s = n[r]; if ("value" === s.type) { s.text.match(/^date$/i) && T(this._dateFormat) && (s.text = this._dateFormat); var o = s.text.match(/G|yyyy|yyy|yy|y|YYYY|YYY|YY|Y|u|MMMMM|MMMM|MMM|MM|M|ww|w|W|dd|d|DDD|DD|D|F|g|EEEEE|EEEE|EEE|EE|E|eeeee|eeee|eee|ee|e|aaa|aa|a|hh|h|HH|H|KK|K|kk|k|mm|m|ss|s|SSS|SS|S|A|zzzz|zzz|zz|z|ZZ|Z|t|x|nnn|nn|n|i|I/g); if (o) for (var a = 0; a < o.length; a++) i.parts.push(o[a]), s.text = s.text.replace(o[a], ro); } i.template += s.text; } return this.setCache(t, i), i; }, e.prototype.applyFormat = function (t, e, i) { var n, r, s, o, a, l, h, u, p = e.template, c = t.getTimezoneOffset(), d = t.getTime(); this.utc ? (n = t.getUTCFullYear(), r = t.getUTCMonth(), s = t.getUTCDay(), o = t.getUTCDate(), a = t.getUTCHours(), l = t.getUTCMinutes(), h = t.getUTCSeconds(), u = t.getUTCMilliseconds()) : (n = t.getFullYear(), r = t.getMonth(), s = t.getDay(), o = t.getDate(), a = t.getHours(), l = t.getMinutes(), h = t.getSeconds(), u = t.getMilliseconds()); for (var f = 0, g = e.parts.length; f < g; f++) { var y = ""; switch (e.parts[f]) { case "G": y = i.translate(n < 0 ? "_era_bc" : "_era_ad"); break; case "yyyy": y = Math.abs(n).toString(), n < 0 && (y += i.translate("_era_bc")); break; case "yyy": case "yy": case "y": y = Math.abs(n).toString().substr(-e.parts[f].length), n < 0 && (y += i.translate("_era_bc")); break; case "YYYY": case "YYY": case "YY": case "Y": var m = n; 1 == Fi(t) && s > 1 && m--, y = "YYYY" == e.parts[f] ? Math.abs(m).toString() : Math.abs(m).toString().substr(-e.parts[f].length), m < 0 && (y += i.translate("_era_bc")); break; case "u": break; case "MMMMM": y = i.translate(this._months[r]).substr(0, 1); break; case "MMMM": y = i.translate(this._months[r]); break; case "MMM": y = i.translate(this._monthsShort[r]); break; case "MM": y = Ci(r + 1, 2, "0"); break; case "M": y = (r + 1).toString(); break; case "ww": y = Ci(Fi(t, this.utc), 2, "0"); break; case "w": y = Fi(t, this.utc).toString(); break; case "W": y = Mi(t, this.utc).toString(); break; case "dd": y = Ci(o, 2, "0"); break; case "d": y = o.toString(); break; case "DD": case "DDD": y = Ci(Vi(t, this.utc).toString(), e.parts[f].length, "0"); break; case "D": y = Vi(t, this.utc).toString(); break; case "F": case "g": break; case "t": y = i.translateFunc("_dateOrd").call(this, o); break; case "E": y = (s || 7).toString(); break; case "EE": y = Ci((s || 7).toString(), 2, "0"); break; case "EEE": case "eee": y = i.translate(this._weekdaysShort[s]); break; case "EEEE": case "eeee": y = i.translate(this._weekdays[s]); break; case "EEEEE": case "eeeee": y = i.translate(this._weekdays[s]).substr(0, 1); break; case "e": case "ee": y = (s - this.firstDayOfWeek + 1).toString(), "ee" == e.parts[f] && (y = Ci(y, 2, "0")); break; case "a": y = a >= 12 ? i.translate("PM") : i.translate("AM"); break; case "aa": y = a >= 12 ? i.translate("P.M.") : i.translate("A.M."); break; case "aaa": y = a >= 12 ? i.translate("P") : i.translate("A"); break; case "h": y = Li(a).toString(); break; case "hh": y = Ci(Li(a), 2, "0"); break; case "H": y = a.toString(); break; case "HH": y = Ci(a, 2, "0"); break; case "K": y = Li(a, 0).toString(); break; case "KK": y = Ci(Li(a, 0), 2, "0"); break; case "k": y = (a + 1).toString(); break; case "kk": y = Ci(a + 1, 2, "0"); break; case "m": y = l.toString(); break; case "mm": y = Ci(l, 2, "0"); break; case "s": y = h.toString(); break; case "ss": y = Ci(h, 2, "0"); break; case "S": case "SS": case "SSS": y = Math.round(u / 1e3 * Math.pow(10, e.parts[f].length)).toString(); break; case "x": y = d.toString(); break; case "n": case "nn": case "nnn": y = Ci(u, e.parts[f].length, "0"); break; case "z": y = Ei(t, !1, !1, this.utc); break; case "zz": y = Ei(t, !0, !1, this.utc); break; case "zzz": y = Ei(t, !1, !0, this.utc); break; case "zzzz": y = Ei(t, !0, !0, this.utc); break; case "Z": case "ZZ": var v = Math.abs(c) / 60, b = Math.floor(v), x = 60 * v - 60 * b; this.utc && (b = 0, x = 0), "Z" == e.parts[f] ? (y = "GMT", y += c > 0 ? "-" : "+", y += Ci(b, 2) + ":" + Ci(x, 2)) : (y = c > 0 ? "-" : "+", y += Ci(b, 2) + Ci(x, 2)); break; case "i": y = t.toISOString(); break; case "I": y = t.toUTCString(); } p = p.replace(ro, y); } return p; }, e.prototype.parse = function (t, e) { if (S(e) || (e = this.inputDateFormat), t instanceof Date) return t; if ("number" == typeof t) return new Date(t); var i; "string" != typeof t && (t = t.toString()), this.language || (this.sprite ? this.language = this.sprite.language : this.language = new aa()); var n = ""; e = (e = Si(e)).substr(0, t.length); for (var r = this.parseFormat(e), s = { year: -1, year3: -1, year2: -1, year1: -1, month: -1, monthShort: -1, monthLong: -1, weekdayShort: -1, weekdayLong: -1, day: -1, yearDay: -1, week: -1, hourBase0: -1, hour12Base0: -1, hourBase1: -1, hour12Base1: -1, minute: -1, second: -1, millisecond: -1, millisecondDigits: -1, am: -1, zone: -1, timestamp: -1, iso: -1 }, o = { year: 1970, month: 0, day: 1, hour: 0, minute: 0, second: 0, millisecond: 0, timestamp: null, offset: 0, utc: this.utc }, a = 0, l = 0, h = 0; h < r.parts.length; h++) { switch (l = h + a + 1, r.parts[h]) { case "yyyy": case "YYYY": n += "([0-9]{4})", s.year = l; break; case "yyy": case "YYY": n += "([0-9]{3})", s.year3 = l; break; case "yy": case "YY": n += "([0-9]{2})", s.year2 = l; break; case "y": case "Y": n += "([0-9]{1})", s.year1 = l; break; case "MMMM": n += "(" + this.getStringList(this._months).join("|") + ")", s.monthLong = l; break; case "MMM": n += "(" + this.getStringList(this._monthsShort).join("|") + ")", s.monthShort = l; break; case "MM": case "M": n += "([0-9]{2}|[0-9]{1})", s.month = l; break; case "ww": case "w": n += "([0-9]{2}|[0-9]{1})", s.week = l; break; case "dd": case "d": n += "([0-9]{2}|[0-9]{1})", s.day = l; break; case "DDD": case "DD": case "D": n += "([0-9]{3}|[0-9]{2}|[0-9]{1})", s.yearDay = l; break; case "dddd": n += "(" + this.getStringList(this._weekdays).join("|") + ")", s.weekdayLong = l; break; case "ddd": n += "(" + this.getStringList(this._weekdaysShort).join("|") + ")", s.weekdayShort = l; break; case "aaa": case "aa": case "a": n += "(" + this.getStringList(["AM", "PM", "A.M.", "P.M.", "A", "P"]).join("|") + ")", s.am = l; break; case "hh": case "h": n += "([0-9]{2}|[0-9]{1})", s.hour12Base1 = l; break; case "HH": case "H": n += "([0-9]{2}|[0-9]{1})", s.hourBase0 = l; break; case "KK": case "K": n += "([0-9]{2}|[0-9]{1})", s.hour12Base0 = l; break; case "kk": case "k": n += "([0-9]{2}|[0-9]{1})", s.hourBase1 = l; break; case "mm": case "m": n += "([0-9]{2}|[0-9]{1})", s.minute = l; break; case "ss": case "s": n += "([0-9]{2}|[0-9]{1})", s.second = l; break; case "SSS": case "SS": case "S": n += "([0-9]{3}|[0-9]{2}|[0-9]{1})", s.millisecond = l, s.millisecondDigits = r.parts[h].length; break; case "nnn": case "nn": case "n": n += "([0-9]{3}|[0-9]{2}|[0-9]{1})", s.millisecond = l; break; case "x": n += "([0-9]{1,})", s.timestamp = l; break; case "Z": n += "GMT([-+]+[0-9]{2}:[0-9]{2})", s.zone = l; break; case "ZZ": n += "([\\-+]+[0-9]{2}[0-9]{2})", s.zone = l; break; case "i": n += "([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2}).([0-9]{3})([Zz]?)", s.iso = l, a += 7; break; case "G": case "YYYY": case "YYY": case "YY": case "Y": case "MMMMM": case "W": case "EEEEE": case "EEEE": case "EEE": case "EE": case "E": case "eeeee": case "eeee": case "eee": case "ee": case "e": case "zzzz": case "zzz": case "zz": case "z": case "t": a--; } n += "[^0-9]*"; } var u = new RegExp(n), p = t.match(u); if (p) { if (s.year > -1 && (o.year = parseInt(p[s.year])), s.year3 > -1) { var c = parseInt(p[s.year3]); c += 1e3, o.year = c; } if (s.year2 > -1 && (c = parseInt(p[s.year2]), c += c > 50 ? 1e3 : 2e3, o.year = c), s.year1 > -1 && (c = parseInt(p[s.year1]), c = 10 * Math.floor(new Date().getFullYear() / 10) + c, o.year = c), s.monthLong > -1 && (o.month = this.resolveMonth(p[s.monthLong])), s.monthShort > -1 && (o.month = this.resolveShortMonth(p[s.monthShort])), s.month > -1 && (o.month = parseInt(p[s.month]) - 1), s.week > -1 && -1 === s.day && (o.month = 0, o.day = ji(parseInt(p[s.week]), o.year, 1, this.utc)), s.day > -1 && (o.day = parseInt(p[s.day])), s.yearDay > -1 && (o.month = 0, o.day = parseInt(p[s.yearDay])), s.hourBase0 > -1 && (o.hour = parseInt(p[s.hourBase0])), s.hourBase1 > -1 && (o.hour = parseInt(p[s.hourBase1]) - 1), s.hour12Base0 > -1 && (11 == (c = parseInt(p[s.hour12Base0])) && (c = 0), s.am > -1 && !this.isAm(p[s.am]) && (c += 12), o.hour = c), s.hour12Base1 > -1 && (12 == (c = parseInt(p[s.hour12Base1])) && (c = 0), s.am > -1 && !this.isAm(p[s.am]) && (c += 12), o.hour = c), s.minute > -1 && (o.minute = parseInt(p[s.minute])), s.second > -1 && (o.second = parseInt(p[s.second])), s.millisecond > -1 && (c = parseInt(p[s.millisecond]), 2 == s.millisecondDigits ? c *= 10 : 1 == s.millisecondDigits && (c *= 100), o.millisecond = c), s.timestamp > -1 && (o.timestamp = parseInt(p[s.timestamp])), s.zone > -1) { var d = I(p[s.zone].replace(/:/, "").match(/([+\-]?)([0-9]{2})([0-9]{2})/)), f = d[1], g = d[2], y = d[3], m = 60 * parseInt(g) + parseInt(y); "+" == f && (m *= -1); var v = m - new Date().getTimezoneOffset(); o.offset = v; } s.iso > -1 && ("Z" != p[s.iso + 7] && "z" != p[s.iso + 7] || (o.utc = !0), o.year = w(p[s.iso + 0]), o.month = w(p[s.iso + 1]) - 1, o.day = w(p[s.iso + 2]), o.hour = w(p[s.iso + 3]), o.minute = w(p[s.iso + 4]), o.second = w(p[s.iso + 5]), o.millisecond = w(p[s.iso + 6])), i = o.utc ? new Date(Date.UTC(o.year, o.month, o.day, o.hour, o.minute, o.second, o.millisecond)) : new Date(o.year, o.month, o.day, o.hour, o.minute, o.second, o.millisecond); } else i = new Date(t); return i; }, e.prototype.resolveMonth = function (t) { var e = this._months.indexOf(t); return e > -1 ? e : this.language && !this.language.isDefault() && (e = this.language.translateAll(this._months).indexOf(t)) > -1 ? e : 0; }, e.prototype.resolveShortMonth = function (t) { var e = this._monthsShort.indexOf(t); return e > -1 ? e : this.language && !this.language.isDefault() && (e = this.language.translateAll(this._monthsShort).indexOf(t)) > -1 ? e : 0; }, e.prototype.isAm = function (t) { return this.getStringList(["AM", "A.M.", "A"]).indexOf(t.toUpperCase()) > -1; }, e.prototype.invalidateSprite = function () { this.sprite && this.sprite.invalidate(); }, e.prototype.getStringList = function (t) { for (var e = [], i = 0; i < t.length; i++) e.push(yi(t[i])), this.language && !this.language.isDefault() && e.push(yi(this.language.translate(t[i]))); return e; }, Object.defineProperty(e.prototype, "dateFormat", { get: function get() { return this._dateFormat; }, set: function set(t) { this._dateFormat = t, this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "inputDateFormat", { get: function get() { return this._inputDateFormat; }, set: function set(t) { this._inputDateFormat = t, this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "intlLocales", { get: function get() { return this._intlLocales; }, set: function set(t) { this._intlLocales = t, this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "utc", { get: function get() { return this._utc; }, set: function set(t) { this._utc = t, this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "timezoneOffset", { get: function get() { return this._timezoneOffset; }, set: function set(t) { this._timezoneOffset != t && (this._timezoneOffset = t, this.invalidateSprite()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "firstDayOfWeek", { get: function get() { return this._firstDayOfWeek; }, set: function set(t) { this._firstDayOfWeek = t, this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "outputFormat", { get: function get() { return this._outputFormat; }, set: function set(t) { this._outputFormat = t.toLowerCase(), this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), e; }($s); Fs.registeredClasses.DateFormatter = ua; var pa = function (t) { function e() { var e = t.call(this) || this; return e._negativeBase = 0, e._baseUnit = "second", e._outputFormat = "svg", e._unitValues = { millisecond: 1, second: 1e3, minute: 6e4, hour: 36e5, day: 864e5, week: 6048e5, month: 2592e6, year: 31536e6 }, e._unitAliases = { Y: "y", D: "d", H: "h", K: "h", k: "h", n: "S" }, e.className = "DurationFormatter", e.applyTheme(), e; } return n(e, t), e.prototype.format = function (t, e, i) { this.language || (this.sprite ? this.language = this.sprite.language : this.language = new aa()); var n = i || this._baseUnit; void 0 !== e && "" !== e || (e = S(this.durationFormat) ? this.durationFormat : this.getFormat(w(t), null, n)), e = Si(e); var r, s = this.parseFormat(e, n), o = Number(t); r = o > this._negativeBase ? s.positive : o < this._negativeBase ? s.negative : s.zero; var a = this.applyFormat(o, r); return "" !== r.color && ("svg" === this._outputFormat ? a = "<tspan fill='" + r.color + "'>" + a + "</tspan>" : "html" === this._outputFormat && (a = "<span style='color: " + r.color + ";'>" + a + "</span>")), a; }, e.prototype.parseFormat = function (t, e) { var i = this, n = this.getCache(t); if (S(n)) return n; var r = e || this._baseUnit, s = { positive: { color: "", template: "", parts: [], source: "", baseUnit: r, parsed: !1, absolute: !1 }, negative: { color: "", template: "", parts: [], source: "", baseUnit: r, parsed: !1, absolute: !1 }, zero: { color: "", template: "", parts: [], source: "", baseUnit: r, parsed: !1, absolute: !1 } }, o = (t = t.replace("||", so)).split("|"); return s.positive.source = o[0], void 0 === o[2] ? s.zero = s.positive : s.zero.source = o[2], void 0 === o[1] ? s.negative = s.positive : s.negative.source = o[1], Qt(s, function (t, e) { if (!e.parsed) if (void 0 === i.getCache(e.source)) { var n, r = e.source; (n = e.source.match(/^\[([^\]]*)\]/)) && n.length && "" !== n[0] && (r = e.source.substr(n[0].length), e.color = n[1]); for (var o = dr().chunk(r, !0), a = 0; a < o.length; a++) { var l = o[a]; if (l.text = l.text.replace(so, "|"), "value" === l.type) { l.text.match(/[yYMdDwhHKkmsSn]+a/) && (e.absolute = !0, l.text = l.text.replace(/([yYMdDwhHKkmsSn]+)a/, "$1")); var h = l.text.match(/y+|Y+|M+|d+|D+|w+|h+|H+|K+|k+|m+|s+|S+|n+/g); if (h) for (var u = 0; u < h.length; u++) S(h[u]) || (h[u] = i._unitAliases[h[u]]), e.parts.push(h[u]), l.text = l.text.replace(h[u], ro); } e.template += l.text; } i.setCache(e.source, e), e.parsed = !0; } else s[t] = i.getCache(e.source); }), this.setCache(t, s), s; }, e.prototype.applyFormat = function (t, e) { var i = !e.absolute && t < this._negativeBase; t = Math.abs(t); for (var n = this.toTimeStamp(t, e.baseUnit), r = e.template, s = 0, o = e.parts.length; s < o; s++) { var a = e.parts[s], l = this.toTimeUnit(a.substr(0, 1)), h = a.length, u = Math.floor(n / this._unitValues[l]); r = r.replace(ro, Ci(u, h, "0")), n -= u * this._unitValues[l]; } return i && (r = "-" + r), r; }, e.prototype.toTimeStamp = function (t, e) { return t * this._unitValues[e]; }, e.prototype.toTimeUnit = function (t) { switch (t) { case "S": return "millisecond"; case "s": return "second"; case "m": return "minute"; case "h": return "hour"; case "d": return "day"; case "w": return "week"; case "M": return "month"; case "y": return "year"; } }, e.prototype.invalidateSprite = function () { this.sprite && this.sprite.invalidate(); }, Object.defineProperty(e.prototype, "baseUnit", { get: function get() { return this._baseUnit; }, set: function set(t) { this._baseUnit = t, this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "outputFormat", { get: function get() { return this._outputFormat; }, set: function set(t) { this._outputFormat = t.toLowerCase(), this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), e.prototype.getFormat = function (t, e, i) { if (S(this.durationFormat)) return this.durationFormat; if (i || (i = this.baseUnit), S(e) && t != e) { t = Math.abs(t), e = Math.abs(e); var n = this.getValueUnit(W(t, e), i); return this.durationFormats[i][n]; } var r = this.getValueUnit(t, i); return this.durationFormats[i][r]; }, e.prototype.getValueUnit = function (t, e) { var i; e || (e = this.baseUnit); var n = this.getMilliseconds(t, e); return Jt(this._unitValues, function (t, r) { if (t == e || i) { if (n / r <= 1) return i || (i = t), !1; i = t; } return !0; }), i; }, e.prototype.getMilliseconds = function (t, e) { return e || (e = this.baseUnit), t * this._unitValues[e]; }, Object.defineProperty(e.prototype, "durationFormat", { get: function get() { return this._durationFormat; }, set: function set(t) { this._durationFormat != t && (this._durationFormat = t, this.invalidateSprite()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "durationFormats", { get: function get() { return this._durationFormats || (this._durationFormats = { millisecond: { millisecond: this.language.translate("_duration_millisecond"), second: this.language.translate("_duration_millisecond_second"), minute: this.language.translate("_duration_millisecond_minute"), hour: this.language.translate("_duration_millisecond_hour"), day: this.language.translate("_duration_millisecond_day"), week: this.language.translate("_duration_millisecond_week"), month: this.language.translate("_duration_millisecond_month"), year: this.language.translate("_duration_millisecond_year") }, second: { second: this.language.translate("_duration_second"), minute: this.language.translate("_duration_second_minute"), hour: this.language.translate("_duration_second_hour"), day: this.language.translate("_duration_second_day"), week: this.language.translate("_duration_second_week"), month: this.language.translate("_duration_second_month"), year: this.language.translate("_duration_second_year") }, minute: { minute: this.language.translate("_duration_minute"), hour: this.language.translate("_duration_minute_hour"), day: this.language.translate("_duration_minute_day"), week: this.language.translate("_duration_minute_week"), month: this.language.translate("_duration_minute_month"), year: this.language.translate("_duration_minute_year") }, hour: { hour: this.language.translate("_duration_hour"), day: this.language.translate("_duration_hour_day"), week: this.language.translate("_duration_hour_week"), month: this.language.translate("_duration_hour_month"), year: this.language.translate("_duration_hour_year") }, day: { day: this.language.translate("_duration_day"), week: this.language.translate("_duration_day_week"), month: this.language.translate("_duration_day_month"), year: this.language.translate("_duration_day_year") }, week: { week: this.language.translate("_duration_week"), month: this.language.translate("_duration_week_month"), year: this.language.translate("_duration_week_year") }, month: { month: this.language.translate("_duration_month"), year: this.language.translate("_duration_month_year") }, year: { year: this.language.translate("_duration_year") } }), this._durationFormats; }, set: function set(t) { this._durationFormats = t, this.invalidateSprite(); }, enumerable: !0, configurable: !0 }), e; }($s); Fs.registeredClasses.DurationFormatter = pa; var ca, da = new Ds(), fa = function (t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e._invalid = !1, e; } return n(e, t), e.prototype.invalidate = function () { !1 === this._invalid && (this._invalid = !0, Fs.events.on("exitframe", this.validate, this)); }, e.prototype.validate = function () { !0 === this._invalid && (this._invalid = !1, Fs.events.off("exitframe", this.validate, this)); }, e; }(Js), ga = function (t) { function e() { var e = t.call(this) || this; return e.adapter = new Ks(e), e.closeDelay = 1e3, e.closeOnClick = !0, e._language = new ys(), e._menuTag = "ul", e._itemTag = "li", e._labelTag = "a", e._iconTag = "img", e._classPrefix = "amexport", e._defaultStyles = !0, e._align = "right", e._verticalAlign = "top", e._tabindex = 0, e._ignoreNextClose = !1, e._items = [{ label: "...", menu: [{ label: "Image", menu: [{ type: "png", label: "PNG" }, { type: "jpg", label: "JPG" }, { type: "svg", label: "SVG" }, { type: "pdf", label: "PDF" }] }, { label: "Data", menu: [{ type: "json", label: "JSON" }, { type: "csv", label: "CSV" }, { type: "xlsx", label: "XLSX" }, { type: "html", label: "HTML" }, { type: "pdfdata", label: "PDF" }] }, { label: "Print", type: "print" }] }], e.className = "ExportMenu", e._disposers.push(e._language), e.invalidate(), e.applyTheme(), e; } return n(e, t), e.prototype.validate = function () { this.draw(), t.prototype.validate.call(this); }, e.prototype.draw = function () { var t = this; this._element ? (this._element.innerHTML = "", this._element.className = this.getMenuItemClass(0)) : this._element = this.createMenuElement(0), this.defaultStyles && (this._element.style.display = "none"), I(this._container).appendChild(this._element); for (var e = this.adapter.apply("items", { items: this._items }).items, i = e.length, n = 0; n < i; n++) this.drawBranch(this._element, e[n], 0); this._element = this.adapter.apply("menuElement", { menuElement: this._element }).menuElement, this._disposers.push(pr().body.events.on("down", function (e) { e.pointer.touch || (t._ignoreNextClose = !1), t.close(); })), this._disposers.push(pr().body.events.on("keyup", function (e) { var i = Wo.getEventKey(e.event); switch (i) { case "esc": t.close(); break; case "up": case "down": case "left": case "right": t.moveSelection(i); } })), this.defaultStyles && this.loadDefaultCSS(); }, e.prototype.drawBranch = function (t, e, i) { var n = this; if (!0 !== (e = this.adapter.apply("branch", { branch: e, level: i }).branch).unsupported) { e.ascendants || (e.ascendants = new Ns()); var r, s = e.type, o = this.createItemElement(i, s); e.icon ? ((r = this.createIconElement(i, s)).src = e.icon, e.label && (r.title = e.label)) : e.svg ? (r = this.createSvgElement(i, s, e.svg), e.label && (r.title = e.label)) : (r = this.createLabelElement(i, s)).innerHTML = e.label ? this.language.translate(e.label) : ""; var a = this.getReaderLabel(e, r.innerHTML); r.setAttribute("aria-label", a), o.appendChild(r), e.interactions = pr().getInteraction(r), e.element = o, this.typeClickable(s) && (e.interactions.events.on("hit", function (t) { if (n.events.isEnabled("hit")) { var i = { type: "hit", event: t.event, target: n, branch: e }; n.events.dispatchImmediately("hit", i); } }), e.interactions.events.on("keyup", function (t) { if (Wo.isKey(t.event, "enter") && n.events.isEnabled("enter")) { var i = { type: "enter", event: t.event, target: n, branch: e }; n.events.dispatchImmediately("enter", i); } })); var l = this.getSubMenu(e); null != l && (e.interactions.events.on("keyup", function (t) { Wo.isKey(t.event, "enter") && (n.selectBranch(l[0]), n.setFocus(l[0])); }), e.interactions.events.on("hit", function (t) { n.selectBranch(e); })), e.interactions.events.on("over", function (t) { if (t.pointer.touch && (n._ignoreNextClose = !0), n.selectBranch(e), n.events.isEnabled("over")) { var i = { type: "over", event: t.event, target: n, branch: e }; n.events.dispatchImmediately("over", i); } }), e.interactions.events.on("out", function (t) { if (t.pointer.touch || n.delayUnselectBranch(e), n.events.isEnabled("out")) { var i = { type: "out", event: t.event, target: n, branch: e }; n.events.dispatchImmediately("out", i); } }), e.interactions.events.on("focus", function (t) { n.selectBranch(e); }), e.interactions.events.on("blur", function (t) { n.delayUnselectBranch(e); }); var h = i + 1; if (e.menu) { for (var u = this.createMenuElement(h), p = e.menu.length, c = 0; c < p; c++) { var d = new Ns(); e.menu[c].ascendants = d, e.ascendants.length && d.copyFrom(e.ascendants), d.push(e), this.drawBranch(u, e.menu[c], h); } if ("" == u.innerHTML) return; o.appendChild(u); } e.hidden && this.hideBranch(e), e.id && o.setAttribute("id", e.id), e.color && (o.style.backgroundColor = e.color.hex), t.appendChild(o); } }, e.prototype.createMenuElement = function (t) { var e = document.createElement(this.menuTag); return e.className = this.getMenuItemClass(t), 0 === t && e.setAttribute("role", "menu"), e; }, e.prototype.getMenuItemClass = function (t) { var e = this.classPrefix + "-menu " + this.classPrefix + "-menu-level-" + t; return 0 === t && (e += " " + this.classPrefix + "-menu-root " + this.classPrefix + "-" + this.align + " " + this.classPrefix + "-" + this.verticalAlign), this.adapter.apply("menuClass", { className: e, level: t }).className; }, e.prototype.createItemElement = function (t, e) { var i = document.createElement(this.itemTag), n = this.classPrefix + "-item " + this.classPrefix + "-item-level-" + t + " " + this.classPrefix + "-item-" + (e || "blank"); return i.className = this.adapter.apply("itemClass", { className: n, level: t, type: e }).className, i; }, e.prototype.createLabelElement = function (t, e) { var i = document.createElement(this.labelTag), n = this.classPrefix + "-label " + this.classPrefix + "-label-level-" + t + " " + this.classPrefix + "-item-" + (e || "blank"); return this.typeClickable(e) && (n += " " + this.classPrefix + "-clickable"), i.className = this.adapter.apply("labelClass", { className: n, level: t, type: e }).className, i.setAttribute("tabindex", this.tabindex.toString()), i.setAttribute("role", "menuitem"), i; }, e.prototype.createIconElement = function (t, e) { var i = document.createElement(this.iconTag), n = this.classPrefix + "-icon " + this.classPrefix + "-icon-level-" + t + " " + this.classPrefix + "-item-" + (e || "blank"); return this.typeClickable(e) && (n += " " + this.classPrefix + "-clickable"), i.className = this.adapter.apply("labelClass", { className: n, level: t, type: e }).className, i.setAttribute("tabindex", this.tabindex.toString()), i.setAttribute("role", "menuitem"), i; }, e.prototype.createSvgElement = function (t, e, i) { var n = new DOMParser().parseFromString(i, "image/svg+xml").documentElement, r = this.classPrefix + "-icon " + this.classPrefix + "-icon-level-" + t + " " + this.classPrefix + "-item-" + (e || "blank"); return this.typeClickable(e) && (r += " " + this.classPrefix + "-clickable"), n.setAttribute("class", this.adapter.apply("labelClass", { className: r, level: t, type: e }).className), n.setAttribute("tabindex", this.tabindex.toString()), n.setAttribute("role", "menuitem"), n; }, e.prototype.dispose = function () { this._disposed || (t.prototype.dispose.call(this), this._element && this._element.parentNode && this._element.parentNode.removeChild(this._element)); }, e.prototype.typeClickable = function (t) { return S(t); }, e.prototype.hasSubMenu = function (t) { return !(!t.menu || !t.menu.length); }, e.prototype.getSubMenu = function (t) { if (t.menu && t.menu.length) return t.menu; }, e.prototype.getReaderLabel = function (t, e) { return e = Ii(e), this.hasSubMenu(t) ? e += " [" + this.language.translate("Click, tap or press ENTER to open") + "]" : "print" == t.type ? e = this.language.translate("Click, tap or press ENTER to print.") : this.typeClickable(t.type) && (e = this.language.translate("Click, tap or press ENTER to export as %1.", void 0, e)), this.adapter.apply("rederLabel", { label: e, branch: t }).label; }, Object.defineProperty(e.prototype, "container", { get: function get() { return this._container; }, set: function set(t) { this._container = t, this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "items", { get: function get() { return this._items; }, set: function set(t) { this._items = t, this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tag", { set: function set(t) { this._menuTag = t, this._itemTag = "ul" == t ? "li" : "div", this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "menuTag", { get: function get() { return this.adapter.apply("menuTag", { tag: this._menuTag }).tag; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "itemTag", { get: function get() { return this.adapter.apply("itemTag", { tag: this._itemTag }).tag; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "labelTag", { get: function get() { return this.adapter.apply("labelTag", { tag: this._labelTag }).tag; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "iconTag", { get: function get() { return this.adapter.apply("iconTag", { tag: this._iconTag }).tag; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "align", { get: function get() { return this.adapter.apply("align", { align: this._align }).align; }, set: function set(t) { this._align = t, this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "verticalAlign", { get: function get() { return this.adapter.apply("verticalAlign", { verticalAlign: this._verticalAlign }).verticalAlign; }, set: function set(t) { this._verticalAlign = t, this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "classPrefix", { get: function get() { return this.adapter.apply("classPrefix", { classPrefix: this._classPrefix }).classPrefix; }, set: function set(t) { this._classPrefix = t, this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "defaultStyles", { get: function get() { return this.adapter.apply("defaultStyles", { defaultStyles: this._defaultStyles }).defaultStyles; }, set: function set(t) { this._defaultStyles != t && (this._defaultStyles = t, t && this.loadDefaultCSS()), this.invalidate(); }, enumerable: !0, configurable: !0 }), e.prototype.loadDefaultCSS = function () { var t, e, i; this._disposers.push((t = this.classPrefix, e = t || "amexport", i = new ta(), da.insertKeyIfEmpty(e, function () { var t = new gs([new Ao("." + e + "-menu-level-0", { position: "absolute", top: "5px", right: "5px" }), new Ao("." + e + "-menu-level-0." + e + "-left", { right: "auto", left: "5px" }), new Ao("." + e + "-menu-level-0." + e + "-right", { right: "5px", left: "auto" }), new Ao("." + e + "-menu-level-0." + e + "-top", { top: "5px", bottom: "auto" }), new Ao("." + e + "-menu-level-0." + e + "-bottom", { top: "auto", bottom: "5px" }), new Ao("." + e + "-item." + e + "-item-level-0", { opacity: "0.3", width: "30px", "min-height": "30px", transition: "all 100ms ease-in-out" }), new Ao("div:hover ." + e + "-item." + e + "-item-level-0, ." + e + "-item." + e + "-item-level-0.active", { opacity: "0.9" }), new Ao("." + e + "-item." + e + "-item-level-0 > a", { padding: "0", "text-align": "center", overflow: "hidden" }), new Ao("." + e + "-item." + e + "-item-level-0:before", { display: "block" }), new Ao("." + e + "-item", { position: "relative", display: "block", opacity: "0", "z-index": "1", "border-radius": "3px", "background-color": i.getFor("secondaryButton").hex, padding: "0", margin: "1px 1px 0 0", color: i.getFor("secondaryButton").alternative.hex, transition: "all 100ms ease-in-out, opacity 0.5s ease 0.5s" }), new Ao("." + e + "-left ." + e + "-item", { margin: "1px 0 0 1px" }), new Ao("." + e + "-item:hover, ." + e + "-item.active", { background: i.getFor("secondaryButtonHover").hex, color: i.getFor("secondaryButtonText").hex }), new Ao("." + e + "-item > ." + e + "-menu", { position: "absolute", top: "-1px", right: "0", "margin-right": "100%" }), new Ao("." + e + "-left ." + e + "-item > ." + e + "-menu", { left: "0", right: "auto", "margin-left": "100%", "margin-right": "auto" }), new Ao("." + e + "-right ." + e + "-item > ." + e + "-menu", { left: "auto", right: "0", "margin-left": "auto", "margin-right": "100%" }), new Ao("." + e + "-top ." + e + "-item > ." + e + "-menu", { top: "-1px", bottom: "auto" }), new Ao("." + e + "-bottom ." + e + "-item > ." + e + "-menu", { top: "auto", bottom: "0" }), new Ao("." + e + "-item > ." + e + "-menu", { display: "none" }), new Ao("." + e + "-item:hover > ." + e + "-menu, ." + e + "-item.active > ." + e + "-menu", { display: "block" }), new Ao("." + e + "-item:hover > ." + e + "-menu > ." + e + "-item, ." + e + "-item.active > ." + e + "-menu > ." + e + "-item", { opacity: "1" }), new Ao("." + e + "-menu", { display: "block", "list-style": "none", margin: "0", padding: "0" }), new Ao("." + e + "-label", { display: "block", cursor: "default", padding: "0.5em 1em" }), new Ao("." + e + "-icon", { display: "block", cursor: "default", padding: "0.2em 0.4em", width: "1.2em", height: "1.2em", "min-width": "20px", "min-height": "20px", margin: "auto auto", "border-radius": "3px" }), new Ao("." + e + "-item-level-0 > ." + e + "-icon", { padding: "0.1em 0.2em" }), new Ao("." + e + "-clickable", { cursor: "pointer" })]); return new ms(function () { da.removeKey(e), t.dispose(); }); }).increment())), this._element && (this._element.style.display = ""); }, Object.defineProperty(e.prototype, "tabindex", { get: function get() { return this.adapter.apply("tabindex", { tabindex: this._tabindex }).tabindex; }, set: function set(t) { this._tabindex = t, this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "language", { get: function get() { var t = this, e = this._language.get(); return null == e && (e = new aa(), this._language.set(e, e.events.on("localechanged", function (e) { t.invalidate(); }))), e; }, set: function set(t) { var e = this; this._language.set(t, t.events.on("localechanged", function (t) { e.invalidate(); })), this.invalidate(); }, enumerable: !0, configurable: !0 }), e.prototype.close = function () { var t = this; if (this._ignoreNextClose) this._ignoreNextClose = !1;else { if (this.closeOnClick && (this._element.style.pointerEvents = "none", setTimeout(function () { t._element.style.pointerEvents = "auto"; }, 100)), this._currentSelection && (this.setBlur(this._currentSelection), this._currentSelection = void 0), this._element) for (var e = this._element.getElementsByClassName("active"), i = e.length - 1; i >= 0; i--) e[i] && Hn(e[i], "active"); this.events.dispatchImmediately("closed", { type: "closed", target: this }); } }, e.prototype.selectBranch = function (t) { var e = this; if (t.closeTimeout && (this.removeDispose(t.closeTimeout), t.closeTimeout = void 0), Nn(t.interactions.element.parentElement, "active"), this._currentSelection && this._currentSelection !== t && this._currentSelection.ascendants && pe(ge(ae([this._currentSelection]), this._currentSelection.ascendants.iterator()), function (i) { t.ascendants.contains(i) || t === i || e.unselectBranch(i, !0); }), pe(t.ascendants.iterator(), function (t) { t.closeTimeout && (e.removeDispose(t.closeTimeout), t.closeTimeout = void 0), Nn(t.interactions.element.parentElement, "active"); }), this._currentSelection = t, this.events.isEnabled("branchselected")) { var i = { type: "branchselected", target: this, branch: t }; this.events.dispatchImmediately("branchselected", i); } }, e.prototype.unselectBranch = function (t, e) { if (Hn(t.interactions.element.parentElement, "active"), this._currentSelection == t && (this._currentSelection = void 0), this.events.isEnabled("branchunselected")) { var i = { type: "branchunselected", target: this, branch: t }; this.events.dispatchImmediately("branchunselected", i); } }, e.prototype.delayUnselectBranch = function (t, e) { var i = this; t.closeTimeout && (this.removeDispose(t.closeTimeout), t.closeTimeout = void 0), t.closeTimeout = this.setTimeout(function () { i.unselectBranch(t, e); }, this.closeDelay), !0 !== e && t.ascendants && pe(t.ascendants.iterator(), function (t) { i.delayUnselectBranch(t, !0); }); }, e.prototype.moveSelection = function (t) { if (this._currentSelection) { var e; if ("up" == t) e = this.getPrevSibling(this._currentSelection);else if ("down" == t) e = this.getNextSibling(this._currentSelection);else if ("left" == t && "right" == this.align || "right" == t && "left" == this.align) { var i = this.getSubMenu(this._currentSelection); null != i && (e = i[0]); } else ("right" == t && "right" == this.align || "left" == t && "left" == this.align) && (e = this.getParentItem(this._currentSelection)); e && e !== this._currentSelection && (this.selectBranch(e), this.setFocus(e), this._currentSelection = e); } }, e.prototype.getSiblings = function (t) { var e = this.getParentItem(t); return e && e.menu ? e.menu : []; }, e.prototype.getParentItem = function (t) { return t.ascendants && t.ascendants.length ? t.ascendants.getIndex(t.ascendants.length - 1) : void 0; }, e.prototype.getNextSibling = function (t) { var e = this.getSiblings(t); if (e.length > 1) { var i = e.indexOf(t) + 1; return e[i = e.length == i ? 0 : i].unsupported ? this.getNextSibling(e[i]) : e[i]; } return t; }, e.prototype.getPrevSibling = function (t) { var e = this.getSiblings(t); if (e.length > 1) { var i = e.indexOf(t) - 1; return e[i = -1 == i ? e.length - 1 : i].unsupported ? this.getPrevSibling(e[i]) : e[i]; } return t; }, e.prototype.setFocus = function (t) { if (t.interactions) try { t.interactions.element.focus(); } catch (t) {} }, e.prototype.setBlur = function (t) { if (t.interactions) try { t.interactions.element.blur(); } catch (t) {} }, e.prototype.hideBranch = function (t) { t.element.style.display = "none"; }, e.prototype.showBranch = function (t) { t.element.style.display = ""; }, e; }(fa), ya = /src: ([^;]+);/, ma = function (t) { function e(e) { var i = t.call(this) || this; return i.adapter = new Ks(i), i._formatOptions = new Ds(), i._extraSprites = [], i._validateSprites = [], i._dynamicDataFields = !0, i._removedObjects = new Ns(), i._hiddenObjects = [], i._objectsAlreadyHidden = !1, i._filePrefix = "amCharts", i.useWebFonts = !0, i.useRetina = !0, i.useSimplifiedExport = !0, i.timeoutDelay = 2e3, i._container = e, i.className = "Export", i._formatOptions.setKey("png", {}), i._formatOptions.setKey("jpg", { quality: .8 }), i._formatOptions.setKey("gif", {}), i._formatOptions.setKey("svg", {}), i._formatOptions.setKey("pdf", { fontSize: 14, imageFormat: "png", addURL: !0, addColumnNames: !0 }), i._formatOptions.setKey("json", { indent: 2, useLocale: !0 }), i._formatOptions.setKey("csv", { addColumnNames: !0, emptyAs: "" }), i._formatOptions.setKey("xlsx", { addColumnNames: !0, useLocale: !0, emptyAs: "" }), i._formatOptions.setKey("html", { addColumnNames: !0, emptyAs: "" }), i._formatOptions.setKey("pdfdata", { fontSize: 14, imageFormat: "png", addURL: !0, addColumnNames: !0, emptyAs: "" }), i._formatOptions.setKey("print", { delay: 500, printMethod: "iframe" }), i.adapter.add("options", function (t) { var e = i._formatOptions.getKey(t.type); return t.options ? t.options = ie(e, t.options) : t.options = e, t; }), i.applyTheme(), i.dispatchImmediately("inited"), i; } return n(e, t), Object.defineProperty(e.prototype, "menu", { get: function get() { return this._menu; }, set: function set(t) { var e = this; this._menu && this.removeDispose(this._menu), this._menu = t, this._menu.container = this.container, this._menu.language = this._language, this._menu.adapter.add("branch", function (t) { return t.branch.unsupported = !e.typeSupported(t.branch.type), t; }), this._menu.events.on("hit", function (t) { e["export"](t.branch.type, t.branch.options), e.menu.close(); }), this._menu.events.on("enter", function (t) { e["export"](t.branch.type, t.branch.options), e.menu.close(); }), this._menu.events.on("over", function (t) { e._disablePointers(); }), this._menu.events.on("out", function (t) { e._releasePointers(); }), this.dispatchImmediately("menucreated"), this._menu.adapter.add("classPrefix", function (t) { return t.classPrefix = Ms.classNamePrefix + t.classPrefix, t; }), this._disposers.push(this._menu); }, enumerable: !0, configurable: !0 }), e.prototype.typeSupported = function (t) { var e = !0; return "pdf" === t || ("xlsx" === t ? e = !!this._hasData() : ("print" != t || window.print) && (-1 === ["json", "csv"].indexOf(t) || this._hasData()) || (e = !1)), this.adapter.apply("supported", { supported: e, type: t }).supported; }, e.prototype._hasData = function () { return this.data && this.data.length; }, e.prototype._getFunction = function (t) { switch (t) { case "png": case "gif": case "jpg": return this.getImage; case "svg": return this.getSVG; case "pdf": case "pdfdata": return this.getPDF; case "xlsx": return this.getExcel; case "csv": return this.getCSV; case "json": return this.getJSON; case "html": return this.getHTML; case "print": return this.getPrint; default: return this.unsupported; } }, e.prototype["export"] = function (t, e) { return r(this, void 0, void 0, function () { var i, n, r, o, a, l = this; return s(this, function (s) { switch (s.label) { case 0: return "custom" == t ? (this.handleCustom(e), [2, !0]) : (this.events.isEnabled("exportstarted") && (i = { type: "exportstarted", target: this, format: t, options: e }, this.events.dispatchImmediately("exportstarted", i)), this.showPreloader(), this.timeoutDelay && (this.hideTimeout(), this._timeoutTimeout = this.setTimeout(function () { if (l.events.isEnabled("exporttimedout")) { var i = { type: "exporttimedout", target: l, format: t, options: e }; l.events.dispatchImmediately("exporttimedout", i); } l.showTimeout(); }, this.timeoutDelay)), this.hideNonExportableSprites(), n = this._getFunction(t), e = this.adapter.apply("options", { options: e, type: t }).options, [4, (n = this.adapter.apply("exportFunction", { func: n, type: t, options: e }).func).call(this, t, e)]); case 1: return r = s.sent(), this.restoreNonExportableSprites(), r ? (this.events.isEnabled("exportfinished") && (o = { type: "exportfinished", target: this, format: t, options: e }, this.events.dispatchImmediately("exportfinished", o)), this.hidePreloader(), this.hideTimeout(), this.menu && this.menu.close(), "print" === t ? [2, this.print(r, e, this.adapter.apply("title", { title: this.title, options: e }).title)] : "pdfdata" == t ? [2, this.download(r, this.filePrefix + ".pdf")] : [2, this.download(r, this.filePrefix + "." + t)]) : (this.events.isEnabled("error") && (a = { type: "error", target: this, format: t, options: e }, this.events.dispatchImmediately("error", a)), [2, !1]); } }); }); }, e.prototype.unsupported = function (t, e) { return r(this, void 0, void 0, function () { return s(this, function (t) { return [2, ""]; }); }); }, e.prototype.handleCustom = function (t) { S(t) && S(t.callback) && t.callback.call(t.callbackTarget || this, t); }, e.prototype.getPrint = function (t, e) { return r(this, void 0, void 0, function () { return s(this, function (t) { return [2, this.getImage("png", e)]; }); }); }, e.prototype.getFontFamilies = function () { return r(this, void 0, void 0, function () { var t, e, i, n, o = this; return s(this, function (a) { switch (a.label) { case 0: return t = this.getDOMURL(), e = [], i = [], [4, vr(function (n, a) { if (a.type === CSSRule.FONT_FACE_RULE) { var l = a.cssText, h = ya.exec(l); if (null !== h) { var u = h[1].split(/ *, */).map(function (i) { return r(o, void 0, void 0, function () { var r, o, a, l, h, u; return s(this, function (s) { switch (s.label) { case 0: return null !== (r = /^url\(["']?([^"'\)]+)["']?\)([^,]*)$/.exec(i)) ? [3, 1] : [2, i]; case 1: o = r[2], a = nn(n, r[1]), s.label = 2; case 2: return s.trys.push([2, 7,, 8]), [4, fr(a, void 0, { responseType: "blob" })]; case 3: return l = s.sent(), null == window.navigator.msSaveOrOpenBlob ? [3, 4] : (h = t.createObjectURL(l.blob), e.push(h), [3, 6]); case 4: return [4, (p = l.blob, new Promise(function (t, e) { var i = new FileReader(); i.onload = function (e) { t(i.result); }, i.onerror = function (t) { e(t); }, i.readAsDataURL(p); }))]; case 5: h = s.sent(), s.label = 6; case 6: return [2, 'url("' + h + '")' + o]; case 7: return u = s.sent(), console.error("Failed to load font", a, u), [2, null]; case 8: return [2]; } var p; }); }); }); i.push(Promise.all(u).then(function (t) { return 0 === (t = t.filter(function (t) { return null != t; })).length ? "" : l.replace(ya, "src: " + t.join(", ") + ";"); })); } } })]; case 1: return a.sent(), [4, Promise.all(i)]; case 2: return n = a.sent(), [2, { blobs: e, cssText: n.filter(function (t) { return !!t; }).join("\n") }]; } }); }); }, e.prototype.getImage = function (t, e, i) { return r(this, void 0, void 0, function () { var n, r, o, a, l; return s(this, function (s) { switch (s.label) { case 0: return (n = this._objectsAlreadyHidden) || this.hideNonExportableSprites(), S(e) || (e = this.getFormatOptions(t)), [4, this.awaitValidSprites()]; case 1: return s.sent(), [4, this.simplifiedImageExport()]; case 2: if (!s.sent()) return [3, 10]; s.label = 3; case 3: return s.trys.push([3, 7,, 9]), [4, this.getCanvas(e)]; case 4: return r = s.sent(), !1 === i ? [3, 6] : [4, this.addExtras(r, e)]; case 5: r = s.sent(), s.label = 6; case 6: return o = r.toDataURL(this.getContentType(t), e.quality), this.disposeCanvas(r), n || this.restoreNonExportableSprites(), [2, o]; case 7: return a = s.sent(), console.error(a.message + "\n" + a.stack), console.warn("Simple export failed, falling back to advanced export"), [4, this.getImageAdvanced(t, e, i)]; case 8: return l = s.sent(), n || this.restoreNonExportableSprites(), [2, l]; case 9: return [3, 12]; case 10: return [4, this.getImageAdvanced(t, e, i)]; case 11: return l = s.sent(), n || this.restoreNonExportableSprites(), [2, l]; case 12: return [2]; } }); }); }, e.prototype.addExtras = function (t, e, i) { return r(this, void 0, void 0, function () { var n, o, a, l, h, u, p, c, d, f, g, y, m, v, b = this; return s(this, function (x) { switch (x.label) { case 0: return this.extraSprites.length ? (n = 0, o = 0, a = t.width, l = t.height, h = 0, u = 0, [4, Promise.all(yt(this.extraSprites, function (t) { return r(b, void 0, void 0, function () { var r, p, c, d; return s(this, function (s) { switch (s.label) { case 0: return (r = t instanceof ba ? { sprite: t, position: "bottom" } : t).position = r.position || "bottom", r.marginTop = r.marginTop || 0, r.marginRight = r.marginRight || 0, r.marginBottom = r.marginBottom || 0, r.marginLeft = r.marginLeft || 0, i ? [4, r.sprite.exporting.getCanvasAdvanced(e)] : [3, 2]; case 1: return p = s.sent(), [3, 4]; case 2: return [4, r.sprite.exporting.getCanvas(e)]; case 3: p = s.sent(), s.label = 4; case 4: return c = p.width + r.marginLeft + r.marginRight, d = p.height + r.marginTop + r.marginBottom, "top" == r.position ? (a = r.crop ? l : W(a, c), o += d) : "right" == r.position ? (l = r.crop ? l : W(l, d), h += c) : "left" == r.position ? (l = r.crop ? l : W(l, d), n += c) : "bottom" === r.position && (a = r.crop ? l : W(a, c), u += d), [2, { canvas: p, position: r.position, left: r.marginLeft, top: r.marginTop, width: c, height: d }]; } }); }); }))]) : [3, 2]; case 1: return p = x.sent(), (c = this.getDisposableCanvas()).width = n + a + h, c.height = o + l + u, d = c.getContext("2d"), (f = this.backgroundColor || this.findBackgroundColor(this.sprite.dom)) && (d.fillStyle = f.toString(), d.fillRect(0, 0, c.width, c.height)), m = (g = n) + a, v = (y = o) + l, mt(p, function (t) { "top" == t.position ? (y -= t.height, d.drawImage(t.canvas, n + t.left, y + t.top)) : "right" == t.position ? (d.drawImage(t.canvas, m + t.left, o + t.top), m += t.width) : "left" == t.position ? (g -= t.width, d.drawImage(t.canvas, g + t.left, o + t.top)) : "bottom" === t.position && (d.drawImage(t.canvas, n + t.left, v + t.top), v += t.height), b.disposeCanvas(t.canvas); }), d.drawImage(t, n, o), [2, c]; case 2: return [2, t]; } }); }); }, e.prototype.getCanvas = function (t) { return r(this, void 0, void 0, function () { var e, i, n, r, o, a, l, h, u, p, c, d, f, g, y, m; return s(this, function (s) { switch (s.label) { case 0: S(t) || (t = {}), e = this.backgroundColor || this.findBackgroundColor(this.sprite.dom), i = this.getDOMURL(), n = null, r = null, s.label = 1; case 1: return s.trys.push([1,, 4, 5]), a = this.sprite.pixelWidth, l = this.sprite.pixelHeight, h = tr(this.sprite.dom), u = er(this.sprite.dom), o = this.getDisposableCanvas(), p = this.getPixelRatio(t), o.style.width = a + "px", o.style.height = l + "px", o.width = a * p, o.height = l * p, c = o.getContext("2d"), 1 != p && c.setTransform(p, 0, 0, p, 0, 0), e && (c.fillStyle = e.toString(), c.fillRect(0, 0, a, l)), d = [], this.useWebFonts && d.push(this.getFontFamilies().then(function (t) { return r = t.blobs, t.cssText; })), d.push(this.imagesToDataURI(this.sprite.dom, t)), d.push(this.prepForeignObjects(this.sprite.dom, t)), [4, Promise.all(d)]; case 2: return f = s.sent(), g = this.normalizeSVG("<style>" + f[0] + "</style>" + this.serializeElement(this.sprite.paper.defs) + this.serializeElement(this.sprite.dom), t, a, l, h, u), y = new Blob([g], { type: "image/svg+xml" }), n = i.createObjectURL(y), [4, this.loadNewImage(n, a, l, "anonymous")]; case 3: return m = s.sent(), c.drawImage(m, 0, 0), [3, 5]; case 4: return null !== n && i.revokeObjectURL(n), null !== r && mt(r, function (t) { i.revokeObjectURL(t); }), this.restoreRemovedObjects(), [7]; case 5: return [2, o]; } }); }); }, e.prototype.getCanvasAdvanced = function (t) { return r(this, void 0, void 0, function () { var e, i, n, r, o, a, l, h, u, p; return s(this, function (s) { switch (s.label) { case 0: return S(t) || (t = {}), [4, this.imagesToDataURI(this.sprite.dom, t)]; case 1: return s.sent(), e = this.backgroundColor || this.findBackgroundColor(this.sprite.dom), [4, this.canvg]; case 2: return i = s.sent(), n = this.sprite.pixelWidth, r = this.sprite.pixelHeight, o = tr(this.sprite.dom), a = er(this.sprite.dom), l = this.normalizeSVG(this.serializeElement(this.sprite.paper.defs) + this.serializeElement(this.sprite.dom), t, n, r, o, a, e), h = this.getDisposableCanvas(), u = this.getPixelRatio(t), h.style.width = n * u + "px", h.style.height = r * u + "px", h.width = n * u, h.height = r * u, p = { useCORS: !0 }, 1 != u && (p.ignoreDimensions = !0, p.scaleWidth = n * u, p.scaleHeight = r * u), i(h, l, p), [2, h]; } }); }); }, e.prototype.getImageAdvanced = function (t, e, i) { return r(this, void 0, void 0, function () { var n, r, o; return s(this, function (s) { switch (s.label) { case 0: return (n = this._objectsAlreadyHidden) || this.hideNonExportableSprites(), S(e) || (e = this.getFormatOptions(t)), [4, this.getCanvasAdvanced(e)]; case 1: return r = s.sent(), !1 === i ? [3, 3] : [4, this.addExtras(r, e, !0)]; case 2: r = s.sent(), s.label = 3; case 3: return o = r.toDataURL(this.getContentType(t), e.quality), this.disposeCanvas(r), n || this.restoreNonExportableSprites(), [2, o]; } }); }); }, e.prototype.getDisposableCanvas = function () { var t = document.createElement("canvas"); return t.style.position = "fixed", t.style.top = "-10000px", document.body.appendChild(t), t; }, e.prototype.disposeCanvas = function (t) { document.body.removeChild(t); }, e.prototype.getPixelRatio = function (t) { var e = t && t.scale ? t.scale : 1; return (this.useRetina ? ci() : 1) * e; }, e.prototype.imagesToDataURI = function (t, i) { return r(this, void 0, void 0, function () { var n, r, o, a, l, h; return s(this, function (s) { switch (s.label) { case 0: if (!(n = t.querySelectorAll("image")).length) return [3, 2]; for (r = [], o = n.length, a = 0; a < o; a++) l = n[a], (h = l.getAttributeNS(e.XLINK, "href")) && (-1 !== h.indexOf("data:image") || (-1 !== h.indexOf(".svg") ? r.push(this.svgToDataURI(l, i)) : r.push(this.imageToDataURI(l, i)))); return [4, Promise.all(r)]; case 1: return s.sent(), [2]; case 2: return [2]; } }); }); }, e.prototype.prepForeignObjects = function (t, e) { return r(this, void 0, void 0, function () { var e, i, n; return s(this, function (r) { if ((e = t.querySelectorAll("foreignObject")).length) for (i = e.length, n = 0; n < i; n++) this.temporarilyRemoveObject(e[n]); return [2]; }); }); }, e.prototype.imageToDataURI = function (t, i) { return r(this, void 0, void 0, function () { var n, r, o; return s(this, function (s) { switch (s.label) { case 0: return s.trys.push([0, 2,, 3]), [4, this.loadNewImage(t.getAttributeNS(e.XLINK, "href"), null, null, "anonymous")]; case 1: n = s.sent(), (r = document.createElement("canvas")).width = n.width, r.height = n.height, r.getContext("2d").drawImage(n, 0, 0); try { return o = r.toDataURL(), t.setAttribute("href", o), [2, o]; } catch (e) { return !1 !== i.keepTainted && this.temporarilyRemoveObject(t), [2, void 0]; } return [3, 3]; case 2: return s.sent(), i && !1 === i.keepTainted || this.temporarilyRemoveObject(t), [2, void 0]; case 3: return [2]; } }); }); }, e.prototype.svgToDataURI = function (t, i) { return r(this, void 0, void 0, function () { var n, r, o, a; return s(this, function (s) { switch (s.label) { case 0: n = t.getAttributeNS(e.XLINK, "href"), s.label = 1; case 1: return s.trys.push([1, 3,, 4]), [4, fr(n)]; case 2: return r = s.sent(), o = this.adapter.apply("charset", { charset: "base64", type: "svg", options: i }).charset, a = this.adapter.apply("svgToDataURI", { data: "data:" + this.getContentType("svg") + ";" + o + "," + btoa(r.response), options: i }).data, t.setAttributeNS(e.XLINK, "href", a), [2, a]; case 3: return s.sent(), i && !1 === i.keepTainted || this.temporarilyRemoveObject(t), [2, void 0]; case 4: return [2]; } }); }); }, e.prototype.temporarilyRemoveObject = function (t, e) { var i = t.parentElement || t.parentNode; e || (e = this.sprite.paper.add("g").node), i.insertBefore(e, t), t.textContent, i.removeChild(t), this._removedObjects.push({ element: t, placeholder: e }); }, e.prototype.restoreRemovedObjects = function () { for (var t; t = this._removedObjects.pop();) (t.placeholder.parentElement || t.placeholder.parentNode).insertBefore(t.element, t.placeholder); }, e.prototype.simplifiedImageExport = function () { return r(this, void 0, void 0, function () { var t, e, i, n, r, o, a; return s(this, function (s) { switch (s.label) { case 0: if (!1 === this.useSimplifiedExport) return [2, !1]; if (!1 === (t = Fs.getCache("simplifiedImageExport")) || !0 === t) return [2, t]; s.label = 1; case 1: s.trys.push([1, 6,, 7]), (e = document.createElement("canvas")).width = 1, e.height = 1, i = e.getContext("2d"), n = this.getDOMURL(), r = new Blob([this.normalizeSVG("<g></g>", {}, 1, 1)], { type: "image/svg+xml" }), o = n.createObjectURL(r), a = void 0, s.label = 2; case 2: return s.trys.push([2, 4,, 5]), [4, this.loadNewImage(o, 1, 1)]; case 3: return a = s.sent(), [3, 5]; case 4: return s.sent(), [2, !1]; case 5: i.drawImage(a, 0, 0), n.revokeObjectURL(o); try { return Fs.setCache("simplifiedImageExport", !0), [2, !0]; } catch (t) { return Fs.setCache("simplifiedImageExport", !1), [2, !1]; } return [3, 7]; case 6: return s.sent(), Fs.setCache("simplifiedImageExport", !1), [2, !1]; case 7: return [2]; } }); }); }, e.prototype.loadNewImage = function (t, e, i, n) { return new Promise(function (r, s) { function o() { if (n) { var e = a.src; a.onerror = function () { s(new Error('Loading image "' + t + '" failed')); }, a.removeAttribute("crossorigin"), a.src = "", a.src = e; } else s(new Error('Loading image "' + t + '" failed')); } var a; a = e && i ? new Image(e, i) : new Image(), n && a.setAttribute("crossOrigin", n), a.onload = function () { r(a); }, a.onabort = o, a.onerror = o, a.src = t; }); }, e.prototype.getDOMURL = function () { return self.URL || self.webkitURL || self; }, e.prototype.getSVG = function (t, e) { return r(this, void 0, void 0, function () { var i, n, r, o, a, l, h, u; return s(this, function (s) { switch (s.label) { case 0: return (i = this._objectsAlreadyHidden) || this.hideNonExportableSprites(), [4, this.awaitValidSprites()]; case 1: return s.sent(), n = this.sprite.pixelWidth, r = this.sprite.pixelHeight, o = tr(this.sprite.dom), a = er(this.sprite.dom), l = this.normalizeSVG(this.serializeElement(this.sprite.paper.defs) + this.serializeElement(this.sprite.dom), e, n, r, o, a), h = this.adapter.apply("charset", { charset: "charset=utf-8", type: "svg", options: e }).charset, u = this.adapter.apply("getSVG", { data: "data:" + this.getContentType(t) + ";" + h + "," + encodeURIComponent(l), options: e }).data, i || this.restoreNonExportableSprites(), [2, u]; } }); }); }, e.prototype.normalizeSVG = function (t, e, i, n, r, s, o) { var a = ""; i && (a += 'width="' + i + 'px" '), n && (a += 'height="' + n + 'px" '); var l = ""; r && (l += "font-family: " + r.replace(/"/g, "") + ";"), s && (l += "font-size: " + s + ";"), t.match(/<svg/) ? "" !== a && (t = (t = (t = t.replace(/(<svg[^>]*)width="[^"]*"/, "$1")).replace(/(<svg[^>]*)height="[^"]*"/, "$1")).replace(/(<svg)/, "$1" + a)) : t = '<?xml version="1.0" encoding="utf-8"?><svg ' + a + ' style="' + l + '" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">' + t + "</svg>", o && (t = t.replace(/(<svg[^>]*>)/, '$1<rect width="100%" height="100%" fill="' + o.rgba + '"/>')), /MSIE |Trident\//.test(navigator.userAgent) && (t = t.replace(/<feColorMatrix [^\/>]*\/>/gi, "")); var h = new RegExp("url\\(" + yi(si()), "g"); return t = t.replace(h, "url(#"), t = this.adapter.apply("normalizeSVG", { data: t, options: e }).data; }, e.prototype.serializeElement = function (t) { return new XMLSerializer().serializeToString(t); }, e.prototype.getPDF = function (t, e) { return r(this, void 0, void 0, function () { var i, n, r, o, a, l, h, u; return s(this, function (s) { switch (s.label) { case 0: return [4, this.getImage(e.imageFormat || "png", e)]; case 1: return i = s.sent(), [4, this.pdfmake]; case 2: return n = s.sent(), r = [30, 30, 30, 30], o = { pageSize: e.pageSize || "A4", pageOrientation: e.pageOrientation || "portrait", pageMargins: e.pageMargins || r, content: [] }, (a = this.adapter.apply("title", { title: this.title, options: e }).title) && o.content.push({ text: a, fontSize: e.fontSize, bold: !0, margin: [0, 0, 0, 15] }), e.addURL && o.content.push({ text: this.language.translate("Saved from") + ": " + document.location.href, fontSize: e.fontSize, margin: [0, 0, 0, 15] }), "pdfdata" != t && o.content.push({ image: i, fit: this.getPageSizeFit(o.pageSize, o.pageMargins) }), "pdfdata" == t || e.addData ? (h = (l = o.content).push, u = {}, [4, this.getPDFData("pdf", e)]) : [3, 4]; case 3: h.apply(l, [(u.table = s.sent(), u)]), s.label = 4; case 4: return o = this.adapter.apply("pdfmakeDocument", { doc: o, options: e }).doc, [4, new Promise(function (t, e) { n.createPdf(o).getDataUrl(function (e) { t(e); }); })]; case 5: return [2, s.sent()]; } }); }); }, e.prototype.getPDFData = function (t, e) { return r(this, void 0, void 0, function () { var t, i, n, r, o, a = this; return s(this, function (s) { if (t = { body: [] }, i = this.adapter.apply("formatDataFields", { dataFields: this.dataFields, format: "pdf" }).dataFields, n = this.data, e.pivot) Qt(i, function (i, n) { var r = []; e.addColumnNames && r.push(n); for (var s = a.data.length, o = 0; o < s; o++) { var l = a.data[o][i]; r.push(a.convertToSpecialFormat(i, l, e, !0)); } t.body.push(a.getPDFDataRow(r, e, void 0, !0)); });else for (e.addColumnNames && (t.body.push(this.getPDFDataRow(i, e, void 0, !0)), t.headerRows = 1), r = n.length, o = 0; o < r; o++) t.body.push(this.getPDFDataRow(n[o], e, i)); return [2, this.adapter.apply("pdfmakeTable", { table: t, options: e }).table]; }); }); }, e.prototype.getPDFDataRow = function (t, e, i, n) { var r = this; void 0 === n && (n = !1); var s = []; return i || (i = t), Qt(i, function (i, o) { var a = r.convertEmptyValue(i, t[i], e), l = n ? a : r.convertToSpecialFormat(i, a, e); l = "" + l, s.push(l); }), s; }, e.prototype.getPageSizeFit = function (t, e) { var i = [0, 0, 0, 0]; "number" == typeof e ? i = [e, e, e, e] : 2 == e.length ? i = [e[0], e[1], e[0], e[1]] : 4 == e.length && (i = e); var n = { "4A0": [4767.87, 6740.79], "2A0": [3370.39, 4767.87], A0: [2383.94, 3370.39], A1: [1683.78, 2383.94], A2: [1190.55, 1683.78], A3: [841.89, 1190.55], A4: [595.28, 841.89], A5: [419.53, 595.28], A6: [297.64, 419.53], A7: [209.76, 297.64], A8: [147.4, 209.76], A9: [104.88, 147.4], A10: [73.7, 104.88], B0: [2834.65, 4008.19], B1: [2004.09, 2834.65], B2: [1417.32, 2004.09], B3: [1000.63, 1417.32], B4: [708.66, 1000.63], B5: [498.9, 708.66], B6: [354.33, 498.9], B7: [249.45, 354.33], B8: [175.75, 249.45], B9: [124.72, 175.75], B10: [87.87, 124.72], C0: [2599.37, 3676.54], C1: [1836.85, 2599.37], C2: [1298.27, 1836.85], C3: [918.43, 1298.27], C4: [649.13, 918.43], C5: [459.21, 649.13], C6: [323.15, 459.21], C7: [229.61, 323.15], C8: [161.57, 229.61], C9: [113.39, 161.57], C10: [79.37, 113.39], RA0: [2437.8, 3458.27], RA1: [1729.13, 2437.8], RA2: [1218.9, 1729.13], RA3: [864.57, 1218.9], RA4: [609.45, 864.57], SRA0: [2551.18, 3628.35], SRA1: [1814.17, 2551.18], SRA2: [1275.59, 1814.17], SRA3: [907.09, 1275.59], SRA4: [637.8, 907.09], EXECUTIVE: [521.86, 756], FOLIO: [612, 936], LEGAL: [612, 1008], LETTER: [612, 792], TABLOID: [792, 1224] }[t]; return n[0] -= i[0] + i[2], n[1] -= i[1] + i[3], n; }, e.prototype.getExcel = function (t, e) { return r(this, void 0, void 0, function () { var i, n, r, o, a, l, h, u, p = this; return s(this, function (s) { switch (s.label) { case 0: return [4, this.xlsx]; case 1: if (i = s.sent(), n = this.adapter.apply("xlsxWorkbookOptions", { options: { bookType: "xlsx", bookSST: !1, type: "base64" } }).options, r = this.normalizeExcelSheetName(this.adapter.apply("xlsxSheetName", { name: this.title || this.language.translate("Data") }).name), o = { SheetNames: [r], Sheets: {} }, a = [], l = this.adapter.apply("formatDataFields", { dataFields: this.dataFields, format: "xslx" }).dataFields, e.pivot) Qt(l, function (t, i) { var n = []; e.addColumnNames && n.push(i); for (var r = p.data.length, s = 0; s < r; s++) { var o = p.data[s][t]; n.push(p.convertToSpecialFormat(t, o, e, !0)); } a.push(p.getExcelRow(n, e, void 0, !0)); });else for (e.addColumnNames && a.push(this.getExcelRow(l, e, void 0, !0)), h = this.data.length, u = 0; u < h; u++) a.push(this.getExcelRow(this.data[u], e, l)); return o.Sheets[r] = i.utils.aoa_to_sheet(a), [2, this.adapter.apply("getExcel", { data: "data:" + this.getContentType(t) + ";base64," + i.write(o, n), options: e }).data]; } }); }); }, e.prototype.normalizeExcelSheetName = function (t) { return vi(t = t.replace(/([:\\\/?*\[\]]+)/g, " "), 31, "...", !0); }, e.prototype.getExcelRow = function (t, e, i, n) { var r = this; void 0 === n && (n = !1); var s = []; return i || (i = t), Qt(i, function (i, o) { var a = r.convertEmptyValue(i, t[i], e), l = n ? a : r.convertToSpecialFormat(i, a, e, !0); s.push(l); }), s; }, e.prototype.getCSV = function (t, e) { return r(this, void 0, void 0, function () { var i, n, r, o, a, l, h, u, p = this; return s(this, function (s) { if (i = "", n = this.adapter.apply("formatDataFields", { dataFields: this.dataFields, format: "csv" }).dataFields, r = "", o = this.data, e.pivot) Qt(n, function (t, n) { var s = []; e.addColumnNames && s.push(n); for (var o = p.data.length, a = 0; a < o; a++) { var l = p.data[a][t]; s.push(p.convertToSpecialFormat(t, l, e, !0)); } i += r + p.getCSVRow(s, e, void 0, !0), r = "\n"; });else { for (a = o.length, l = 0; l < a; l++) h = this.getCSVRow(o[l], e, n), e.reverse ? i = h + r + i : i += r + h, r = "\n"; e.addColumnNames && (i = this.getCSVRow(n, e, void 0, !0) + r + i); } return u = this.adapter.apply("charset", { charset: "charset=utf-8", type: t, options: e }).charset, [2, this.adapter.apply("getCSV", { data: "data:" + this.getContentType(t) + ";" + u + "," + encodeURIComponent(i), options: e }).data]; }); }); }, e.prototype.getCSVRow = function (t, e, i, n) { var r = this; void 0 === n && (n = !1); var s = e.separator || ",", o = []; return i || (i = t), Qt(i, function (i, a) { var l = r.convertEmptyValue(i, t[i], e), h = n ? l : r.convertToSpecialFormat(i, l, e); h = (h = "" + h).replace(/"/g, '""'), (e.forceQuotes || h.search(new RegExp('"|\n|' + s, "g")) >= 0) && (h = '"' + h + '"'), o.push(h); }), o.join(s); }, e.prototype.getHTML = function (t, e) { return r(this, void 0, void 0, function () { var i, n, r, o, a, l, h = this; return s(this, function (s) { if (i = "<table>", e.tableClass && (i = '<table class="' + e.tableClass + '">'), n = this.adapter.apply("formatDataFields", { dataFields: this.dataFields, format: "html" }).dataFields, r = this.data, e.pivot) Qt(n, function (t, n) { var r = []; e.addColumnNames && r.push(n); for (var s = h.data.length, o = 0; o < s; o++) { var a = h.data[o][t]; r.push(h.convertToSpecialFormat(t, a, e, !0)); } i += "\n" + h.getHTMLRow(r, e, void 0, !0); });else for (e.addColumnNames && (i += "\n" + this.getHTMLRow(n, e, void 0, !0, !0)), o = r.length, a = 0; a < o; a++) i += "\n" + this.getHTMLRow(r[a], e, n); return i += "</table>", l = this.adapter.apply("charset", { charset: "charset=utf-8", type: t, options: e }).charset, [2, this.adapter.apply("getHTML", { data: "data:" + this.getContentType(t) + ";" + l + "," + encodeURIComponent(i), options: e }).data]; }); }); }, e.prototype.getHTMLRow = function (t, e, i, n, r) { var s = this; void 0 === n && (n = !1), void 0 === r && (r = !1); var o = "\t<tr>"; e.rowClass && (o = '\t<tr class="' + e.rowClass + '">'), i || (i = t); var a = r ? "th" : "td", l = !0; return Qt(i, function (i, r) { var h = s.convertEmptyValue(i, t[i], e), u = n ? h : s.convertToSpecialFormat(i, h, e); u = (u = "" + u).replace(/[\u00A0-\u9999<>\&]/gim, function (t) { return "&#" + t.charCodeAt(0) + ";"; }); var p = a; e.pivot && l && (p = "th"), e.cellClass ? o += "\n\t\t<" + p + ' class="' + e.cellClass + '">' + u + "</" + p + ">" : o += "\n\t\t<" + p + ">" + u + "</" + p + ">", l = !1; }), o += "\n\t</tr>"; }, e.prototype.getJSON = function (t, e) { return r(this, void 0, void 0, function () { var i, n, r, o, a, l, h, u, p = this; return s(this, function (s) { if (n = this.adapter.apply("formatDataFields", { dataFields: this.dataFields, format: "csv" }).dataFields, this._dynamicDataFields) i = this.data;else for (i = [], r = this.data, o = function o(t, s) { var o = r[s]; if ("object" == typeof o) { var a = {}; Qt(o, function (t, i) { S(n[t]) && (a[n[t]] = p.convertToSpecialFormat(t, i, e)); }), i.push(a); } }, a = r.length, l = 0; l < a; l++) o(0, l); return h = JSON.stringify(i, function (t, i) { return "object" == typeof i && Qt(i, function (t, n) { i[t] = p.convertToSpecialFormat(t, n, e); }), i; }, e.indent), u = this.adapter.apply("charset", { charset: "charset=utf-8", type: t, options: e }).charset, [2, this.adapter.apply("getJSON", { data: "data:" + this.getContentType(t) + ";" + u + "," + encodeURIComponent(h), options: e }).data]; }); }); }, e.prototype.convertToSpecialFormat = function (t, e, i, n) { if ("number" == typeof e) if (this.isDateField(t)) e = new Date(e);else { if (this.isDurationField(t)) return this.durationFormatter.format(e, this.durationFormat); if (this.isNumberField(t) && this.numberFormat) return this.numberFormatter.format(e, this.numberFormat); } return e instanceof Date ? i.useTimestamps ? e = e.getTime() : i.useLocale ? n || (e = e.toLocaleString()) : e = this.dateFormatter.format(e, this.dateFormat) : T(e) && this.isDateField(t) && this.dateFormat && (e = this.dateFormatter.format(this.dateFormatter.parse(e), this.dateFormat)), e; }, e.prototype.convertEmptyValue = function (t, e, i) { return S(e) ? e : i.emptyAs; }, e.prototype.download = function (t, e) { return r(this, void 0, void 0, function () { var i, n, r, o, a, l, h, u, p, c, d, f, g, y, m; return s(this, function (s) { if (this.msBlobDownloadSupport()) { if (f = t.split(";"), g = f.shift().replace(/data:/, ""), t = decodeURIComponent(f.join(";").replace(/^[^,]*,/, "")), -1 != ["image/svg+xml", "application/json", "text/csv"].indexOf(g)) return i = new Blob([t], { type: g }), window.navigator.msSaveBlob(i, e), [2, !0]; try { r = atob(t), t = r; } catch (t) { return [2, !1]; } for (l = new Array(t.length), h = 0; h < t.length; ++h) u = t.charCodeAt(h), l[h] = u; p = new Blob([new Uint8Array(l)], { type: g }), window.navigator.msSaveBlob(p, e); } else if (this.blobDownloadSupport()) { if ((n = document.createElement("a")).download = e, document.body.appendChild(n), f = t.split(";"), g = f.shift().replace(/data:/, ""), t = decodeURIComponent(f.join(";").replace(/^[^,]*,/, "")), -1 != ["image/svg+xml", "application/json", "text/csv", "text/html"].indexOf(g)) return o = new Blob([t], { type: g }), a = window.URL.createObjectURL(o), n.href = a, n.download = e, n.click(), setTimeout(function () { document.body.removeChild(n), window.URL.revokeObjectURL(a); }, 100), [2, !0]; try { r = atob(t), t = r; } catch (t) { return [2, !1]; } for (l = new Array(t.length), h = 0; h < t.length; ++h) u = t.charCodeAt(h), l[h] = u; p = new Blob([new Uint8Array(l)], { type: g }), c = window.URL.createObjectURL(p), n.href = c, n.download = e, document.body.appendChild(n), n.click(), document.body.removeChild(n), setTimeout(function () { window.URL.revokeObjectURL(c); }, 100); } else this.linkDownloadSupport() ? ((d = document.createElement("a")).download = e, d.href = t, document.body.appendChild(d), d.click(), document.body.removeChild(d)) : this.legacyIE() ? 4 === (f = t.match(/^data:(.*);[ ]*([^,]*),(.*)$/)).length && ("base64" == f[2] ? f[1].match(/^image\//) && this.showModal('<img src="' + t + '" style="float: left; max-width: 50%; max-height: 80%; margin: 0 1em 0.5em 0; border: 1px solid #eee;" /><p>' + this.language.translate('To save the image, right-click thumbnail on the left and choose "Save picture as..."') + '</p><p style="text-align: center;"><small>' + this.language.translate("(Press ESC to close this message)") + "</small></p>", this.language.translate("Image Export Complete")) : (g = void 0, e.match(/\.svg$/) ? g = "image/svg+xml" : (g = "text/plain", e += ".txt"), (y = document.createElement("iframe")).width = "1px", y.height = "1px", y.style.display = "none", document.body.appendChild(y), (m = y.contentDocument).open(g, "replace"), m.write(decodeURIComponent(f[3])), m.close(), m.execCommand("SaveAs", !0, e), document.body.removeChild(y))) : window.location.href = t; return [2, !0]; }); }); }, e.prototype.downloadSupport = function () { return this.linkDownloadSupport() || this.msBlobDownloadSupport(); }, e.prototype.linkDownloadSupport = function () { var t = Fs.getCache("linkDownloadSupport"); if (!1 === t || !0 === t) return t; var e = void 0 !== document.createElement("a").download; return Fs.setCache("linkDownloadSupport", e), e; }, e.prototype.blobDownloadSupport = function () { return S(window.Blob); }, e.prototype.msBlobDownloadSupport = function () { return S(window.navigator.msSaveOrOpenBlob); }, e.prototype.legacyIE = function () { var t = document.createElement("div"); return t.innerHTML = "\x3c!--[if lt IE 10]><i></i><![endif]--\x3e", 1 == t.getElementsByTagName("i").length; }, e.prototype.print = function (t, e, i) { return r(this, void 0, void 0, function () { return s(this, function (n) { return "css" == e.printMethod ? [2, this.printViaCSS(t, e, i)] : [2, this.printViaIframe(t, e, i)]; }); }); }, e.prototype.printViaCSS = function (t, e, i) { return r(this, void 0, void 0, function () { var n, r, o, a; return s(this, function (s) { return n = document.documentElement.scrollTop || document.body.scrollTop, r = new Ao("body > *", { display: "none", position: "fixed", visibility: "hidden", opacity: "0", clipPath: "polygon(0px 0px,0px 0px,0px 0px,0px 0px);" }), i && document && document.title && (o = document.title, document.title = i), (a = new Image()).src = t, a.style.maxWidth = "100%", a.style.display = "block", a.style.position = "relative", a.style.visibility = "visible", a.style.opacity = "1", a.style.clipPath = "none", document.body.appendChild(a), this.setTimeout(function () { window.print(); }, 50), /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream && e.delay < 1e3 ? e.delay = 1e3 : e.delay < 100 && (e.delay = 100), this.setTimeout(function () { document.body.removeChild(a), r.dispose(), o && (document.title = document.title), document.documentElement.scrollTop = document.body.scrollTop = n; }, e.delay || 500), [2, !0]; }); }); }, e.prototype.printViaIframe = function (t, e, i) { return r(this, void 0, void 0, function () { var n, r; return s(this, function (s) { return (n = document.createElement("iframe")).style.visibility = "hidden", document.body.appendChild(n), n.contentWindow.document.open(), n.contentWindow.document.close(), (r = new Image()).src = t, r.style.maxWidth = "100%", i && (n.contentWindow.document.title = i), n.contentWindow.document.body.appendChild(r), n.load = function () { n.contentWindow.document.body.appendChild(r); }, this.setTimeout(function () { try { n.contentWindow.document.execCommand("print", !1, null) || n.contentWindow.print(); } catch (t) { n.contentWindow.print(); } }, e.delay || 50), /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream && e.delay < 1e3 ? e.delay = 1e3 : e.delay < 100 && (e.delay = 100), this.setTimeout(function () { document.body.removeChild(n); }, e.delay + 50 || 100), [2, !0]; }); }); }, e.prototype.findBackgroundColor = function (t) { var e = 1, i = Xn(t, "background-color"); if ((i.match(/[^,]*,[^,]*,[^,]*,[ ]?0/) || "transparent" == i) && (e = 0), 0 == e) { var n = t.parentElement; return n ? this.findBackgroundColor(n) : Je("#fff"); } return Je(i, e); }, Object.defineProperty(e.prototype, "container", { get: function get() { return this.adapter.apply("container", { container: this._container }).container; }, set: function set(t) { this._container = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "sprite", { get: function get() { return this.adapter.apply("sprite", { sprite: this._sprite }).sprite; }, set: function set(t) { this._sprite = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "extraSprites", { get: function get() { return this.adapter.apply("extraSprites", { extraSprites: this._extraSprites }).extraSprites; }, set: function set(t) { this._extraSprites = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "validateSprites", { get: function get() { return this.adapter.apply("validateSprites", { validateSprites: this._validateSprites }).validateSprites; }, set: function set(t) { this._validateSprites = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "data", { get: function get() { return this.adapter.apply("data", { data: this._data }).data; }, set: function set(t) { this._data = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dataFields", { get: function get() { return this._dataFields || this.generateDataFields(), this.adapter.apply("dataFields", { dataFields: this._dataFields }).dataFields; }, set: function set(t) { this._dataFields = t, this._dynamicDataFields = !1; }, enumerable: !0, configurable: !0 }), e.prototype.handleDataUpdated = function () { this._dynamicDataFields && (this._dataFields = void 0); }, Object.defineProperty(e.prototype, "dateFormatter", { get: function get() { return this._dateFormatter || (this._dateFormatter = new ua(), this._dateFormatter.language = this.language), this.adapter.apply("dateFormatter", { dateFormatter: this._dateFormatter }).dateFormatter; }, set: function set(t) { this._dateFormatter = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dateFormat", { get: function get() { return this.adapter.apply("dateFormat", { dateFormat: this._dateFormat }).dateFormat; }, set: function set(t) { this._dateFormat = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dateFields", { get: function get() { return this._dateFields || (this._dateFields = new Ns()), this.adapter.apply("dateFields", { dateFields: this._dateFields }).dateFields; }, set: function set(t) { this._dateFields = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "numberFormatter", { get: function get() { return this._numberFormatter || (this._numberFormatter = new ha(), this._numberFormatter.language = this.language), this.adapter.apply("numberFormatter", { numberFormatter: this._numberFormatter }).numberFormatter; }, set: function set(t) { this._dateFormatter = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "numberFormat", { get: function get() { return this.adapter.apply("numberFormat", { numberFormat: this._numberFormat }).numberFormat; }, set: function set(t) { this._numberFormat = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "numberFields", { get: function get() { return this._numberFields || (this._numberFields = new Ns()), this.adapter.apply("numberFields", { numberFields: this._numberFields }).numberFields; }, set: function set(t) { this._numberFields = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "durationFormatter", { get: function get() { return this._durationFormatter || (this._durationFormatter = new pa(), this._durationFormatter.language = this.language), this.adapter.apply("durationFormatter", { durationFormatter: this._durationFormatter }).durationFormatter; }, set: function set(t) { this._durationFormatter = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "durationFormat", { get: function get() { return this.adapter.apply("durationFormat", { durationFormat: this._durationFormat }).durationFormat; }, set: function set(t) { this._durationFormat = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "durationFields", { get: function get() { return this._durationFields || (this._durationFields = new Ns()), this.adapter.apply("durationFields", { durationFields: this._durationFields }).durationFields; }, set: function set(t) { this._durationFields = t; }, enumerable: !0, configurable: !0 }), e.prototype.generateDataFields = function () { var t = this; this._dataFields = {}, this.data.length && mt(this.data, function (e) { Qt(e, function (e, i) { S(t._dataFields[e]) || (t._dataFields[e] = t.adapter.apply("dataFieldName", { name: e, field: e }).name); }); }); }, e.prototype.isDateField = function (t) { return this.adapter.apply("isDateField", { isDateField: this.dateFields.contains(t), field: t }).isDateField; }, e.prototype.isNumberField = function (t) { return this.adapter.apply("isNumberField", { isNumberField: this.numberFields.contains(t), field: t }).isNumberField; }, e.prototype.isDurationField = function (t) { return this.adapter.apply("isDurationField", { isDurationField: this.durationFields.contains(t), field: t }).isDurationField; }, e.prototype.getContentType = function (t) { var e = ""; switch (t) { case "png": case "gif": e = "image/" + t; break; case "jpg": e = "image/jpeg"; break; case "svg": e = "image/svg+xml"; break; case "csv": e = "text/csv"; break; case "json": e = "application/json"; break; case "html": e = "text/html"; break; case "pdf": case "pdfdata": e = "application/pdf"; break; case "xlsx": e = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; } return this.adapter.apply("contentType", { contentType: e, type: t }).contentType; }, Object.defineProperty(e.prototype, "filePrefix", { get: function get() { return this.adapter.apply("filePrefix", { filePrefix: this._filePrefix }).filePrefix; }, set: function set(t) { this._filePrefix = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "backgroundColor", { get: function get() { return this.adapter.apply("backgroundColor", { backgroundColor: this._backgroundColor }).backgroundColor; }, set: function set(t) { this._backgroundColor = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "title", { get: function get() { return this.adapter.apply("title", { title: this._title }).title; }, set: function set(t) { this._title = t; }, enumerable: !0, configurable: !0 }), e.prototype.showPreloader = function () { var t = this.preloader; t && (t.progress = .5, t.label.text = "..."); }, e.prototype.hidePreloader = function () { var t = this.preloader; t && (t.progress = 1); }, Object.defineProperty(e.prototype, "preloader", { get: function get() { return this._sprite && this._sprite.parent && this._sprite.parent.preloader ? this._sprite.parent.preloader : void 0; }, enumerable: !0, configurable: !0 }), e.prototype.showTimeout = function () { this.showModal(this.adapter.apply("timeoutMessage", { message: this.language.translate("Export operation took longer than expected. Something might have gone wrong.") }).message); }, e.prototype.hideTimeout = function () { this._timeoutTimeout && (this.removeDispose(this._timeoutTimeout), this._timeoutTimeout = null), this.hideModal(); }, Object.defineProperty(e.prototype, "language", { get: function get() { return this._language || (this._language = new aa()), this._language; }, set: function set(t) { this._language = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "modal", { get: function get() { return this._modal || (this._modal = new Go(), this._modal.adapter.add("classPrefix", function (t) { return t = Ms.classNamePrefix + t; })), this._modal; }, enumerable: !0, configurable: !0 }), e.prototype.showModal = function (t, e) { this.hideModal(), this.hidePreloader(); var i = this.modal; i.container = this.sprite.svgContainer.SVGContainer, i.content = t, i.readerTitle = e, i.open(); }, e.prototype.hideModal = function () { this._modal && this.modal.close(); }, e.prototype._canvg = function () { return r(this, void 0, void 0, function () { var t; return s(this, function (e) { switch (e.label) { case 0: return [4, i.e(1).then(i.t.bind(null, 19, 7))]; case 1: return null != (t = e.sent())["default"] ? [2, t["default"]] : [2, t]; } }); }); }, Object.defineProperty(e.prototype, "canvg", { get: function get() { return this._canvg(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pdfmake", { get: function get() { return null == ca && (ca = function () { return r(this, void 0, void 0, function () { var t, e, n, r; return s(this, function (s) { switch (s.label) { case 0: return [4, Promise.all([i.e(2).then(i.t.bind(null, 17, 7)), i.e(2).then(i.bind(null, 18))])]; case 1: return t = s.sent(), e = t[0], n = t[1], (r = window).pdfMake = r.pdfMake || {}, r.pdfMake.vfs = n["default"], e.vfs = n["default"], [2, e]; } }); }); }()), ca; }, enumerable: !0, configurable: !0 }), e.prototype._xlsx = function () { return r(this, void 0, void 0, function () { return s(this, function (t) { switch (t.label) { case 0: return [4, Promise.all([i.e(3), i.e(4)]).then(i.t.bind(null, 20, 7))]; case 1: return [2, t.sent()]; } }); }); }, Object.defineProperty(e.prototype, "xlsx", { get: function get() { return this._xlsx(); }, enumerable: !0, configurable: !0 }), e.prototype.setFormatOptions = function (t, e) { this._formatOptions.setKey(t, e); }, e.prototype.getFormatOptions = function (t) { return this._formatOptions.getKey(t); }, e.prototype._disablePointers = function () { S(this._spriteInteractionsEnabled) || (this._spriteInteractionsEnabled = this.sprite.interactionsEnabled), this.sprite.interactionsEnabled = !1; }, e.prototype._releasePointers = function () { S(this._spriteInteractionsEnabled) && (this.sprite.interactionsEnabled = this._spriteInteractionsEnabled); }, e.prototype.hideNonExportableSprites = function () { var t = this; if (!this._objectsAlreadyHidden) { var e = this.sprite.svgContainer; e && mt(e.nonExportableSprites, function (e) { e.isHidden || e.isHiding || t._hiddenObjects.push(e), e.hide(0); }), this._objectsAlreadyHidden = !0; } }, e.prototype.restoreNonExportableSprites = function () { this._objectsAlreadyHidden && (mt(this._hiddenObjects, function (t) { t.show(0); }), this._hiddenObjects = [], this._objectsAlreadyHidden = !1); }, e.prototype.awaitValidSprites = function () { return r(this, void 0, void 0, function () { var t; return s(this, function (e) { switch (e.label) { case 0: return t = [], this.validateSprites.length && mt(this.validateSprites, function (e, i) { e.invalid && t.push(new Promise(function (t, i) { e.events.once("validated", function (e) { t(); }); })); }), t.length ? [4, Promise.all(t)] : [3, 2]; case 1: e.sent(), e.label = 2; case 2: return [2]; } }); }); }, e.prototype.processConfig = function (e) { Fs.registeredClasses.ExportMenu = ga, e && S(e.menu) && !S(e.menu.type) && (e.menu.type = "ExportMenu"), t.prototype.processConfig.call(this, e); }, e.XLINK = "http://www.w3.org/1999/xlink", e; }(fa), va = ["fill", "fillOpacity", "stroke", "strokeOpacity", "strokeWidth", "strokeDasharray", "strokeDashoffset"], ba = function (t) { function e() { var e = t.call(this) || this; return e.properties = {}, e._eventDispatcher = new Co(e), e._bindings = {}, e._isTemplate = !1, e._isPath = !1, e._inited = !1, e._ready = !1, e.isHiding = !1, e._isHidden = !1, e.isShowing = !1, e.isStandaloneInstance = !1, e._isActive = !1, e._mask = new ys(), e._positionPrecision = 3, e._language = new ys(), e._exporting = new ys(), e._exportable = !0, e._bbox = { x: 0, y: 0, width: 0, height: 0 }, e.invalid = !1, e.positionInvalid = !1, e.propertyFields = {}, e.applyOnClones = !1, e.maxLeft = 0, e.maxRight = 0, e.maxTop = 0, e.maxBottom = 0, e._isDragged = !1, e._isResized = !1, e._disabled = !1, e._internalDisabled = !1, e._updateDisabled = !1, e._internalDefaultsApplied = !1, e.rollOutDelay = 0, e.isBaseSprite = !1, e.shouldClone = !0, e.appeared = !1, e.ex = 0, e.ey = 0, e.dragWhileResize = !1, e.className = "Sprite", e._disposers.push(e._eventDispatcher), e.uid, e.group = e.paper.addGroup("g"), e.setPropertyValue("scale", 1), e.setPropertyValue("rotation", 0), e.setPropertyValue("align", "none"), e.setPropertyValue("valign", "none"), e.setPropertyValue("pixelPerfect", !1), e.setPropertyValue("visible", !0), e.setPropertyValue("tooltipPosition", "fixed"), e.setPropertyValue("verticalCenter", "none"), e.setPropertyValue("horizontalCenter", "none"), e.setPropertyValue("marginTop", 0), e.setPropertyValue("marginBottom", 0), e.setPropertyValue("marginLeft", 0), e.setPropertyValue("marginRight", 0), e.setPropertyValue("dx", 0), e.setPropertyValue("dy", 0), e.setPropertyValue("paddingTop", 0), e.setPropertyValue("paddingBottom", 0), e.setPropertyValue("paddingRight", 0), e.setPropertyValue("paddingLeft", 0), e.setPropertyValue("togglable", !1), e.setPropertyValue("hidden", !1), e.setPropertyValue("urlTarget", "_self"), e.setPropertyValue("alwaysShowTooltip", !1), e._prevMeasuredWidth = 0, e._prevMeasuredHeight = 0, e._measuredWidth = 0, e._measuredHeight = 0, e._isMeasured = !0, e.invalidate(), e.applyTheme(), e._disposers.push(e.events), e._disposers.push(e.group), e._disposers.push(e._mask), e._disposers.push(e._language), e._disposers.push(e._exporting), e._disposers.push(new fs(function () { Qt(e._bindings, function (t, e) { e.dispose(); }); })), e.setPropertyValue("interactionsEnabled", !0), e; } return n(e, t), Object.defineProperty(e.prototype, "events", { get: function get() { return this._eventDispatcher; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "adapter", { get: function get() { return this._adapterO || (this._adapterO = new Ks(this)), this._adapterO; }, enumerable: !0, configurable: !0 }), e.prototype.applyTheme = function () { t.prototype.applyTheme.call(this), Ms.autoSetClassName && this.setClassName(); }, e.prototype.getCurrentThemes = function () { var t = this._themes; if (t) return t; var e = this.parent; return e ? e.getCurrentThemes() : Fs.themes; }, e.prototype.applyInternalDefaults = function () { this._internalDefaultsApplied = !0; }, e.prototype.invalidate = function () { this.disabled || this._isTemplate || this.invalid || (this.invalid = !0, Fs.addToInvalidSprites(this), Ls.requestFrame()); }, e.prototype.validate = function () { this.dispatchImmediately("beforevalidated"), this._internalDefaultsApplied || this.applyInternalDefaults(), this.beforeDraw(), this.draw(), this.invalid = !1, Fs.removeFromInvalidSprites(this), this.afterDraw(); }, e.prototype.invalidatePosition = function () { this.disabled || this._isTemplate || this.positionInvalid || (this.positionInvalid = !0, Fs.addToInvalidPositions(this), Ls.requestFrame()); }, e.prototype.validatePosition = function () { var t = this.pixelX, e = this.pixelY, i = this.dx, n = this.dy, r = t + i, s = e + n; this._updateDisabled && (this._internalDisabled ? this.group.attr({ display: "none" }) : this.disabled || this.removeSVGAttribute("display"), this._updateDisabled = !1); var o = this.measure(), a = this.group.transformString; this.group.moveTo({ x: r, y: s }), this.group.rotation = this.rotation, this.nonScaling ? this.group.scale = this.scale / this.globalScale : this.group.scale = this.scale, (a != this.group.transformString || o) && (null == a ? this.dispatch("transformed") : this.dispatchImmediately("transformed"), this.dispatch("positionchanged"), this.alwaysShowTooltip && this.updateTooltipPosition()), t + i == r && e + n == s && (Fs.removeFromInvalidPositions(this), this.positionInvalid = !1); var l = this._maskRectangle; l && this._clipElement.moveTo({ x: l.x - t, y: l.y - e }); }, e.prototype.beforeDraw = function () {}, e.prototype.draw = function () {}, e.prototype.afterDraw = function () { if ((this.isMeasured || "none" !== this.horizontalCenter || "none" !== this.verticalCenter) && this.measureElement(), this._inited) this.dispatch("validated");else { if (this._adapterO) try { for (var t = o(this._adapterO.keys()), e = t.next(); !e.done; e = t.next()) { var i = e.value; switch (i) { case "mask": case "fill": case "opacity": case "fillOpacity": case "stroke": case "strokeOpacity": case "strokeWidth": case "shapeRendering": case "strokeDasharray": case "strokeDashoffset": case "strokeLinecap": case "strokeLinejoin": case "textDecoration": case "fontSize": case "fontFamily": case "fontWeight": this[i] = this[i]; } } } catch (t) { n = { error: t }; } finally { try { e && !e.done && (r = t["return"]) && r.call(t); } finally { if (n) throw n.error; } } this.applyFilters(), this.visible = this.visible, this.interactionsEnabled = this.getPropertyValue("interactionsEnabled"), this._inited = !0, this.showOnInit || (this.appeared = !0), this.hidden && this.hide(0), this.applyMask(), this.dispatch("validated"), this.dispatch("inited"), this.dispatchReady(); } var n, r; this.alwaysShowTooltip && (!this.visible || this.disabled || this.__disabled ? this.hideTooltip(0) : this.showTooltip()); }, e.prototype.dispatchReady = function () { this.isReady() || (this._ready = !0, this.dispatch("ready")); }, e.prototype.reinit = function () { this._inited = !1, this.setState(this.defaultState), this.invalidate(); }, e.prototype.handleGlobalScale = function () { this.dispatch("globalscalechanged"), this.nonScalingStroke && (this.strokeWidth = this.strokeWidth), this.nonScaling && this.validatePosition(), this.updateFilterScale(); }, e.prototype.updateFilterScale = function () { var t = this; pe(this.filters.iterator(), function (e) { e.scale = t.globalScale; }); }, e.prototype.removeFromInvalids = function () { Fs.removeFromInvalidSprites(this), Fs.removeFromInvalidPositions(this); }, e.prototype.copyFrom = function (e) { var i = this; t.prototype.copyFrom.call(this, e), this.isMeasured = e.isMeasured, this.states.copyFrom(e.states), e.filters.length > 0 && e.filters.each(function (t) { i.filters.push(t.clone()); }), e._adapterO && this.adapter.copyFrom(e._adapterO), e._interaction && this.interactions.copyFrom(e.interactions), e._plugins && this.plugins.copyFrom(e.plugins), this.configField = e.configField, this.applyOnClones = e.applyOnClones, this.disabled = e.disabled, this.virtualParent = e.virtualParent, this.exportable = e.exportable, e._tooltip && (this._tooltip ? this._tooltip.copyFrom(e.tooltip) : this.tooltip = e.tooltip.clone()), this._showSystemTooltip = e.showSystemTooltip, ni(e.propertyFields, this.propertyFields), ni(e.properties, this), e.fillModifier && (this.fillModifier = e.fillModifier.clone()), e.strokeModifier && (this.strokeModifier = e.strokeModifier.clone()); }, e.prototype.dispose = function () { if (!this.isDisposed()) { if (this.dispatchImmediately("beforedisposed"), this.isBaseSprite) { if (this.htmlContainer) for (; this.htmlContainer.childNodes.length > 0;) this.htmlContainer.removeChild(this.htmlContainer.firstChild); this.isBaseSprite = !1; } if (t.prototype.dispose.call(this), this._adapterO && this._adapterO.clear(), this.applyOnClones && this._clones) for (var e = this._clones.length - 1; e >= 0; e--) this._clones.getIndex(e).dispose(); this._svgContainer && this._svgContainer.dispose(), this._interactionDisposer && (this._interactionDisposer.dispose(), this._interactionDisposer = void 0), this._urlDisposer && this._urlDisposer.dispose(), this.removeFromInvalids(), this.element && this.element.dispose(), this.group && this.group.dispose(), this._numberFormatter && this._numberFormatter.dispose(), this._focusFilter && this._focusFilter.dispose(); var i = this.stroke; !i || i instanceof qs || !i.dispose || this.clonedFrom && this.clonedFrom.stroke == i || i.dispose(); var n = this.fill; if (!n || n instanceof qs || !n.dispose || this.clonedFrom && this.clonedFrom.fill == n || n.dispose(), S(this.id) && this.map.removeKey(this.id), this.parent = void 0, this._filters) for (; this._filters.length > 0;) { var r = this._filters.getIndex(0); r.dispose(), this._filters.removeValue(r); } this._alwaysShowDisposers = void 0; } }, Object.defineProperty(e.prototype, "isTemplate", { get: function get() { return this._isTemplate; }, set: function set(t) { t = P(t), this._isTemplate != t && (this._isTemplate = t, this instanceof _a && pe(this.children.iterator(), function (e) { e.isTemplate = t; }), t ? (this.parent = this.parent, this.removeFromInvalids()) : this.invalidate()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "showSystemTooltip", { get: function get() { return S(this._showSystemTooltip) ? this._showSystemTooltip : this.virtualParent ? this.virtualParent.showSystemTooltip : !!this.parent && this.parent.showSystemTooltip; }, set: function set(t) { t = P(t), this._showSystemTooltip != t && (this._showSystemTooltip = t, this.applyAccessibility()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "topParent", { get: function get() { return this._topParent ? this._topParent : this.parent ? this.parent.topParent : void 0; }, set: function set(t) { this._topParent = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "parent", { get: function get() { return this._parent; }, set: function set(t) { if (!this._isTemplate) { this.paper; var e = this._parent; e != t && (e && e.children.removeValue(this), this._parent = t, t ? (this.topParent = t.topParent, t.isTemplate && (this.isTemplate = !0), this.baseId = t.baseId, t.children.push(this), this._tooltip && !this._tooltipContainer && (this._tooltip.parent = t.tooltipContainer), this._dataItem || (this.dataItem = t.dataItem), this.handleAlwaysShowTooltip(), this.dispatchImmediately("parentset")) : this.topParent = void 0); } }, enumerable: !0, configurable: !0 }), e.prototype.handleAlwaysShow = function () { this.showTooltip(); }, e.prototype.handleAlwaysShowTooltip = function () { var t = this, e = this._alwaysShowDisposers; if (e && mt(e, function (t) { t.dispose(); }), this._alwaysShowDisposers = [], this.alwaysShowTooltip) for (; null != t;) { var i = t.events.on("visibilitychanged", this.handleAlwaysShow, this, !1); this.addDisposer(i), this._alwaysShowDisposers.push(i), t = t.parent; } }, Object.defineProperty(e.prototype, "virtualParent", { get: function get() { return this._virtualParent; }, set: function set(t) { this._virtualParent = t; }, enumerable: !0, configurable: !0 }), e.prototype.appendDefs = function () { this.filterElement && this.paper.appendDef(this.filterElement); var t = this.fill; t && t.element && this.paper.appendDef(t.element); var e = this.stroke; if (e && e.element && this.paper.appendDef(e.element), this.fillModifier && this.fill instanceof qs) { var i = this.fillModifier.modify(this.fill); i && i.element && this.paper.appendDef(i.element); } if (this.strokeModifier && this.stroke instanceof qs) { var n = this.strokeModifier.modify(this.stroke); n && n.element && this.paper.appendDef(n.element); } this._clipPath && this.paper.appendDef(this._clipPath), !1 === this._exportable && (this.exportable = !1); }, Object.defineProperty(e.prototype, "map", { get: function get() { var t = this.topParent; return t ? t.map : (this._map || (this._map = new Ds()), this._map); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "id", { get: function get() { return this._id; }, set: function set(t) { if (this._id != t) { if (this._id = t, this.map.hasKey(t)) throw Error("Duplicate id (" + t + ") used on multiple objects."); this.map.setKey(t, this), Ms.autoSetClassName && this.setClassName(); } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dom", { get: function get() { return this.group.node; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "paper", { get: function get() { return this._paper ? this._paper : this.parent ? this.parent.paper : cr(); }, set: function set(t) { this.setPaper(t); }, enumerable: !0, configurable: !0 }), e.prototype.setPaper = function (t) { return this._paper != t && (this._paper = t, this.appendDefs(), !0); }, Object.defineProperty(e.prototype, "htmlContainer", { get: function get() { return this._htmlContainer ? this._htmlContainer : this.parent ? this.parent.htmlContainer : void 0; }, set: function set(t) { this._htmlContainer = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "titleElement", { get: function get() { return this._titleElement || (this._titleElement = this.paper.add("title"), this.group.add(this._titleElement)), this._titleElement; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "descriptionElement", { get: function get() { return this._descriptionElement || (this._descriptionElement = this.paper.add("desc"), this.group.add(this._descriptionElement)), this._descriptionElement; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "filters", { get: function get() { return this._filters || (this._filters = new Ns(), this._disposers.push(this._filters.events.onAll(this.applyFilters, this)), this._disposers.push(new Bs(this._filters))), this._filters; }, enumerable: !0, configurable: !0 }), e.prototype.setSVGAttributes = function () { this.fill = this.fill, this.opacity = this.opacity, this.fillOpacity = this.fillOpacity, this.stroke = this.stroke, this.strokeOpacity = this.strokeOpacity, this.shapeRendering = this.shapeRendering, this.strokeDasharray = this.strokeDasharray, this.strokeDashoffset = this.strokeDashoffset, this.strokeLinecap = this.strokeLinecap, this.strokeLinejoin = this.strokeLinejoin, this.focusable = this.focusable, this.tabindex = this.tabindex, this.role = this.role; }, e.prototype.setSVGAttribute = function (t) { this.group.attr(t); }, e.prototype.removeSVGAttribute = function (t) { this.group.removeAttr(t); }, e.prototype.setClassName = function () { var t = this.className, e = Ms.classNamePrefix; this.element && this.element.addClass(e + t), this.group.addClass(e + t + "-group"), S(this.id) && this.group.addClass(e + this.id); }, e.prototype.uidAttr = function () { return this.setSVGAttribute({ id: this.uid }), this.uid; }, e.prototype.updateClipPath = function () { var t = this._clipElement; t && t.moveTo({ x: this.mask.pixelX, y: this.mask.pixelY }); }, e.prototype.createClipPath = function () { if (!this._clipPath) { this._clipPath = this.paper.addGroup("clipPath"), this.paper.appendDef(this._clipPath), this._disposers.push(this._clipPath); var t = Fs.getUniqueId(); this._clipPath.attr({ id: t }), this.group.attr({ "clip-path": 'url("' + si() + t + '")' }); } }, e.prototype.applyMask = function () { var t = this.mask; if (this._clipPath && t) if (t instanceof _a) { this._clipElement.attr({ width: W(0, t.pixelWidth), height: W(0, t.pixelHeight) }); var e = Xi({ x: t.pixelX, y: t.pixelY }, t.parent, this); this._clipPath.x = e.x, this._clipPath.y = e.y; } else t.element && t.element != this._clipElement && (this._clipElement = t.element, this._clipPath.add(this._clipElement)), this._clipPath.scale = t.scale, this._clipPath.x = t.pixelX, this._clipPath.y = t.pixelY, this._clipPath.rotation = t.rotation; }, e.prototype.applyFilters = function () { var t = this; if (this._filters && this._filters.length > 0) { var e = 100, i = 100; this.filterElement ? this.filterElement.removeChildNodes() : (this.filterElement = this.paper.addGroup("filter"), this._disposers.push(this.filterElement)), this.paper.appendDef(this.filterElement); var n = "filter-" + this.uid; this.filterElement.attr({ id: n }), pe(this.filters.iterator(), function (n) { n.sprite = t, n.paper = t.paper, n.appendPrimitives(t.filterElement), n.width > e && (e = n.width), n.height > i && (i = n.height), n.scale = t.globalScale; }); var r = e + "%", s = i + "%"; this.filterElement.attr({ width: r, height: s, x: -(e - 100) / 2 + "%", y: -(i - 100) / 2 + "%" }), this.group.attr({ filter: 'url("' + si() + n + '")' }); } else this.filterElement && (this.group.removeAttr("filter"), this.filterElement.removeChildNodes()); }, e.prototype.removeClipPath = function () { this._clipPath && (this.removeDispose(this._clipPath), this._clipPath = void 0); }, e.prototype.setElement = function (t) { this.element = t, this.setSVGAttributes(), this.applyAccessibility(); }, Object.defineProperty(e.prototype, "element", { get: function get() { return this._element; }, set: function set(t) { this.removeElement(), this._element = t, this.group.add(t), t.node instanceof SVGPathElement && (this._isPath = !0), this.invalid || this.validate(), Ms.autoSetClassName && this.setClassName(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "svgContainer", { get: function get() { return this._svgContainer ? this._svgContainer : this.parent ? this.parent.svgContainer : void 0; }, set: function set(t) { this._svgContainer = t; }, enumerable: !0, configurable: !0 }), e.prototype.measureElement = function () { if (this.element) if (this.definedBBox) this._bbox = this.definedBBox;else { var t = this.element.getBBox(); this._bbox = { x: t.x, y: t.y, width: t.width, height: t.height }; } }, e.prototype.updateCenter = function () { if (this.element) { var t = this.element.transformString, e = this.bbox, i = 0, n = 0, r = e.x, s = e.y, o = e.width, a = e.height, l = this.pixelPaddingLeft, h = this.pixelPaddingRight, u = this.pixelPaddingTop, p = this.pixelPaddingBottom, c = W(o + l + h, this.pixelWidth), d = W(a + u + p, this.pixelHeight), f = e.x, g = e.x + c, y = e.y, m = e.y + d, v = this.horizontalCenter, b = this.verticalCenter; switch (v) { case "none": i = r + l; break; case "left": i = l; break; case "middle": i = l - (o + h + l) / 2; break; case "right": i = -h - o; } switch (b) { case "none": n = s + u; break; case "top": n = u; break; case "middle": n = u - (a + p + u) / 2; break; case "bottom": n = -p - a; } this._measuredHeight = d, this._measuredWidth = c; var x = j(i - r, this._positionPrecision, !0), _ = j(n - s, this._positionPrecision, !0); this.ex = x - l, this.ey = _ - u, this.maxLeft = f + x - l, this.maxRight = g + x - l, this.maxTop = y + _ - u, this.maxBottom = m + _ - u, this.pixelPerfect && (x -= .5, _ -= .5), this.element.moveTo({ x: x, y: _ }), t != this.element.transformString && this.dispatchImmediately("transformed"); } }, e.prototype.measure = function () { this.updateCenter(); var t = this._measuredWidth, e = this._measuredHeight, i = this.maxLeft, n = this.maxRight, r = this.maxTop, s = this.maxBottom; this._measuredWidthSelf = t, this._measuredHeightSelf = e; var o = this._positionPrecision; if (0 !== this.rotation || 1 !== this.scale) { this.nonScalingStroke && (this.strokeWidth = this.strokeWidth); var a = this.paper.svg, l = a.createSVGMatrix(), h = this.rotation; l.a = H(h) * this.scale, l.c = -B(h) * this.scale, l.e = 0, l.b = B(h) * this.scale, l.d = H(h) * this.scale, l.f = 0; var u = a.createSVGPoint(); u.x = i, u.y = r; var p = a.createSVGPoint(); p.x = n, p.y = r; var c = a.createSVGPoint(); c.x = n, c.y = s; var d = a.createSVGPoint(); d.x = i, d.y = s; var f = u.matrixTransform(l), g = p.matrixTransform(l), y = c.matrixTransform(l), m = d.matrixTransform(l); i = Math.min(f.x, g.x, y.x, m.x), n = Math.max(f.x, g.x, y.x, m.x), r = Math.min(f.y, g.y, y.y, m.y), t = n - i, e = (s = Math.max(f.y, g.y, y.y, m.y)) - r, this.maxLeft = j(i, o, !0), this.maxRight = j(n, o, !0), this.maxTop = j(r, o, !0), this.maxBottom = j(s, o, !0); } return this._measuredWidth = j(t, o, !0), this._measuredHeight = j(e, o, !0), (this._measuredWidth != this._prevMeasuredWidth || this._measuredHeight != this._prevMeasuredHeight) && (this._prevMeasuredHeight = this._measuredHeight, this._prevMeasuredWidth = this._measuredWidth, this.dispatch("sizechanged"), (this.isHover || this.alwaysShowTooltip) && this.tooltip && this.tooltip.visible && (S(this.tooltipText) || S(this.tooltipHTML)) && this.updateTooltipPosition(), !0); }, e.prototype.insertBefore = function (t) { var e = this.parent; if (e) { var i = e.children.indexOf(t); -1 !== i && (e.children.moveValue(this, i), e.sortChildren()); } return this; }, e.prototype.insertAfter = function (t) { var e = this.parent; if (e) { var i = e.children.indexOf(t); -1 !== i && (e.children.moveValue(this, i + 1), e.sortChildren()); } return this; }, e.prototype.removeElement = function () { this._element && (this.removeDispose(this._element), this._element = void 0); }, e.prototype.getRelativeX = function (t) { return t instanceof hs ? t.value : this.parent ? t / this.parent.innerWidth : 0; }, e.prototype.getRelativeY = function (t) { return t instanceof hs ? t.value : this.parent ? t / this.parent.innerHeight : 0; }, e.prototype.getPixelX = function (t) { var e = 0; if (A(t)) e = t;else if (t instanceof hs) { var i = t.value; this.parent && (e = j(this.parent.innerWidth * i, this._positionPrecision, !0)); } return e; }, e.prototype.getPixelY = function (t) { var e = 0; if (A(t)) e = t;else if (t instanceof hs) { var i = t.value; this.parent && (e = j(this.parent.innerHeight * i, this._positionPrecision, !0)); } return e; }, e.prototype.moveTo = function (t, e, i, n) { this.isDragged && !n || (t && (A(t.x) && this.setPropertyValue("x", t.x), A(t.y) && this.setPropertyValue("y", t.y)), A(e) && (this.rotation = e), A(i) && (this.scale = i), this.invalidatePosition()); }, Object.defineProperty(e.prototype, "mask", { get: function get() { return this._adapterO ? this._adapterO.apply("mask", this._mask.get()) : this._mask.get(); }, set: function set(t) { var e = this; this._mask.get() !== t && (t ? (this.createClipPath(), t instanceof _a ? this._clipElement = this.paper.add("rect") : (t.isMeasured = !1, t.element && (this._clipElement = t.element)), this._clipElement && this._clipPath.add(this._clipElement), this._mask.set(t, new gs([t.events.on("maxsizechanged", function () { e.inited && e.applyMask(); }, void 0, !1), t.events.on("validated", this.applyMask, this, !1), t.events.on("positionchanged", this.applyMask, this, !1)])), this.applyMask()) : (this._mask.reset(), this.group.removeAttr("clip-path"), this.removeClipPath())); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maskRectangle", { get: function get() { return this._maskRectangle; }, set: function set(t) { t ? (this.createClipPath(), this._clipElement || (this._clipElement = this.paper.add("rect"), this._clipPath.add(this._clipElement)), this._clipElement.attr({ width: t.width, height: t.height })) : (this.removeClipPath(), this._clipElement = void 0), this._maskRectangle = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isMeasured", { get: function get() { return this._isMeasured; }, set: function set(t) { (t = P(t)) || (this._measuredWidth = 0, this._measuredHeight = 0), this._isMeasured != t && (this._isMeasured = t, this.invalidatePosition()); }, enumerable: !0, configurable: !0 }), e.prototype.hitTest = function (t) { this.invalid && this.validate(), t.invalid && t.validate(); var e = this.pixelX, i = this.pixelY, n = e + this.measuredWidth, r = i + this.measuredHeight, s = t.pixelX, o = t.pixelY, a = s + t.measuredWidth, l = o + t.measuredHeight; return !(s > n || a < e || o > r || l < i); }, Object.defineProperty(e.prototype, "inited", { get: function get() { return this._inited; }, enumerable: !0, configurable: !0 }), e.prototype.isReady = function () { return this._ready; }, Object.defineProperty(e.prototype, "states", { get: function get() { if (!this._states) { var t = new Po(); this._states = new ks(t), this._disposers.push(this._states.events.on("insertKey", this.processState, this, !1)), this._disposers.push(this._states.events.on("setKey", this.processState, this, !1)), this._disposers.push(new Is(this._states)), this._disposers.push(t); } return this._states; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hiddenState", { get: function get() { if (!this.states.getKey("hidden")) { var t = this.states.create("hidden"); t.properties.opacity = 0, t.properties.visible = !1; } return this.states.getKey("hidden"); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "defaultState", { get: function get() { return this.states.getKey("default") || (this.states.create("default").properties.opacity = 1), this.states.getKey("default"); }, enumerable: !0, configurable: !0 }), e.prototype.processState = function (t) { var e = t.newValue; if (e.sprite = this, e.name = t.key, (this.states.hasKey("hover") || S(this.tooltipHTML) || S(this.tooltipText)) && (this.hoverable = !0), this.states.hasKey("down") && (this.clickable = !0), this.states.hasKey("focus") && (this.focusable = !0), this.applyOnClones) for (var i = this.clones.values, n = i.length, r = 0; r < n; ++r) { var s = i[r]; s.isDisposed() || s.states.setKey(e.name, e); } }, Object.defineProperty(e.prototype, "animations", { get: function get() { return this._animations || (this._animations = [], this._disposers.push(new So(this._animations))), this._animations; }, enumerable: !0, configurable: !0 }), e.prototype.getSvgPoint = function (t) { try { var e = this.htmlContainer.getBoundingClientRect(); return { x: t.x - e.left, y: t.y - e.top }; } catch (e) { return t; } }, e.prototype.animate = function (t, e, i) { return new Io(this, t, e, i).start(); }, e.prototype.setState = function (t, e, i) { var n; if (t instanceof Po) this.states.setKey(t.name, t), n = t;else if (!(n = this.states.getKey(t))) return; if ("hover" == n.name) { if (this.isHidden) return; this.isHover = !0; } return "hidden" == n.name ? this.isHiding = !0 : this.visible || this.setVisibility(n.properties.visible || this.defaultState.properties.visible), "active" == n.name && (this.isActive = !0), A(e) || (e = n.transitionDuration), S(i) || (i = n.transitionEasing), this.transitTo(n, e, i); }, e.prototype.applyCurrentState = function (t) { var e = this.setState(this.defaultState, t); return this.isHover && (e = this.setState("hover", t)), this.isDown && this.interactions.downPointers.length && (e = this.setState("down", t)), this.isFocused = this.isFocused, this.isActive && (e = this.setState("active", t), this.isHover && this.states.hasKey("hoverActive") && (e = this.setState("hoverActive", t))), e; }, e.prototype.transitTo = function (t, e, i) { var n, r = this, s = []; if (Qt(t.allValues, function (t, e) { var i = r[t]; if (e != i && null == r.defaultState.properties[t] && (r.defaultState.properties[t] = i), S(e)) { var n = { from: i, to: e, property: t }; s.push(n); } }), s.length > 0 && ((n = this.animate(s, e, i)) && !n.isFinished() ? this._disposers.push(n.events.on("animationended", function () { r.dispatchImmediately("transitionended"); })) : this.dispatchImmediately("transitionended")), t.filters.length > 0) { var o = []; pe(t.filters.iterator(), function (t) { var n = t.clone(); o.push(n); var s = []; pe(r.filters.iterator(), function (t) { t.className == n.className && (_e(r.defaultState.filters.iterator(), function (t) { return t.className === n.className; }) || r.defaultState.filters.push(t), Qt(n.properties, function (e, i) { var n = t.properties[e]; n != i && s.push({ property: e, from: n, to: i }); })); }), n.animate(s, e, i); }), this.filters.clear(), this.filters.pushAll(o); } return n; }, e.prototype.isInTransition = function () { return this.animations.length > 0; }, Object.defineProperty(e.prototype, "isHover", { get: function get() { return !!this.isInteractive() && this.interactions.isHover; }, set: function set(t) { (t = P(t)) !== this.isHover && this.isInteractive() && (this.interactions.isHover = t, t ? this.handleOver() : this.handleOut()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isDragged", { get: function get() { return this._isDragged; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isResized", { get: function get() { return this._isResized; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isDown", { get: function get() { return !!this.isInteractive() && this.interactions.isDown; }, set: function set(t) { t = P(t), this.isInteractive() && this.isDown != t && (this.interactions.isDown = t, t ? this.handleDown() : this.handleUp()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isFocused", { get: function get() { return !!this.isInteractive() && this.interactions.isFocused; }, set: function set(t) { t = P(t), this.focusable && this.isFocused != t && this.isInteractive() && (this.interactions.isFocused = t, !0 === t ? this.handleFocus() : this.handleBlur()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isActive", { get: function get() { return this._isActive; }, set: function set(t) { this.setActive(t); }, enumerable: !0, configurable: !0 }), e.prototype.setActive = function (t) { t = P(t), this._isActive !== t && (this._isActive = t, t && this.states.hasKey("active") ? (this.setState("active"), this.isHover && this.states.hasKey("hoverActive") && this.setState("hoverActive")) : this.applyCurrentState(), this.dispatchImmediately("toggled")); }, Object.defineProperty(e.prototype, "disabled", { get: function get() { var t = this.getPropertyValue("disabled"); return S(t) ? t : this.virtualParent ? this.virtualParent.disabled : !!this.parent && this.parent.disabled; }, set: function set(t) { this.setDisabled(t); }, enumerable: !0, configurable: !0 }), e.prototype.setDisabled = function (t) { if (t = P(t), this.getPropertyValue("disabled") != t) { if (this.setPropertyValue("disabled", t, !0), t) this.parent = this.parent, this.removeFromInvalids(), this.group.attr({ display: "none" }), this.dispatch("disabled");else { if (this.parent) { var e = this.parent.element; e.hasChild(this.group) || e.add(this.group); } this instanceof _a ? this.deepInvalidate() : this.invalidate(), this.__disabled || this.removeSVGAttribute("display"), this.dispatch("enabled"); } return this.dispatch("transformed"), Ls.requestFrame(), !0; } return !1; }, Object.defineProperty(e.prototype, "__disabled", { get: function get() { return this._internalDisabled; }, set: function set(t) { this._internalDisabled != t && (this._internalDisabled = t, this._updateDisabled = !0, this.invalidatePosition()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "numberFormatter", { get: function get() { return this._numberFormatter ? this._numberFormatter : this.virtualParent ? this.virtualParent.numberFormatter : this.parent ? this.parent.numberFormatter : (this._numberFormatter = new ha(), this._numberFormatter.language = this.language, this.numberFormatter); }, set: function set(t) { this._numberFormatter = t, this._numberFormatter.language = this.language; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dateFormatter", { get: function get() { return this._dateFormatter ? this._dateFormatter : this.virtualParent ? this.virtualParent.dateFormatter : this.parent ? this.parent.dateFormatter : (this._dateFormatter = new ua(), this._dateFormatter.language = this.language, this.dateFormatter); }, set: function set(t) { this._dateFormatter = t, this._dateFormatter.language = this.language; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "durationFormatter", { get: function get() { return this._durationFormatter ? this._durationFormatter : this.virtualParent ? this.virtualParent.durationFormatter : this.parent ? this.parent.durationFormatter : (this._durationFormatter = new pa(), this._durationFormatter.language = this.language, this.durationFormatter); }, set: function set(t) { this._durationFormatter = t, this._durationFormatter.language = this.language; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "language", { get: function get() { var t = this._language.get(); return t || (this.virtualParent ? this.virtualParent.language : this.parent ? this.parent.language : (t = new aa(), this.language = t, t)); }, set: function set(t) { var e = this; this._language.get() !== t && this._language.set(t, t.events.on("localechanged", function (t) { if (e._numberFormatter && (e._numberFormatter.language = e.language), e._dateFormatter && (e._dateFormatter.language = e.language), e._durationFormatter && (e._durationFormatter.language = e.language), e._exporting.get()) { var i = e._exporting.get(); i.numberFormatter.language = e.language, i.dateFormatter.language = e.language, i.durationFormatter.language = e.language, i.language = e.language; } e instanceof _a && e.deepInvalidate(); })); }, enumerable: !0, configurable: !0 }), e.prototype.populateString = function (t, e) { if (S(t)) { t = x(t); var i = (t = dr().escape(t)).match(/\{([^}]+)\}/g), n = void 0; if (i) for (n = 0; n < i.length; n++) { var r = i[n].replace(/\{([^}]+)\}/, "$1"), s = this.getTagValue(r, "", e); S(s) || (s = ""), t = t.split(i[n]).join(s); } t = dr().unescape(t); } else t = ""; return this._adapterO ? this._adapterO.apply("populateString", t) : t; }, e.prototype.getTagValue = function (t, e, i) { var n; S(i) || (i = this.dataItem); for (var r, s = [], o = /([^.]+)\(([^)]*)\)|([^.]+)/g; null !== (r = o.exec(t));) if (r[3]) s.push({ prop: r[3] });else { var a = []; if ("" != bi(r[2])) for (var l = /'([^']*)'|"([^"]*)"|([0-9\-]+)/g, h = void 0; null !== (h = l.exec(r[2]));) a.push(h[1] || h[2] || h[3]); s.push({ method: r[1], params: a }); } if (i) { S(n = this.getTagValueFromObject(s, i.values)) && !V(n) || (n = this.getTagValueFromObject(s, i)); var u = i.dataContext; !S(n) && u && !S(n = this.getTagValueFromObject(s, i.dataContext)) && u.dataContext && (n = this.getTagValueFromObject(s, u.dataContext)), !S(n) && i.component && i.component.dataItem !== i && (n = i.component.getTagValue(t, e)); } return S(n) || (n = this.getTagValueFromObject(s, this.populateStringFrom || this)), !S(n) && this.parent && (n = this.parent.getTagValue(t, e)), n; }, e.prototype.getTagValueFromObject = function (t, e, i) { for (var n = e, r = !1, s = 0, o = t.length; s < o; s++) { var a = t[s]; if (a.prop) { if (!S(n = n[a.prop])) return; } else switch (a.method) { case "formatNumber": var l = Ai(n); S(l) && (n = this.numberFormatter.format(l, i || a.params[0] || void 0), r = !0); break; case "formatDate": var h = void 0; if (!k(h = T(n) ? this.dateFormatter.parse(n) : Ti(n)) || p(h.getTime())) return; S(h) && (n = this.dateFormatter.format(h, i || a.params[0] || void 0), r = !0); break; case "formatDuration": var u = Ai(n); S(u) && (n = this.durationFormatter.format(u, i || a.params[0] || void 0, a.params[1] || void 0), r = !0); break; case "urlEncode": case "encodeURIComponent": n = encodeURIComponent(n); break; default: n[a.method] && n[a.method].apply(this, a.params); } } if (!r) { var c = [{ method: "", params: i }]; if (S(i)) { var d = Oi(i); d === eo ? c[0].method = "formatNumber" : d === io ? c[0].method = "formatDate" : d === no && (c[0].method = "formatDuration"); } else A(n) ? (c[0].method = "formatNumber", c[0].params = "") : k(n) && (c[0].method = "formatDate", c[0].params = ""); c[0].method && (n = this.getTagValueFromObject(c, n)); } return n; }, Object.defineProperty(e.prototype, "dataItem", { get: function get() { if (!this._dataItem) { if (this.virtualParent) return this.virtualParent.dataItem; if (this.parent) return this.parent.dataItem; } return this._dataItem; }, set: function set(t) { this.setDataItem(t); }, enumerable: !0, configurable: !0 }), e.prototype.setDataItem = function (t) { var e = this; if (this._dataItem != t) { if (this._dataItem = t, t) { if (this.configField) { var i = t.dataContext; i && (this.config = i[this.configField], !this.config && i.dataContext && (this.config = i.dataContext[this.configField])); } var n = t.dataContext; if (n) { var r = n.dataContext; Qt(this.propertyFields, function (t, i) { if (S(n[i])) e[t] = n[i];else if (r) { var s = r[i]; S(s) && (e[t] = s); } }); } } this.invalidate(); } }, e.prototype.getPropertyValue = function (t) { var e = this.properties[t]; return this._isTemplate || this._adapterO && (e = this._adapterO.apply(t, e)), e; }, e.prototype.setColorProperty = function (t, e, i) { var n = this.properties[t]; return !(e instanceof qs && n instanceof qs && e.toString() == n.toString()) && this.setPropertyValue(t, e, i); }, e.prototype.setPercentProperty = function (t, e, i, n, r, s) { if (A(e = O(e))) return e = j(e, r, s), this.setPropertyValue(t, e, i, n); var o = this.properties[t]; return !(e instanceof hs && o instanceof hs && e.value == o.value) && this.setPropertyValue(t, e, i, n); }, e.prototype.setPropertyValue = function (t, e, i, n) { if (this.properties[t] !== e && !this.isDisposed()) { if (this.properties[t] = e, this.events.isEnabled("propertychanged")) { var r = { type: "propertychanged", target: this, property: t }; this.events.dispatchImmediately("propertychanged", r); } if (i && this.invalidate(), n && this.invalidatePosition(), this.applyOnClones) for (var s = this.clones.values, o = s.length, a = 0; a < o; ++a) { var l = s[a]; l.isDisposed() || (l[t] = e); } return !0; } return !1; }, e.prototype.bind = function (t, e, i, n) { var r = this; void 0 === i && (i = t), S(this._bindings[t]) && this._bindings[t].dispose(), this[t] = e[i], this._bindings[t] = e.events.on("propertychanged", function (s) { if (s.property === i) { var o = e[i]; n && (o = n(o)), r[t] = o; } }); }, e.prototype.observe = function (t, e, i, n) { var r = this; return new gs(yt(Tt(t), function (t) { return r.events.on("propertychanged", function (n) { n.property === t && e.call(i, n); }, i, n); })); }, e.prototype.applyAccessibility = function () { var t = this.readerTitle, e = this.readerDescription, i = this.role, n = this.readerHidden, r = this.readerChecked, s = this.readerControls, o = this.readerLive, a = [], l = [], h = this.readerLabelledBy; h && a.push(h); var u = this.readerDescribedBy; if (u && l.push(u), !this.showSystemTooltip && t && (e = e ? t + " -- " + e : t, t = void 0), !t || e || this.showSystemTooltip) { if (t) { var p = this.titleElement, c = this.uid + "-title"; p.node.textContent != t && (p.node.textContent = t, p.attr({ id: c })), a.push(c); } else this._titleElement && (this.group.removeElement(this._titleElement), this._titleElement = void 0); var d = this.uid + "-description"; if (e) { var f = this.descriptionElement; f.node.textContent != e && (f.node.textContent = e, f.attr({ id: d })), l.push(d); } else this._descriptionElement && (this.group.removeElement(this._descriptionElement), this._descriptionElement = void 0, St(l, d)); } else this.setSVGAttribute({ "aria-label": t }), this.removeSVGAttribute("aria-description"), this._titleElement && (this.group.removeElement(this._titleElement), this._titleElement = void 0), this._descriptionElement && (this.group.removeElement(this._descriptionElement), this._descriptionElement = void 0); a.length ? this.setSVGAttribute({ "aria-labelledby": a.join(" ") }) : this.removeSVGAttribute("aria-labelledby"), l.length ? this.setSVGAttribute({ "aria-describedby": l.join(" ") }) : this.removeSVGAttribute("aria-describedby"), i ? this.setSVGAttribute({ role: i }) : this.removeSVGAttribute("role"), n ? this.setSVGAttribute({ "aria-hidden": "true" }) : this.removeSVGAttribute("aria-hidden"), r ? this.setSVGAttribute({ "aria-checked": "true" }) : !1 === r ? this.setSVGAttribute({ "aria-checked": "false" }) : this.removeSVGAttribute("aria-checked"), s ? this.setSVGAttribute({ "aria-controls": s }) : this.removeSVGAttribute("aria-controls"), o ? this.setSVGAttribute({ "aria-live": o }) : this.removeSVGAttribute("aria-live"); }, Object.defineProperty(e.prototype, "readerTitle", { get: function get() { var t = this.getPropertyValue("readerTitle"); return S(t) && this.dataItem ? this.populateString(t) : t; }, set: function set(t) { t = C(t), this.setPropertyValue("readerTitle", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "readerDescription", { get: function get() { return this.getPropertyValue("readerDescription"); }, set: function set(t) { t = C(t), this.setPropertyValue("readerDescription", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "role", { get: function get() { return this.getPropertyValue("role"); }, set: function set(t) { t = C(t), this.setPropertyValue("role", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "readerHidden", { get: function get() { return this.getPropertyValue("readerHidden"); }, set: function set(t) { t = P(t), this.setPropertyValue("readerHidden", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "readerChecked", { get: function get() { return this.getPropertyValue("readerChecked"); }, set: function set(t) { t = P(t), this.setPropertyValue("readerChecked", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "readerControls", { get: function get() { return this.getPropertyValue("readerControls"); }, set: function set(t) { t = C(t), this.setPropertyValue("readerControls", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "readerLive", { get: function get() { return this.getPropertyValue("readerLive"); }, set: function set(t) { t = C(t), this.setPropertyValue("readerLive", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "readerLabelledBy", { get: function get() { return this.getPropertyValue("readerLabelledBy"); }, set: function set(t) { t = C(t), this.setPropertyValue("readerLabelledBy", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "readerDescribedBy", { get: function get() { return this.getPropertyValue("readerDescribedBy"); }, set: function set(t) { t = C(t), this.setPropertyValue("readerDescribedBy", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "keyboardOptions", { get: function get() { if (!this.interactions.keyboardOptions) { if (this.virtualParent) return this.virtualParent.keyboardOptions; if (this.parent) return this.parent.keyboardOptions; } return this.interactions.keyboardOptions; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "mouseOptions", { get: function get() { if (!this.interactions.mouseOptions) { if (this.virtualParent) return this.virtualParent.mouseOptions; if (this.parent) return this.parent.mouseOptions; } return this.interactions.mouseOptions; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "interactions", { get: function get() { if (!this._interaction) { var t = pr().getInteraction(this.dom); this._interaction = t, this._interaction.clickable = this.clickable, this._interaction.hoverable = this.hoverable, this._interaction.trackable = this.trackable, this._interaction.draggable = this.draggable, this._interaction.swipeable = this.swipeable, this._interaction.resizable = this.resizable, this._interaction.wheelable = this.wheelable, this._interaction.contextMenuDisabled = this.contextMenuDisabled, this._interaction.inert = this.inert, this._interaction.sprite = this, this._disposers.push(this._interaction); } return this._interaction; }, enumerable: !0, configurable: !0 }), e.prototype.isInteractive = function () { return !!this._interaction; }, Object.defineProperty(e.prototype, "focusable", { get: function get() { return this.getPropertyValue("focusable"); }, set: function set(t) { var e = this; t = P(t), this.setPropertyValue("focusable", t) && (t || this.isInteractive()) && (this.interactions.focusable = t, t ? this.setSVGAttribute({ focusable: t }) : this.removeSVGAttribute("focusable"), this.interactions.setEventDisposer("sprite-focusable", t, function () { return new gs([e.events.on("blur", e.handleBlur, e, !1), e.events.on("focus", e.handleFocus, e, !1)]); })); }, enumerable: !0, configurable: !0 }), e.prototype.handleFocus = function (t) { this.focusable && (this.topParent && (this.topParent.hasFocused = !0), this.focusFilter && this.filters.push(this.focusFilter), this.hoverOnFocus && (this.isHover = !0, this.handleOver())); }, e.prototype.handleBlur = function (t) { this.focusable && (this.topParent && (this.topParent.hasFocused = !1), this.focusFilter && this.filters.removeValue(this.focusFilter), this.hoverOnFocus && (this.isHover = !1, this.handleOut())); }, Object.defineProperty(e.prototype, "focusFilter", { get: function get() { return this._focusFilter || (this.virtualParent ? this.virtualParent.focusFilter : this.parent ? this.parent.focusFilter : void 0); }, set: function set(t) { this._focusFilter = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hoverOnFocus", { get: function get() { return this.getPropertyValue("hoverOnFocus"); }, set: function set(t) { t !== this.hoverOnFocus && this.setPropertyValue("hoverOnFocus", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tabindex", { get: function get() { var t = this._tabindex; return null != t ? t : this.virtualParent ? this.virtualParent.tabindex : this.parent ? this.parent.tabindex : void 0; }, set: function set(t) { t = w(t), this.setPropertyValue("tabindex", t) && A(t) && (this.interactions.tabindex = t, this.setSVGAttribute({ tabindex: t }), this.focusable = t > -1 || void 0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "inertiaOptions", { get: function get() { return !this.interactions.inertiaOptions && this.parent ? this.parent.inertiaOptions : this.interactions.inertiaOptions; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "draggable", { get: function get() { return this.getPropertyValue("draggable"); }, set: function set(t) { var e = this; t = P(t), this.setPropertyValue("draggable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.draggable = t, this.interactions.setEventDisposer("sprite-draggable", t, function () { return new gs([e.events.on("down", e.handleDown, e, !1), e.events.on("dragstart", e.handleDragStart, e, !1), e.events.on("drag", e.handleDragMove, e, !1), e.events.on("dragstop", e.handleDragStop, e, !1)]); })); }, enumerable: !0, configurable: !0 }), e.prototype.handleDragStart = function (t) { this.interactions.isTouchProtected && t.touch || (this.interactions.originalPosition = { x: this.pixelX, y: this.pixelY }, this._isDragged = !0, this.hideTooltip(0)); }, e.prototype.dragStart = function (t) { this._isDragged = !0, pr().dragStart(this.interactions, t); }, e.prototype.handleDragStop = function (t) { this.interactions.isTouchProtected && t.touch || (this._isDragged = !1, this.showTooltip(), this.interactions.originalPosition = void 0); }, e.prototype.dragStop = function (t) { this._isDragged = !1, pr().dragStop(this.interactions, t); }, e.prototype.handleDragMove = function (t) { if (!this.interactions.isTouchProtected || !t.touch) { var e = this.interactions.originalPosition; if (e && this._isDragged) { var i = this.parent.globalScale * this.svgContainer.cssScale; this.moveTo({ x: e.x + t.shift.x / i, y: e.y + t.shift.y / i }, void 0, void 0, !0); } this.dispatchImmediately("dragged", t); } }, Object.defineProperty(e.prototype, "inert", { get: function get() { return this.getPropertyValue("inert"); }, set: function set(t) { t = P(t), this.setPropertyValue("inert", t) && (t || this.isInteractive()) && (this.interactions.inert = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hoverOptions", { get: function get() { if (!this.interactions.hoverOptions) { if (this.virtualParent) return this.virtualParent.hoverOptions; if (this.parent) return this.parent.hoverOptions; } return this.interactions.hoverOptions; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hoverable", { get: function get() { return this.getPropertyValue("hoverable"); }, set: function set(t) { var e = this; t = P(t), this.setPropertyValue("hoverable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.hoverable = t, this.interactions.setEventDisposer("sprite-hoverable", t, function () { return new gs([e.events.on("over", e.handleOver, e, !1), e.events.on("out", e.handleOut, e, !1)]); })); }, enumerable: !0, configurable: !0 }), e.prototype.handleOver = function (t) { if (this._outTimeout && this._outTimeout.dispose(), this.isHover) { this.states.hasKey("hover") && (this.isHidden || this.applyCurrentState()); var e = void 0; t && t.pointer && (e = Ui(t.pointer.point, this.svgContainer.SVGContainer, this.svgContainer.cssScale)), this.showTooltip(e); } else this.hideTooltip(), !this.isHidden && this.states.hasKey("hover") && this.applyCurrentState(); }, e.prototype.handleOut = function (t) { var e = this; this.tooltip && this.tooltip.targetSprite == this && this.tooltip.keepTargetHover ? this._outTimeout = this.setTimeout(function () { e.tooltip.isHover || (e.tooltip.targetSprite == e && e.hideTooltip(), e._outTimeout = e.setTimeout(e.handleOutReal.bind(e), e.rollOutDelay)); }, 10) : (this.hideTooltip(), this._outTimeout = this.setTimeout(this.handleOutReal.bind(this), this.rollOutDelay)); }, e.prototype.handleOutReal = function () { this.isHidden || this.isHiding || !this.states.hasKey("hover") || this.applyCurrentState(); }, Object.defineProperty(e.prototype, "hitOptions", { get: function get() { if (!this.interactions.hitOptions) { if (this.virtualParent) return this.virtualParent.hitOptions; if (this.parent) return this.parent.hitOptions; } return this.interactions.hitOptions; }, enumerable: !0, configurable: !0 }), e.prototype.handleDown = function (t) { 1 === this.interactions.downPointers.length && (this.interactions.originalPosition = { x: this.pixelX, y: this.pixelY }, this.interactions.originalAngle = this.rotation, this.interactions.originalScale = this.scale, this.states.hasKey("down") && this.setState("down")); }, e.prototype.handleUp = function (t) { this._isResized = !1, this.states.hasKey("down") && this.applyCurrentState(); }, Object.defineProperty(e.prototype, "clickable", { get: function get() { return this.getPropertyValue("clickable"); }, set: function set(t) { var e = this; t = P(t), this.setPropertyValue("clickable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.clickable = t, this.interactions.setEventDisposer("sprite-clickable", t, function () { return new gs([e.events.on("down", e.handleDown, e, !1), e.events.on("up", e.handleUp, e, !1)]); })); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "togglable", { get: function get() { return this.getPropertyValue("togglable"); }, set: function set(t) { var e = this; t = P(t), this.setPropertyValue("togglable", t) && (t || this.isInteractive()) && this.interactions.setEventDisposer("sprite-togglable", t, function () { return e.events.on("hit", e.handleToggle, e, !1); }); }, enumerable: !0, configurable: !0 }), e.prototype.handleToggle = function (t) { this.isActive = !this.isActive; }, Object.defineProperty(e.prototype, "contextMenuDisabled", { get: function get() { return this.getPropertyValue("contextMenuDisabled"); }, set: function set(t) { t = P(t), this.setPropertyValue("contextMenuDisabled", t) && (this.interactions.contextMenuDisabled = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "url", { get: function get() { return this.getPropertyValue("url"); }, set: function set(t) { this.setPropertyValue("url", t) && (this._urlDisposer && this._urlDisposer.dispose(), li(t) && (this._urlDisposer = this.events.on("hit", this.urlHandler, this, !1), this.clickable = !0, this.cursorOverStyle = sa.pointer)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "baseId", { get: function get() { return !this._baseId && this.parent && (this.baseId = this.parent.baseId), this._baseId; }, set: function set(t) { this.setBaseId(t); }, enumerable: !0, configurable: !0 }), e.prototype.setBaseId = function (t) { t != this._baseId && (this.invalid && (this.invalid = !1, Fs.removeFromInvalidSprites(this), this.invalidate()), this._baseId = t); }, Object.defineProperty(e.prototype, "baseSprite", { get: function get() { return this.isBaseSprite ? this : this.parent ? this.parent.baseSprite : void 0; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "urlTarget", { get: function get() { return this.getPropertyValue("urlTarget"); }, set: function set(t) { this.setPropertyValue("urlTarget", t); }, enumerable: !0, configurable: !0 }), e.prototype.urlHandler = function (t) { if (li(this.url)) { var e = this.populateString(this.url); "_self" === this.urlTarget ? window.location.href = e : window.open(e, this.urlTarget); } }, Object.defineProperty(e.prototype, "swipeOptions", { get: function get() { if (!this.interactions.swipeOptions) { if (this.virtualParent) return this.virtualParent.swipeOptions; if (this.parent) return this.parent.swipeOptions; } return this.interactions.swipeOptions; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "swipeable", { get: function get() { return this.getPropertyValue("swipeable"); }, set: function set(t) { t = P(t), this.setPropertyValue("swipeable", t) && (this.applyCursorStyle(), (t || this.isInteractive()) && (this.interactions.swipeable = t)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "trackable", { get: function get() { return this.getPropertyValue("trackable"); }, set: function set(t) { t = P(t), this.setPropertyValue("trackable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.trackable = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "wheelable", { get: function get() { return this.getPropertyValue("wheelable"); }, set: function set(t) { this.setPropertyValue("wheelable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.wheelable = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "resizable", { get: function get() { return this.getPropertyValue("resizable"); }, set: function set(t) { var e = this; t = P(t), this.setPropertyValue("resizable", t) && (t || this.isInteractive()) && (this.applyCursorStyle(), this.interactions.resizable = t, this.interactions.setEventDisposer("sprite-resizable", t, function () { return new gs([e.events.on("down", e.handleDown, e, !1), e.events.on("resize", e.handleResize, e, !1)]); })); }, enumerable: !0, configurable: !0 }), e.prototype.handleResize = function (t) { if ((!this.interactions.isTouchProtected || !t.touch) && (this._isResized = !0, this.scale = this.interactions.originalScale * t.scale, this.validatePosition(), this.draggable || this.dragWhileResize)) { this._isDragged = !1; var e = $(Ui(t.point1, this.htmlContainer, this.svgContainer.cssScale), Ui(t.point2, this.htmlContainer, this.svgContainer.cssScale)), i = Ki(t.startPoint1, this.parent), n = Ki(t.startPoint2, this.parent), r = this.interactions.originalPosition, s = this.interactions.originalScale; if (r) { var o = $({ x: (i.x - r.x) / s, y: (i.y - r.y) / s }, { x: (n.x - r.x) / s, y: (n.y - r.y) / s }), a = Hi(e, this.parent); this.moveTo({ x: a.x - o.x * this.scale, y: a.y - o.y * this.scale }, void 0, void 0, !0); } } }, Object.defineProperty(e.prototype, "cursorOptions", { get: function get() { if (!this.interactions.cursorOptions) { if (this.virtualParent) return this.virtualParent.cursorOptions; if (this.parent) return this.parent.cursorOptions; } return this.interactions.cursorOptions; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cursorOverStyle", { set: function set(t) { this.cursorOptions.overStyle || (this.interactions.cursorOptions = { defaultStyle: this.cursorOptions.defaultStyle }), this.cursorOptions.overStyle = t, pr().applyCursorOverStyle(this.interactions); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cursorDownStyle", { set: function set(t) { this.cursorOptions.downStyle = t; }, enumerable: !0, configurable: !0 }), e.prototype.applyCursorStyle = function () {}, Object.defineProperty(e.prototype, "interactionsEnabled", { get: function get() { return !1 !== this.getPropertyValue("interactionsEnabled") && (this.virtualParent ? this.virtualParent.interactionsEnabled : !this.parent || this.parent.interactionsEnabled); }, set: function set(t) { if (t = P(t), this.setPropertyValue("interactionsEnabled", t)) { var e = null; t ? this.group.node.style.pointerEvents = "" : e = "none", this.group.node.style.pointerEvents = e; } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "exporting", { get: function get() { return this.getExporting(); }, set: function set(t) { this._exporting.set(t, t); }, enumerable: !0, configurable: !0 }), e.prototype.getExporting = function () { var t = this._exporting.get(); return t || (!this.isStandaloneInstance && this.parent ? this.parent.exporting : ((t = new ma(this.svgContainer.SVGContainer)).sprite = this, t.language = this.language, t.numberFormatter = this.numberFormatter, t.dateFormatter = this.dateFormatter, t.durationFormatter = this.durationFormatter, this._exporting.set(t, t), t)); }, Object.defineProperty(e.prototype, "exportable", { get: function get() { return this._exportable; }, set: function set(t) { var e = this.svgContainer; this._exportable = t, e && (t ? St(e.nonExportableSprites, this) : -1 == ft(e.nonExportableSprites, this) && e.nonExportableSprites.push(this)); }, enumerable: !0, configurable: !0 }), e.prototype.modalPrefix = function (t) { return t = Ms.classNamePrefix + t; }, Object.defineProperty(e.prototype, "modal", { get: function get() { var t = this.svgContainer; if (t) { var e = t.modal; return e.adapter.has("classPrefix", this.modalPrefix) || e.adapter.add("classPrefix", this.modalPrefix), e; } }, enumerable: !0, configurable: !0 }), e.prototype.openModal = function (t, e) { var i = this.svgContainer; if (i) return i.openModal(t, e); }, e.prototype.closeModal = function () { var t = this.svgContainer; t && t.closeModal(); }, Object.defineProperty(e.prototype, "popups", { get: function get() { var t = this.svgContainer; if (t) { var e = t.popups; return e.template.sprite = this, e.template.adapter.has("classPrefix", this.modalPrefix) || e.template.adapter.add("classPrefix", this.modalPrefix), e; } }, enumerable: !0, configurable: !0 }), e.prototype.openPopup = function (t, e) { var i = this.svgContainer; if (i) return i.openPopup(t, e); }, e.prototype.closeAllPopups = function () { var t = this.svgContainer; t && t.closeAllPopups(); }, Object.defineProperty(e.prototype, "x", { get: function get() { return this.getPropertyValue("x"); }, set: function set(t) { this.isDragged || this.setPercentProperty("x", t, !1, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelX", { get: function get() { var t = R(this.getPixelX(this.x), this.minX, this.maxX); return this._adapterO ? this._adapterO.apply("pixelX", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativeX", { get: function get() { return this._adapterO ? this._adapterO.apply("relativeX", this.getRelativeX(this.x)) : this.getRelativeX(this.x); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "minX", { get: function get() { return this.getPropertyValue("minX"); }, set: function set(t) { A(t) && (t = j(t, this._positionPrecision, !0), this.setPropertyValue("minX", t, !1, !0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxX", { get: function get() { return this.getPropertyValue("maxX"); }, set: function set(t) { A(t) && (t = j(t, this._positionPrecision, !0), this.setPropertyValue("maxX", t, !1, !0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "y", { get: function get() { return this.getPropertyValue("y"); }, set: function set(t) { this.isDragged || this.setPercentProperty("y", t, !1, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelY", { get: function get() { var t = R(this.getPixelY(this.y), this.minY, this.maxY); return this._adapterO ? this._adapterO.apply("pixelY", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativeY", { get: function get() { return this._adapterO ? this._adapterO.apply("relativeY", this.getRelativeX(this.y)) : this.getRelativeX(this.y); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "minY", { get: function get() { return this.getPropertyValue("minY"); }, set: function set(t) { A(t) && (t = j(t, this._positionPrecision, !0), this.setPropertyValue("minY", t, !1, !0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxY", { get: function get() { return this.getPropertyValue("maxY"); }, set: function set(t) { A(t) && (t = j(t, this._positionPrecision, !0), this.setPropertyValue("maxY", t, !1, !0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dx", { get: function get() { return this.getPropertyValue("dx"); }, set: function set(t) { A(t) && (t = j(t, this._positionPrecision, !0), this.setPropertyValue("dx", t, !1, !0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dy", { get: function get() { return this.getPropertyValue("dy"); }, set: function set(t) { A(t) && (t = j(t, this._positionPrecision, !0), this.setPropertyValue("dy", t, !1, !0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "rotation", { get: function get() { return this.getPropertyValue("rotation"); }, set: function set(t) { A(t = w(t)) || (t = 0), this.setPropertyValue("rotation", t, !1, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "align", { get: function get() { return this.getPropertyValue("align"); }, set: function set(t) { t = C(t), this.setPropertyValue("align", t) && this.parent && this.parent.invalidateLayout(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "valign", { get: function get() { return this.getPropertyValue("valign"); }, set: function set(t) { t = C(t), this.setPropertyValue("valign", t) && this.parent && this.parent.invalidateLayout(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "horizontalCenter", { get: function get() { return this.getPropertyValue("horizontalCenter"); }, set: function set(t) { t = C(t), this.setPropertyValue("horizontalCenter", t) && this.updateCenter(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "verticalCenter", { get: function get() { return this.getPropertyValue("verticalCenter"); }, set: function set(t) { t = C(t), this.setPropertyValue("verticalCenter", t) && this.updateCenter(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxWidth", { get: function get() { var t = this.getPropertyValue("maxWidth"); return !A(t) && this.parent ? this.parent.maxWidth : t; }, set: function set(t) { this.setMaxWidth(t); }, enumerable: !0, configurable: !0 }), e.prototype.setMaxWidth = function (t) { var e = this.maxWidth, i = this.maxHeight; if (this.setPropertyValue("maxWidth", t)) { A(this.relativeWidth) && this.invalidate(); var n = { type: "maxsizechanged", target: this, previousWidth: e, previousHeight: i }; this.dispatchImmediately("maxsizechanged", n); } }, Object.defineProperty(e.prototype, "maxHeight", { get: function get() { var t = this.getPropertyValue("maxHeight"); return !A(t) && this.parent ? this.parent.maxHeight : t; }, set: function set(t) { this.setMaxHeight(t); }, enumerable: !0, configurable: !0 }), e.prototype.setMaxHeight = function (t) { var e = this.maxWidth, i = this.maxHeight; if (this.setPropertyValue("maxHeight", t)) { A(this.relativeHeight) && this.invalidate(); var n = { type: "maxsizechanged", target: this, previousWidth: e, previousHeight: i }; this.dispatchImmediately("maxsizechanged", n); } }, Object.defineProperty(e.prototype, "minWidth", { get: function get() { return this.getPropertyValue("minWidth"); }, set: function set(t) { this.setPropertyValue("minWidth", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "minHeight", { get: function get() { return this.getPropertyValue("minHeight"); }, set: function set(t) { this.setPropertyValue("minHeight", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "width", { get: function get() { return this.getPropertyValue("width"); }, set: function set(t) { this.setPercentProperty("width", t, !0, !1, this._positionPrecision, !0) && (this.percentWidth = void 0, this.relativeWidth = void 0, t instanceof hs ? (this.percentWidth = t.percent, A(this._pixelWidth) && (this.maxWidth = void 0), this._pixelWidth = void 0) : (this._pixelWidth = Number(t), this.maxWidth = this._pixelWidth), this.invalidatePosition()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "height", { get: function get() { return this.getPropertyValue("height"); }, set: function set(t) { this.setPercentProperty("height", t, !0, !1, this._positionPrecision, !0) && (this.percentHeight = void 0, this._relativeHeight = void 0, t instanceof hs ? (this.percentHeight = t.percent, A(this._pixelHeight) && (this.maxHeight = void 0), this._pixelHeight = void 0) : (this._pixelHeight = Number(t), this.maxHeight = this._pixelHeight), this.invalidatePosition()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelWidth", { get: function get() { var t; t = A(this.percentWidth) ? this.maxWidth : A(this._pixelWidth) ? this._pixelWidth : 0; var e = this.minWidth; null != e && t < e && (t = e); var i = j(t, this._positionPrecision, !0); return this._adapterO ? this._adapterO.apply("pixelWidth", i) : i; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelHeight", { get: function get() { var t; t = A(this.percentHeight) ? this.maxHeight : A(this._pixelHeight) ? this._pixelHeight : 0; var e = this.minHeight; null != e && t < e && (t = e); var i = j(t, this._positionPrecision, !0); return this._adapterO ? this._adapterO.apply("pixelHeight", i) : i; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativeWidth", { get: function get() { var t = this._relativeWidth; if (A(t)) return this._adapterO ? this._adapterO.apply("relativeWidth", t) : t; }, set: function set(t) { this._relativeWidth != t && (this._relativeWidth = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativeHeight", { get: function get() { var t = this._relativeHeight; if (A(t)) return this._adapterO ? this._adapterO.apply("relativeHeight", t) : t; }, set: function set(t) { this._relativeHeight != t && (this._relativeHeight = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "measuredWidth", { get: function get() { return this.disabled || this.__disabled ? 0 : this._adapterO ? this._adapterO.apply("measuredWidth", this._measuredWidth) : this._measuredWidth; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "measuredHeight", { get: function get() { return this.disabled || this.__disabled ? 0 : this._adapterO ? this._adapterO.apply("measuredHeight", this._measuredHeight) : this._measuredHeight; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "outerWidth", { get: function get() { var t = this.pixelWidth + this.pixelMarginRight + this.pixelMarginLeft; return this._adapterO ? this._adapterO.apply("outerWidth", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "outerHeight", { get: function get() { var t = this.pixelHeight + this.pixelMarginTop + this.pixelMarginBottom; return this._adapterO ? this._adapterO.apply("outerHeight", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerWidth", { get: function get() { var t = Math.max(0, this.pixelWidth - this.pixelPaddingRight - this.pixelPaddingLeft); return this._adapterO ? this._adapterO.apply("innerWidth", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerHeight", { get: function get() { var t = Math.max(0, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom); return this._adapterO ? this._adapterO.apply("innerHeight", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "globalScale", { get: function get() { var t = this.scale; return this.parent && (t *= this.parent.globalScale), this._adapterO ? this._adapterO.apply("globalScale", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "scale", { get: function get() { return this.getPropertyValue("scale"); }, set: function set(t) { (t = w(t)) < 0 && (t = 0), t != this.getPropertyValue("scale") && (this.setPropertyValue("scale", t, !1, !0), this.handleGlobalScale()); }, enumerable: !0, configurable: !0 }), e.prototype.margin = function (t, e, i, n) { return this.marginTop = t, this.marginRight = e, this.marginBottom = i, this.marginLeft = n, this; }, Object.defineProperty(e.prototype, "marginLeft", { get: function get() { return this.getPropertyValue("marginLeft"); }, set: function set(t) { this.setPercentProperty("marginLeft", t, !0, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "marginRight", { get: function get() { return this.getPropertyValue("marginRight"); }, set: function set(t) { this.setPercentProperty("marginRight", t, !0, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "marginTop", { get: function get() { return this.getPropertyValue("marginTop"); }, set: function set(t) { this.setPercentProperty("marginTop", t, !0, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "marginBottom", { get: function get() { return this.getPropertyValue("marginBottom"); }, set: function set(t) { this.setPercentProperty("marginBottom", t, !0, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelMarginRight", { get: function get() { var t = this.getPixelX(this.marginRight); return this._adapterO ? this._adapterO.apply("pixelMarginRight", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativeMarginRight", { get: function get() { var t = this.getRelativeX(this.marginRight); return this._adapterO ? this._adapterO.apply("relativeMarginRight", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelMarginLeft", { get: function get() { var t = this.getPixelX(this.marginLeft); return this._adapterO ? this._adapterO.apply("pixelMarginLeft", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativeMarginLeft", { get: function get() { var t = this.getRelativeX(this.marginLeft); return this._adapterO ? this._adapterO.apply("relativeMarginLeft", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelMarginTop", { get: function get() { var t = this.getPixelY(this.marginTop); return this._adapterO ? this._adapterO.apply("pixelMarginTop", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativeMarginTop", { get: function get() { var t = this.getRelativeY(this.marginTop); return this._adapterO ? this._adapterO.apply("relativeMarginTop", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelMarginBottom", { get: function get() { var t = this.getPixelY(this.marginBottom); return this._adapterO ? this._adapterO.apply("pixelMarginBottom", t) : t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativeMarginBottom", { get: function get() { var t = this.getRelativeY(this.marginBottom); return this._adapterO ? this._adapterO.apply("relativeMarginBottom", t) : t; }, enumerable: !0, configurable: !0 }), e.prototype.padding = function (t, e, i, n) { return this.paddingTop = t, this.paddingRight = e, this.paddingBottom = i, this.paddingLeft = n, this; }, Object.defineProperty(e.prototype, "paddingLeft", { get: function get() { return this.getPropertyValue("paddingLeft"); }, set: function set(t) { this.setPercentProperty("paddingLeft", t, !0, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "paddingRight", { get: function get() { return this.getPropertyValue("paddingRight"); }, set: function set(t) { this.setPercentProperty("paddingRight", t, !0, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "paddingTop", { get: function get() { return this.getPropertyValue("paddingTop"); }, set: function set(t) { this.setPercentProperty("paddingTop", t, !0, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "paddingBottom", { get: function get() { return this.getPropertyValue("paddingBottom"); }, set: function set(t) { this.setPercentProperty("paddingBottom", t, !0, !0, this._positionPrecision, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelPaddingRight", { get: function get() { return this.getPixelX(this.paddingRight); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativePaddingRight", { get: function get() { return this.getRelativeX(this.paddingRight); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelPaddingLeft", { get: function get() { return this.getPixelX(this.paddingLeft); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativePaddingLeft", { get: function get() { return this.getRelativeX(this.paddingLeft); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelPaddingTop", { get: function get() { return this.getPixelY(this.paddingTop); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativePaddingTop", { get: function get() { return this.getRelativeY(this.paddingTop); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelPaddingBottom", { get: function get() { return this.getPixelY(this.paddingBottom); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "relativePaddingBottom", { get: function get() { return this.getRelativeY(this.paddingBottom); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "path", { get: function get() { return this.getPropertyValue("path"); }, set: function set(t) { this.setPath(t); }, enumerable: !0, configurable: !0 }), e.prototype.setPath = function (t) { return !!this.setPropertyValue("path", t) && (this._isPath || (this.element && (!this.element.node || this.element.node instanceof SVGPathElement) || (this.element = this.paper.add("path")), this._isPath = !0), this.element.attr({ d: t }), this.invalidatePosition(), this.inited || this.events.once("inited", this.validatePosition, this, !1), !0); }, Object.defineProperty(e.prototype, "fillModifier", { get: function get() { return this.getPropertyValue("fillModifier"); }, set: function set(t) { this.setPropertyValue("fillModifier", t) && this.setFill(this.fill); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "strokeModifier", { get: function get() { return this.getPropertyValue("strokeModifier"); }, set: function set(t) { this.setPropertyValue("strokeModifier", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fillOpacity", { get: function get() { return this.getPropertyValue("fillOpacity"); }, set: function set(t) { t = M(t, 0, 1), this.setPropertyValue("fillOpacity", t) && this.setSVGAttribute({ "fill-opacity": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fill", { get: function get() { return this.getPropertyValue("fill"); }, set: function set(t) { this.setFill(t); }, enumerable: !0, configurable: !0 }), e.prototype.setFill = function (t) { if (V(t) || (t = ei(t)), this.setColorProperty("fill", t) || this.fillModifier) if (t instanceof qs && this.fillModifier && (t = this.fillModifier.modify(t)), this.realFill = t, t instanceof qs) this.setSVGAttribute({ fill: t.toString() });else if (S(t)) { if (t instanceof ea || t instanceof ia || t instanceof na) { var e = t; e.paper = this.paper, this.setSVGAttribute({ fill: 'url("' + si() + e.id + '")' }); } } else this.removeSVGAttribute("fill"); }, Object.defineProperty(e.prototype, "opacity", { get: function get() { return this.getPropertyValue("opacity"); }, set: function set(t) { t = M(t, 0, 1), this.setPropertyValue("opacity", t) && this.setSVGAttribute({ opacity: t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "stroke", { get: function get() { return this.getPropertyValue("stroke"); }, set: function set(t) { this.setStroke(t); }, enumerable: !0, configurable: !0 }), e.prototype.setStroke = function (t) { if (V(t) || (t = ei(t)), this.setColorProperty("stroke", t) || this.strokeModifier) if (t instanceof qs && this.strokeModifier && (t = this.strokeModifier.modify(t)), this.realStroke = t, t instanceof qs) "none" == t.hex ? this.removeSVGAttribute("stroke") : this.setSVGAttribute({ stroke: t.toString() });else if (S(t)) { if (t instanceof ea || t instanceof ia || t instanceof na) { var e = t; e.paper = this.paper, this.setSVGAttribute({ stroke: 'url("' + si() + e.id + '")' }); } } else this.removeSVGAttribute("stroke"); }, Object.defineProperty(e.prototype, "strokeOpacity", { get: function get() { return this.getPropertyValue("strokeOpacity"); }, set: function set(t) { t = M(t, 0, 1), this.setPropertyValue("strokeOpacity", t) && this.setSVGAttribute({ "stroke-opacity": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "nonScalingStroke", { get: function get() { return this.getPropertyValue("nonScalingStroke"); }, set: function set(t) { t = P(t), this.setPropertyValue("nonScalingStroke", t) && (this.strokeWidth = this.strokeWidth); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "nonScaling", { get: function get() { return this.getPropertyValue("nonScaling"); }, set: function set(t) { t = P(t), this.setPropertyValue("nonScaling", t, !1, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "strokeWidth", { get: function get() { return this.getPropertyValue("strokeWidth"); }, set: function set(t) { t = w(t), this.setPropertyValue("strokeWidth", t, !0), this.nonScalingStroke && (A(t) || (t = 1), t /= this.globalScale), this.setSVGAttribute({ "stroke-width": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "strokeDasharray", { get: function get() { return this.getPropertyValue("strokeDasharray"); }, set: function set(t) { t = C(t), this.setPropertyValue("strokeDasharray", t) && this.setSVGAttribute({ "stroke-dasharray": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "strokeDashoffset", { get: function get() { return this.getPropertyValue("strokeDashoffset"); }, set: function set(t) { t = w(t), this.setPropertyValue("strokeDashoffset", t) && this.setSVGAttribute({ "stroke-dashoffset": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "strokeLinecap", { get: function get() { return this.getPropertyValue("strokeLinecap"); }, set: function set(t) { this.setPropertyValue("strokeLinecap", t) && this.setSVGAttribute({ "stroke-linecap": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "strokeLinejoin", { get: function get() { return this.getPropertyValue("strokeLinejoin"); }, set: function set(t) { this.setPropertyValue("strokeLinejoin", t) && this.setSVGAttribute({ "stroke-linejoin": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "shapeRendering", { get: function get() { return this.getPropertyValue("shapeRendering"); }, set: function set(t) { t = C(t), this.setPropertyValue("shapeRendering", t) && this.setSVGAttribute({ "shape-rendering": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelPerfect", { get: function get() { return this.getPropertyValue("pixelPerfect"); }, set: function set(t) { t = P(t), this._positionPrecision = t ? 0 : 3, this.setPropertyValue("pixelPerfect", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "rtl", { get: function get() { return S(this._rtl) ? this._rtl : this.virtualParent ? this.virtualParent.rtl : !!this.parent && this.parent.rtl; }, set: function set(t) { t = P(t), this._rtl = t; }, enumerable: !0, configurable: !0 }), e.prototype.show = function (t) { return this.showReal(t); }, e.prototype.showReal = function (t) { var e, i = this, n = this.defaultState.properties; if (!this.disabled && (this.isHidden || !this.visible || this.isHiding || null != n.opacity && this.opacity < n.opacity && !this.isShowing) && !this.isDisposed()) { this.invalid && this.validate(), this.positionInvalid && this.validatePosition(), A(t) || (t = this.defaultState.transitionDuration), this._hideAnimation && (this._hideAnimation.kill(), this._hideAnimation = void 0), this._showHideDisposer && this.removeDispose(this._showHideDisposer), this._isHidden = !1, this.isHiding = !1, this.isShowing = !0, (e = this.applyCurrentState(t)) && !e.isFinished() ? (this._showHideDisposer = e.events.on("animationended", function () { i.isShowing = !1; }), this._disposers.push(this._showHideDisposer)) : this.isShowing = !1; var r = this.defaultState.properties.visible; S(r) || (r = !0), this.visible = r, this.readerHidden = !1, this.dispatchImmediately("shown"); } return e; }, e.prototype.hide = function (t) { return this.hideReal(t); }, e.prototype.hideReal = function (t) { var e, i = this; if (!this.isHiding && this.visible && !this.isDisposed()) { this.hideTooltip(0), this._hideAnimation && (this._hideAnimation.kill(), this._hideAnimation = void 0), this.isShowing = !1, this._showHideDisposer && this.removeDispose(this._showHideDisposer); var n = this.hiddenState; n ? (e = this.setState(n, t, void 0)) && !e.isFinished() ? (this._hideAnimation = e, this._showHideDisposer = e.events.on("animationended", function () { i.isHiding = !1, i._isHidden = !0; }, this), this._disposers.push(this._showHideDisposer), this._disposers.push(e)) : (this.isHiding = !1, this._isHidden = !0) : (this.visible = !1, this.isHiding = !1, this._isHidden = !0), this.readerHidden = !0, this.dispatchImmediately("hidden"), this.invalidate(); } return A(t) || (t = this.hiddenState.transitionDuration), e; }, Object.defineProperty(e.prototype, "visible", { get: function get() { return this.getVisibility(); }, set: function set(t) { t = P(t), this.setVisibility(t); }, enumerable: !0, configurable: !0 }), e.prototype.getVisibility = function () { var t = this.getPropertyValue("visible"); return S(t) || (t = !0), t; }, e.prototype.setVisibility = function (t) { if (this.setPropertyValue("visible", t) && (t ? this.group.removeAttr("visibility") : this.group.attr({ visibility: "hidden" }), this.events.isEnabled("visibilitychanged"))) { var e = { type: "visibilitychanged", target: this, visible: t }; this.events.dispatchImmediately("visibilitychanged", e); } }, Object.defineProperty(e.prototype, "zIndex", { get: function get() { return this.getPropertyValue("zIndex"); }, set: function set(t) { t = w(t), this.setPropertyValue("zIndex", t) && this.dispatch("zIndexChanged"); }, enumerable: !0, configurable: !0 }), e.prototype.toFront = function () { var t = this.parent; t && t.children.indexOf(this) != t.children.length - 1 && (t.children.moveValue(this, t.children.length - 1), this.dispatch("zIndexChanged")); }, e.prototype.toBack = function () { var t = this.parent; t && 0 != t.children.indexOf(this) && (t.children.moveValue(this, 0), this.dispatch("zIndexChanged")); }, Object.defineProperty(e.prototype, "tooltip", { get: function get() { return this._tooltip ? this._tooltip : this.virtualParent ? this.virtualParent.tooltip : this.parent ? this.parent.tooltip : void 0; }, set: function set(t) { this._tooltip && this.removeDispose(this._tooltip), this._tooltip = t, t && (t.parent = this.tooltipContainer); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipDataItem", { get: function get() { return this._tooltipDataItem || this.dataItem; }, set: function set(t) { this._tooltipDataItem = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipColorSource", { get: function get() { return this._tooltipColorSource; }, set: function set(t) { this._tooltipColorSource = t; }, enumerable: !0, configurable: !0 }), e.prototype.showTooltip = function (t) { this.alwaysShowTooltip && !this._tooltip && this.tooltip && (this._tooltip = this.tooltip.clone()); for (var e = this; null != e;) { if (!e.visible || e.disabled || e.__disabled) return void (this._tooltip && this._tooltip.visible && this._tooltip.hide(0)); e = e.parent; } if (S(this.tooltipText) || S(this.tooltipHTML)) { var i = this.tooltip, n = this.tooltipDataItem; if (i) { i.targetSprite = this; var r = this, s = this.tooltipColorSource; if ((i.getStrokeFromObject || i.getFillFromObject) && s && (s.isTemplate ? n && bt(n.sprites, function (t) { return t.clonedFrom != s || (r = t, !1); }) : r = s), i.getStrokeFromObject) { for (var o = this.stroke, a = r; null != a.parent && (null == (o = a.stroke) && (a = a.parent), null == o);); o instanceof qs ? i.background.animate({ property: "stroke", to: o }, i.animationDuration) : i.background.stroke = o; } if (i.dataItem = n, i.label.populateStringFrom = this, i.getFillFromObject) { var l = this.fill; for (a = r; null != a.parent;) if (null == (l = a.fill) || l instanceof qs && null == l.rgb) a = a.parent;else if (null != l) break; null == l && (l = Je("#000000")), l instanceof qs && i.visible ? i.background.animate({ property: "fill", to: l }, i.animationDuration) : i.background.fill = l, i.autoTextColor && l instanceof qs && (i.label.fill = l.alternative); } var h = ""; if (this.tooltipHTML && (i.html = this.tooltipHTML, h = this.tooltipHTML), this.tooltipText && (i.text = this.tooltipText, h = this.tooltipText), this.updateTooltipPosition(t)) { if (i.readerDescribedBy = this.uidAttr(), i.label.invalid && i.label.validate(), null != h && "" != h && "" != i.label.currentText) { i && !i.parent && (i.parent = this.tooltipContainer); var u = i.defaultState.transitionDuration; return u <= 0 && (u = 1), i.show(u), !0; } this.hideTooltip(0); } else this.hideTooltip(0); } } return !1; }, e.prototype.updateTooltipPosition = function (t) { var e = this; if ("pointer" != this.tooltipPosition) { var i = Wi({ x: this.tooltipX, y: this.tooltipY }, this); return this.pointTooltipTo(i); } if (this._interactionDisposer && this._interactionDisposer.dispose(), this._interactionDisposer = pr().body.events.on("track", function (t) { return e.pointTooltipTo(Ui(t.point, e.svgContainer.SVGContainer, e.svgContainer.cssScale), !0); }), t) return this.pointTooltipTo(t, !0); }, e.prototype.pointTooltipTo = function (t, e) { var i = this.tooltip; if (i && this.topParent) { if (i.showInViewport) return i.pointTo(t, e), !0; if (ct(t, { x: 0, y: 0, width: this.topParent.maxWidth, height: this.topParent.maxHeight })) return i.pointTo(t, e), !0; } return !1; }, e.prototype.hideTooltip = function (t) { if (!this.alwaysShowTooltip) { var e = this.tooltip; e && (e.targetSprite == this && (e.targetSprite = void 0), e.hide(t), this._interactionDisposer && (this._interactionDisposer.dispose(), this._interactionDisposer = void 0)); } }, Object.defineProperty(e.prototype, "tooltipHTML", { get: function get() { return this.getPropertyValue("tooltipHTML"); }, set: function set(t) { t = C(t), this.hoverable = !0, this.setPropertyValue("tooltipHTML", t) && this.tooltip && this.tooltip.visible && this.showTooltip(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipText", { get: function get() { return this.getPropertyValue("tooltipText"); }, set: function set(t) { (t = C(t)) && (this.hoverable = !0), this.setPropertyValue("tooltipText", t) && this.tooltip && this.tooltip.visible && this.showTooltip(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipContainer", { get: function get() { return this._tooltipContainer ? this._tooltipContainer : this.parent ? this.parent.tooltipContainer : void 0; }, set: function set(t) { this._tooltipContainer = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipX", { get: function get() { return this.getTooltipX(); }, set: function set(t) { t = w(t), this.setPropertyValue("tooltipX", t) && this.tooltip && this.tooltip.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "alwaysShowTooltip", { get: function get() { return this.getPropertyValue("alwaysShowTooltip"); }, set: function set(t) { t = P(t), this.setPropertyValue("alwaysShowTooltip", t) && this.tooltip && (t && this.showTooltip(), this.handleAlwaysShowTooltip()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipPosition", { get: function get() { return this.getPropertyValue("tooltipPosition"); }, set: function set(t) { this.setPropertyValue("tooltipPosition", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipY", { get: function get() { return this.getTooltipY(); }, set: function set(t) { t = w(t), this.setPropertyValue("tooltipY", t) && this.tooltip && this.tooltip.invalidate(); }, enumerable: !0, configurable: !0 }), e.prototype.getTooltipX = function () { var t = this.getPropertyValue("tooltipX"); return A(t) || (t = this.maxLeft + this.measuredWidth / 2 - this.pixelPaddingLeft - this.ex), t; }, e.prototype.getTooltipY = function () { var t = this.getPropertyValue("tooltipY"); return A(t) || (t = this.maxTop + this.measuredHeight / 2 - this.pixelPaddingTop - this.ey), t; }, e.prototype.raiseCriticalError = function (t) { this.svgContainer && (this._adapterO ? this.modal.content = this._adapterO.apply("criticalError", t).message : this.modal.content = t.message, this.modal.closable = !1, this.modal.open(), this.disabled = !0), Ms.verbose && console.log(t); }, e.prototype.processConfig = function (e) { e && (S(e.tooltipColorSource) && T(e.tooltipColorSource) && this.map.hasKey(e.tooltipColorSource) && (e.tooltipColorSource = this.map.getKey(e.tooltipColorSource)), S(e.cursorOverStyle) && T(e.cursorOverStyle) && (e.cursorOverStyle = this.getCursorStyle(e.cursorOverStyle)), S(e.cursorDowntyle) && T(e.cursorDowntyle) && (e.cursorDowntyle = this.getCursorStyle(e.cursorDowntyle)), S(e.cursorOptions) && (S(e.cursorOptions.overStyle) && T(e.cursorOptions.overStyle) && (e.cursorOptions.overStyle = this.getCursorStyle(e.cursorOptions.overStyle)), S(e.cursorOptions.downStyle) && T(e.cursorOptions.downStyle) && (e.cursorOptions.downStyle = this.getCursorStyle(e.cursorOptions.downStyle)))), t.prototype.processConfig.call(this, e); }, e.prototype.getCursorStyle = function (t) { switch (t) { case "grab": return sa.grab; case "grabbing": return sa.grabbing; case "pointer": return sa.pointer; case "horizontalResize": return sa.horizontalResize; case "verticalResize": return sa.verticalResize; default: return sa["default"]; } }, e.prototype.configOrder = function (e, i) { return e == i ? 0 : "tooltipColorSource" == e ? 1 : "tooltipColorSource" == i ? -1 : t.prototype.configOrder.call(this, e, i); }, Object.defineProperty(e.prototype, "isHidden", { get: function get() { return this._isHidden ? this._isHidden : !!this._parent && this._parent.isHidden; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "showOnInit", { get: function get() { return this.getPropertyValue("showOnInit"); }, set: function set(t) { t = P(t), this.setShowOnInit(t); }, enumerable: !0, configurable: !0 }), e.prototype.setShowOnInit = function (t) { this.setPropertyValue("showOnInit", t) && (this.isTemplate || (!t || this.inited || this.hidden ? this._showOnInitDisposer && this._showOnInitDisposer.dispose() : (this._showOnInitDisposer = new gs([Fs.events.once("enterframe", this.hideInitially, this), this.events.once("beforevalidated", this.hideInitially, this, !1), this.events.on("inited", this.appear, this, !1)]), this._disposers.push(this._showOnInitDisposer)))); }, e.prototype.hideInitially = function () { this.isDisposed() || (this.appeared = !1, this.inited || this.hide(0)); }, e.prototype.appear = function () { var t = this; if (this.appeared = !1, this.hidden || this.isHidden || this.hide(0), this.hidden) this.appeared = !0, this.dispatch("appeared");else { var e = this.show(); e && !e.isFinished() ? e.events.on("animationended", function () { t.appeared = !0, t.dispatch("appeared"); }) : (this.appeared = !0, this.dispatch("appeared")); } }, Object.defineProperty(e.prototype, "hidden", { get: function get() { return this.getPropertyValue("hidden"); }, set: function set(t) { t = P(t), this.setPropertyValue("hidden", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bbox", { get: function get() { return this.definedBBox ? this.definedBBox : this._bbox; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "plugins", { get: function get() { var t = this; return this._plugins || (this._plugins = new Ns(), this._disposers.push(this._plugins.events.on("inserted", function (e) { e.newValue.target = t, e.newValue.init(); })), this._disposers.push(new Bs(this._plugins))), this._plugins; }, enumerable: !0, configurable: !0 }), e.prototype._systemUpdate = function (t) { this.validate(); }, e.prototype._systemCheckIfValidate = function () { return !0; }, e.prototype._systemValidatePositions = function () { this.validatePosition(); }, e.prototype._systemValidateLayouts = function () {}, e; }(Js); Fs.registeredClasses.Sprite = ba; var xa = function (t) { function e() { var e = t.call(this) || this; return e.className = "Rectangle", e.element = e.paper.add("rect"), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this._positionPrecision; this.pixelPerfect && (e = 0); var i = j(this.innerWidth, e), n = j(this.innerHeight, e); this.element.attr({ width: i, height: n }); }, e.prototype.measureElement = function () {}, Object.defineProperty(e.prototype, "bbox", { get: function get() { return this.definedBBox ? this.definedBBox : this.isMeasured ? { x: 0, y: 0, width: this.innerWidth, height: this.innerHeight } : { x: 0, y: 0, width: 0, height: 0 }; }, enumerable: !0, configurable: !0 }), e; }(ba); Fs.registeredClasses.Rectangle = xa; var _a = function (t) { function e() { var e = t.call(this) || this; return e._childrenByLayout = [], e._childrenDisposers = new Ds(), e.hasFocused = !1, e.setStateOnSprites = [], e.layoutInvalid = !1, e._absoluteWidth = 0, e._absoluteHeight = 0, e._shouldBeReady = [], e._tapToActivate = !1, e.tapTimeout = 3e3, e.className = "Container", e._element = e.paper.addGroup("g"), e.group.add(e.element), e.setPropertyValue("pixelPerfect", !1), e.setPropertyValue("layout", "absolute"), e.setPropertyValue("fixedWidthGrid", !1), e.setPropertyValue("verticalCenter", "none"), e.setPropertyValue("horizontalCenter", "none"), e._positionPrecision = 4, e._disposers.push(new Is(e._childrenDisposers)), e.children.events.on("inserted", e.handleChildAdded, e), e.children.events.on("removed", e.handleChildRemoved, e), e.applyTheme(), e; } return n(e, t), e.prototype.handleChildAdded = function (t) { this.processChild(t.newValue); }, e.prototype.processChild = function (t) { try { this._childrenDisposers.insertKey(t.uid, new gs([t.events.on("transformed", this.handleChildTransform, this), t.events.on("zIndexChanged", this.sortAndAdd, this)])); } catch (t) {} this.element && !t.disabled && this.element.add(t.group), t.parent = this, t.paper = this.paper, this.dispatchImmediately("childadded", { type: "childadded", newValue: t }), this.invalidate(); }, e.prototype.sortAndAdd = function () { this.sortChildren(), this.addChildren(); }, e.prototype.handleChildRemoved = function (t) { var e = t.oldValue; this._childrenDisposers.removeKey(e.uid), this.element && this.element.removeElement(e.group), e.isMeasured && this.invalidateLayout(), this.dispatchImmediately("childremoved", { type: "childremoved", oldValue: e }); }, e.prototype.handleChildTransform = function (t) { t.target.isMeasured && this.invalidateLayout(); }, e.prototype.invalidateLayout = function () { this.layoutInvalid || this.disabled || this.isTemplate || "none" == this.layout || this.__disabled || (this.layoutInvalid = !0, Fs.addToInvalidLayouts(this), Ls.requestFrame()); }, e.prototype.invalidate = function () { t.prototype.invalidate.call(this), this.invalidateLayout(); }, e.prototype.deepInvalidate = function () { t.prototype.invalidate.call(this), mt(this._childrenByLayout, function (t) { t instanceof e ? t.deepInvalidate() : t.invalidate(); }), this.invalidateLayout(); }, Object.defineProperty(e.prototype, "children", { get: function get() { return this._children || (this._children = new Ns()), this._children; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "minWidth", { get: function get() { return this.getPropertyValue("minWidth"); }, set: function set(t) { this.setPropertyValue("minWidth", t) && this.invalidateLayout(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "minHeight", { get: function get() { return this.getPropertyValue("minHeight"); }, set: function set(t) { this.setPropertyValue("minHeight", t) && this.invalidateLayout(); }, enumerable: !0, configurable: !0 }), e.prototype.removeElement = function () {}, e.prototype.sortChildren = function () { var t = this; if (this._childrenByLayout = [], "none" != this.layout && "absolute" != this.layout && this.layout) { var e = [], i = []; pe(this.children.iterator(), function (n) { "horizontal" == t.layout || "grid" == t.layout ? A(n.percentWidth) ? i.push(n) : e.push(n) : "vertical" == t.layout && A(n.percentHeight) ? i.push(n) : e.push(n); }), this._childrenByLayout = e.concat(i); } else this._childrenByLayout = this.children.values; this.calculateRelativeSize(); }, e.prototype.calculateRelativeSize = function () { var t = this, e = 0, i = 0; mt(this._childrenByLayout, function (t) { t.isMeasured && (A(t.percentWidth) && (e += t.percentWidth), A(t.percentHeight) && (i += t.percentHeight)); }), mt(this._childrenByLayout, function (n) { n.isMeasured && ("horizontal" == t.layout && (A(n.percentWidth) && (n.relativeWidth = n.percentWidth / e), A(n.percentHeight) && (n.relativeHeight = n.percentHeight / 100)), "vertical" == t.layout && (A(n.percentHeight) && (n.relativeHeight = n.percentHeight / i), A(n.percentWidth) && (n.relativeWidth = n.percentWidth / 100)), "grid" == t.layout && (A(n.percentHeight) && (n.relativeHeight = n.percentHeight / 100), A(n.percentWidth) && (n.relativeWidth = n.percentWidth / 100))), "absolute" != t.layout && n.isMeasured || (A(n.percentWidth) && (n.relativeWidth = n.percentWidth / 100), A(n.percentHeight) && (n.relativeHeight = n.percentHeight / 100)); }); }, e.prototype.addChildren = function () { if (this.element) { var t = Vt(this.children.values), e = t.map(function (t, e) { return { idx: e, data: t }; }); e.sort(function (t, e) { var i = t.data.zIndex || 0, n = e.data.zIndex || 0; return i < n ? -1 : i > n ? 1 : t.idx - e.idx; }), t = e.map(function (t) { return t.data; }); var i = this.element, n = !0; if (i.node && i.node.childNodes) for (var r = 0, s = i.node.childNodes.length; r < s; r++) if (i.node.childNodes[r] != t[r].group.node) { n = !1; break; } n || (mt(t, function (t) { t.group && i.add(t.group); }), this._background && this.group.addToBack(this._background.group), this.invalidateLayout()); } }, e.prototype.createChild = function (t) { var e = new t(); return e.parent = this, e; }, e.prototype.removeChildren = function () { for (; this.children.length > 0;) { var t = this.children.getIndex(0); t.parent = void 0, this.children.removeValue(t); } }, e.prototype.disposeChildren = function () { for (; this.children.length > 0;) { var t = this.children.getIndex(0); t.dispose(), this.children.removeValue(t); } }, Object.defineProperty(e.prototype, "background", { get: function get() { return this._background || (this._background = this.createBackground(), this.processBackground()), this._background; }, set: function set(t) { this._background && this.background != t && this.removeDispose(this._background), t && (this._background = t, this._disposers.push(t), this.processBackground()); }, enumerable: !0, configurable: !0 }), e.prototype.handleGlobalScale = function () { t.prototype.handleGlobalScale.call(this), this.children.each(function (t) { t.handleGlobalScale(); }); }, e.prototype.createBackground = function () { return new xa(); }, e.prototype.processBackground = function () { var t = this._background; t && (t.isMeasured = !1, this._background.fill = new ta().getFor("background"), t.parent = this, t.isMeasured = !1, this.children.removeValue(t), this._disposers.push(t), this.group.addToBack(this._background.group)); }, e.prototype.validateLayout = function () { var t = this; Fs.removeFromInvalidLayouts(this), this.layoutInvalid = !1, this._availableWidth = this.innerWidth, this._availableHeight = this.innerHeight; var e = 0, i = 0, n = !0; this.children && (this.sortChildren(), mt(this._childrenByLayout, function (r) { var s, o; if (A(r.relativeWidth) ? (s = j(t._availableWidth * r.relativeWidth, 2), "horizontal" == t.layout && (s -= r.pixelMarginRight + r.pixelMarginLeft)) : "horizontal" == t.layout && r.invalid && r.validate(), A(r.relativeHeight) ? (o = j(t._availableHeight * r.relativeHeight, 2), "vertical" == t.layout && (o -= r.pixelMarginTop + r.pixelMarginBottom)) : "vertical" == t.layout && r.invalid && r.validate(), 0 == r.invalid) { if (A(r.relativeWidth) && (r.maxWidth = s), A(r.relativeHeight) && (r.maxHeight = o), r.isMeasured) { "horizontal" == t.layout && (A(r.percentWidth) || r.measuredWidth > 0 && (t._availableWidth -= r.measuredWidth + r.pixelMarginLeft + r.pixelMarginRight)), "vertical" == t.layout && (A(r.percentHeight) || r.measuredHeight > 0 && (t._availableHeight -= r.measuredHeight + r.pixelMarginTop + r.pixelMarginBottom)); var a = r.measuredWidth, l = r.measuredHeight; "none" != r.align && (a += r.pixelMarginLeft + r.pixelMarginRight), "none" != r.valign && (l += r.pixelMarginTop + r.pixelMarginBottom), e = Math.max(e, a), i = Math.max(i, l); } } else r.isMeasured && (A(r.relativeWidth) && r.maxWidth != s && (r.maxWidth = s, n = !1), A(r.relativeHeight) && r.maxHeight != o && (r.maxHeight = o, n = !1)); })), this._absoluteWidth = e, this._absoluteHeight = i, n && this.arrange(); }, e.prototype.arrange = function () { var t, e, i, n, r, s, o, a, l, h, u, p = this, c = this.children, d = 0, f = 0, g = W(this.innerWidth, this._absoluteWidth), y = W(this.innerHeight, this._absoluteHeight), m = this.pixelPaddingLeft, v = this.pixelPaddingRight, b = this.pixelPaddingTop, x = this.pixelPaddingBottom, _ = 0, P = 0, w = 0, C = 0, O = [], S = [], I = this.maxWidth, D = this.maxHeight, k = this.minWidth, T = this.minHeight, V = Vt(c.values); if (this.reverseOrder && V.reverse(), "grid" == this.layout) { s = I, r = 1; for (var F = 0, M = V.length; F < M; F++) if ((L = V[F]).isMeasured && !L.disabled && !L.__disabled) { var j = L.measuredWidth; j < s && (s = j), j > r && (r = j); } s = R(s, 1, I), r = R(r, 1, I), o = this.fixedWidthGrid ? I / r : I / s, o = W(1, Math.floor(o)), o = X(this.maxColumns, o), O = this.getColumnWidth(V, o, r); } for (F = 0, M = V.length; F < M; F++) { var L; if (!(L = V[F]).isMeasured || L.disabled || L.__disabled) L.validatePosition();else { var E = void 0, B = void 0, N = L.pixelMarginLeft, H = L.pixelMarginRight, Y = L.pixelMarginTop, z = L.pixelMarginBottom, U = L.measuredWidth, G = L.measuredHeight, K = void 0, Z = void 0, q = void 0, $ = void 0; switch (this.layout) { case "none": break; case "absolute": switch (L.align) { case "left": E = N - L.maxLeft; break; case "center": E = (g - U) / 2 - L.maxLeft; break; case "right": E = g - H - L.maxRight; break; default: L.x instanceof hs || (E = L.pixelX); } switch (L.valign) { case "top": B = Y - L.maxTop; break; case "middle": B = (y - G) / 2 - L.maxTop; break; case "bottom": B = y - z - L.maxBottom; break; default: L.y instanceof hs || (B = L.pixelY); } break; case "vertical": switch (L.align) { case "left": E = N - L.maxLeft; break; case "center": E = (g - U) / 2 - L.maxLeft; break; case "right": E = g - H - L.maxRight; break; default: E = L.pixelX; } P = (B = P + Y - L.maxTop) + L.maxBottom + z; break; case "horizontal": switch (L.valign) { case "top": B = Y - L.maxTop; break; case "middle": B = (y - G) / 2 - L.maxTop; break; case "bottom": B = y - z - L.maxBottom; break; default: B = L.pixelY; } _ = (E = _ + N - L.maxLeft) + L.maxRight + H; break; case "grid": switch (E = _ + N - L.maxLeft, L.valign) { case "top": B = P + Y - L.maxTop; break; case "middle": B = P + (y - G) / 2 - L.maxTop; break; case "bottom": B = P + y - z - L.maxBottom; break; default: B = P - L.maxTop; } _ += O[C], S[w] = W(S[w], G); var J = O[++C]; if (A(J) || (J = r), _ > X(this.innerWidth, I) - J + 1 && C < o) { o = C, _ = 0, P = 0, w = 0, C = 0, O = this.getColumnWidth(V, o, r), S = [], F = -1; continue; } C >= o && (C = 0, P += S[w], w++, _ = 0); } "none" !== this.layout && (L.moveTo({ x: E, y: B }), K = E + L.maxLeft - N, Z = E + L.maxRight + H, q = B + L.maxTop - Y, $ = B + L.maxBottom + z, (Z > e || !A(e)) && (e = Z), (K < t || !A(t)) && (t = K), (q < i || !A(i)) && (i = q), ($ > n || !A(n)) && (n = $), (Z > l || !A(l)) && (l = Z), (K < a || !A(a)) && (a = K), (q < h || !A(h)) && (h = q), ($ > u || !A(u)) && (u = u)); } } if ("none" == this.layout) { var Q = this.bbox; t = Q.x, e = Q.x + Q.width, i = Q.y, n = Q.y + Q.height; } A(t) || (t = 0, a = 0), A(e) || (l = e = this._availableWidth), A(i) || (i = 0, h = 0), A(n) || (u = n = this._availableHeight), A(h) || (h = 0), A(u) || (u = h), A(a) || (a = 0), A(l) || (l = a), d = e - t, f = n - i, A(this.relativeWidth) && (t = 0, e = d = I - m - v), A(this.relativeHeight) && (i = 0, n = f = D - b - x), A(this._pixelWidth) && (t = 0, d = this._pixelWidth - m - v), A(k) && d < k && (t = 0, d = this.minWidth - m - v), A(this._pixelHeight) && (i = 0, f = this._pixelHeight - b - x), A(T) && f < T && (i = 0, f = T - b - x); var tt = l - a, et = u - h; if ("none" != this.layout && (this.contentAlign || this.contentValign) && c.length > 0) { var it, nt, rt = d, st = f; rt < tt && (rt = tt), st < et && (st = et), "center" == this.contentAlign && (it = (rt - tt) / 2), "right" == this.contentAlign && (it = rt - tt), "middle" == this.contentValign && (nt = (st - et) / 2), "bottom" == this.contentValign && (nt = st - et), A(it) && pe(c.iterator(), function (t) { var e = t.maxLeft, i = it; "horizontal" == p.layout && (t.x = t.pixelX + i), "grid" == p.layout && (t.x = t.pixelX + i), "vertical" == p.layout && (i += t.pixelMarginLeft, "none" == t.align && (t.x = i - e)), "absolute" == p.layout && (i += t.pixelMarginLeft, "none" == t.align && (t.x = i - e)); }), A(nt) && pe(c.iterator(), function (t) { var e = t.maxTop, i = nt; "horizontal" == p.layout && (i += t.pixelMarginTop, "none" == t.valign && (t.y = i - e)), "grid" == p.layout && (i += t.pixelMarginTop, t.y = i - e), "vertical" == p.layout && (t.y = t.pixelY + i), "absolute" == p.layout && (i += t.pixelMarginTop, "none" == t.valign && (t.y = i - e)); }); } var ot = this.bbox; d = W(d, k), f = W(f, T), this.contentWidth = d, this.contentHeight = f, d = X(d, I), f = X(f, D), this._bbox = { x: t, y: i, width: d, height: f }; var at = this.maxLeft, lt = this.maxTop, ht = this.maxBottom, ut = this.maxRight; if (this.measure(), (at != this.maxLeft || ut != this.maxRight || lt != this.maxTop || ht != this.maxBottom) && this.events.isEnabled("transformed")) { var pt = { type: "transformed", target: this }; ot && (pt.dummyData = ot.width + " " + d + " " + ot.height + " " + f), this.events.dispatchImmediately("transformed", pt); } }, e.prototype.updateCenter = function () { t.prototype.updateCenter.call(this), this.updateBackground(); }, e.prototype.updateBackground = function () { var t = this._background; t && (t.x = this.maxLeft, t.y = this.maxTop, t.width = this.maxRight - this.maxLeft, t.height = this.maxBottom - this.maxTop); }, e.prototype.getColumnWidth = function (t, e, i) { var n = this, r = [], s = 0; return mt(t, function (t) { t.isMeasured && (n.fixedWidthGrid ? r[s] = i : r[s] = W(r[s], t.measuredWidth + t.pixelMarginRight + t.pixelMarginLeft), ++s == e && (s = 0)); }), r; }, Object.defineProperty(e.prototype, "layout", { get: function get() { return this.getPropertyValue("layout"); }, set: function set(t) { this.setPropertyValue("layout", t) && this.invalidateLayout(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "contentValign", { get: function get() { return this.getPropertyValue("contentValign"); }, set: function set(t) { this.setPropertyValue("contentValign", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "contentAlign", { get: function get() { return this.getPropertyValue("contentAlign"); }, set: function set(t) { this.setPropertyValue("contentAlign", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fixedWidthGrid", { get: function get() { return this.getPropertyValue("fixedWidthGrid"); }, set: function set(t) { this.setPropertyValue("fixedWidthGrid", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxColumns", { get: function get() { return this.getPropertyValue("maxColumns"); }, set: function set(t) { this.setPropertyValue("maxColumns", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "reverseOrder", { get: function get() { return this.getPropertyValue("reverseOrder"); }, set: function set(t) { this.setPropertyValue("reverseOrder", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "setStateOnChildren", { get: function get() { return this.getPropertyValue("setStateOnChildren"); }, set: function set(t) { this.setPropertyValue("setStateOnChildren", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.fitsToBounds = function (t) { var e = t.x, i = t.y; return e >= -.5 && e <= this.pixelWidth + .5 && i >= -.5 && i <= this.pixelHeight + .5; }, e.prototype.copyFrom = function (e) { var i = this; t.prototype.copyFrom.call(this, e), this.layout = e.layout, this.setStateOnChildren = e.setStateOnChildren, e._background && (this.background = e._background.clone(), this.background.copyFrom(e._background)), pe(e.children.iterator(), function (t) { t.shouldClone && (t.clone().parent = i); }); }, Object.defineProperty(e.prototype, "preloader", { get: function get() { return this._preloader || (this.parent ? this.parent.preloader : void 0); }, set: function set(t) { this._preloader && this.removeDispose(this._preloader), this._preloader = t, t && (t.parent = this.tooltipContainer, this._disposers.push(t)); }, enumerable: !0, configurable: !0 }), e.prototype.setPaper = function (e) { var i = this, n = t.prototype.setPaper.call(this, e); return n && (this._background && (this._background.paper = e, this._background.topParent = this.topParent), this.children.each(function (t) { t.setPaper(e), t.topParent = i.topParent; })), n; }, e.prototype.removeFromInvalids = function () { t.prototype.removeFromInvalids.call(this), Fs.removeFromInvalidLayouts(this); }, e.prototype.setDataItem = function (e) { this._dataItem != e && (pe(this.children.iterator(), function (t) { t.dataItem = e; }), this._background && (this._background.dataItem = e)), t.prototype.setDataItem.call(this, e); }, e.prototype.measureElement = function () { this.disabled || this.isTemplate || "none" == this.layout || this.__disabled || this.validateLayout(); }, e.prototype.getTooltipX = function () { return t.prototype.getTooltipX.call(this); }, e.prototype.getTooltipY = function () { return t.prototype.getTooltipY.call(this); }, Object.defineProperty(e.prototype, "fontFamily", { get: function get() { return this.getPropertyValue("fontFamily"); }, set: function set(t) { this.setPropertyValue("fontFamily", t, !0) && (this.setSVGAttribute({ "font-family": t }), this.invalidateLabels()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fontSize", { get: function get() { return this.getPropertyValue("fontSize"); }, set: function set(t) { this.setPropertyValue("fontSize", t, !0) && (this.setSVGAttribute({ "font-size": t }), this.invalidateLabels()); }, enumerable: !0, configurable: !0 }), e.prototype.invalidateLabels = function () { this.children.each(function (t) { t.hardInvalidate ? t.hardInvalidate() : t instanceof e && t.invalidateLabels(); }); }, Object.defineProperty(e.prototype, "fontWeight", { get: function get() { return this.getPropertyValue("fontWeight"); }, set: function set(t) { this.setPropertyValue("fontWeight", t), this.setSVGAttribute({ "font-weight": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "textDecoration", { get: function get() { return this.getPropertyValue("textDecoration"); }, set: function set(t) { this.setPropertyValue("textDecoration", t), this.setSVGAttribute({ "text-decoration": t }); }, enumerable: !0, configurable: !0 }), e.prototype.dispose = function () { this._background && this._background.dispose(), this._shouldBeReady = [], this.disposeChildren(), t.prototype.dispose.call(this); }, e.prototype.setState = function (e, i, n) { var r = e; return e instanceof Po && (r = e.name), this.setStateOnChildren && pe(this.children.iterator(), function (t) { t.setState(r, i, n), "active" != r && (t.isActive = !1); }), this._background && this._background.setState(r), this.setStateOnSprites.length && mt(this.setStateOnSprites, function (t) { t.setState(r, i, n); }), t.prototype.setState.call(this, e, i, n); }, e.prototype.setActive = function (e) { t.prototype.setActive.call(this, e), this._background && (this._background.isActive = e); }, e.prototype.dispatchReady = function () { var e = this; if (!this.isReady() && !this.isDisposed()) { var i = !0; ue(this.children.iterator(), function (t) { return !!(t.__disabled || t.disabled || t.isReady()) || (i = !1, !1); }), bt(this._shouldBeReady, function (t) { return !!(t.__disabled || t.disabled || t.isReady()) || (i = !1, !1); }), i ? t.prototype.dispatchReady.call(this) : Fs.events.once("exitframe", function () { e.dispatchReady(), Ls.requestFrame(); }, void 0, !1); } }, e.prototype._systemUpdate = function (e) { this.children.each(function (t) { t.invalid && (t._systemCheckIfValidate() ? t.dataItem && t.dataItem.component && t.dataItem.component.dataInvalid ? e.push(t) : t.validate() : e.push(t)); }), t.prototype._systemUpdate.call(this, e); }, e.prototype._systemValidatePositions = function () { this.children.each(function (t) { t.positionInvalid && t.validatePosition(); }), t.prototype._systemValidatePositions.call(this); }, e.prototype._systemValidateLayouts = function () { this.layoutInvalid && !this.isDisposed() && this.validateLayout(); }, Object.defineProperty(e.prototype, "tapToActivate", { get: function get() { return this._tapToActivate; }, set: function set(t) { this._tapToActivate != t && this.setTapToActivate(t); }, enumerable: !0, configurable: !0 }), e.prototype.setTapToActivate = function (t) { var e = this; this._tapToActivate = t, this.interactions.isTouchProtected = t, t && this.interactions.setEventDisposer("container-tapToActivate", t, function () { return new gs([e.events.on("hit", e.handleTapToActivate, e, !1), e.events.on("down", e.initTapTimeout, e, !1), e.events.on("track", e.initTapTimeout, e, !1), pr().body.events.on("down", function (t) { pr().isLocalElement(t.pointer, e.paper.svg, e.uid) || e.handleTapToActivateDeactivation(); }, e, !1)]); }), pr(); }, e.prototype.handleTapToActivate = function () { this.interactions.isTouchProtected = !1, this.initTapTimeout(); }, e.prototype.handleTapToActivateDeactivation = function () { this.interactions.isTouchProtected = !0; }, e.prototype.initTapTimeout = function () { var t = this; this._tapToActivateTimeout && this._tapToActivateTimeout.dispose(), this.tapToActivate && !this.interactions.isTouchProtected && this.tapTimeout && (this._tapToActivateTimeout = this.setTimeout(function () { t.handleTapToActivateDeactivation(); }, this.tapTimeout)); }, e.prototype.hasLicense = function () { if (Ms.commercialLicense) return !0; for (var t = 0; t < Ms.licenses.length; t++) if (Ms.licenses[t].match(/^CH.{5,}/i)) return !0; return !1; }, e; }(ba); Fs.registeredClasses.Container = _a; var Pa = function () { function t() {} return t.prototype.parse = function (t) { return []; }, Object.defineProperty(t.prototype, "parsableNumbers", { get: function get() { return this.options.numberFields && this.options.numberFields.length > 0; }, enumerable: !0, configurable: !0 }), t.prototype.maybeToNumber = function (t, e) { return -1 !== this.options.numberFields.indexOf(t) ? Ai(e) : e; }, Object.defineProperty(t.prototype, "parsableDates", { get: function get() { return this.options.dateFields && this.options.dateFields.length > 0; }, enumerable: !0, configurable: !0 }), t.prototype.maybeToDate = function (t, e) { return -1 !== this.options.dateFields.indexOf(t) ? this.options.dateFormatter.parse(e, this.dateFormat) : e; }, t.prototype.maybeToEmpty = function (t) { return S(t) && "" != t || !S(this.options.emptyAs) ? t : this.options.emptyAs; }, Object.defineProperty(t.prototype, "dateFormatter", { get: function get() { return this.options.dateFormatter || (this.options.dateFormatter = new ua(), this.options.dateFormat && (this.options.dateFormat = this.options.dateFormat)), this.options.dateFormatter; }, enumerable: !0, configurable: !0 }), Object.defineProperty(t.prototype, "dateFormat", { get: function get() { return this.options.dateFormat || this.dateFormatter.inputDateFormat; }, enumerable: !0, configurable: !0 }), t; }(), wa = [",", ";", "\t"], Ca = function (t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e.contentType = "text/csv", e.options = { delimiter: "", reverse: !1, skipRows: 0, skipEmpty: !0, useColumnNames: !1 }, e; } return n(e, t), e.isCSV = function (t) { return !!e.getDelimiterFromData(t); }, e.getDelimiterFromData = function (t) { var e, i = t.split("\n"), n = i.length; return mt(wa, function (t) { for (var r = 0, s = 0, o = 0; o < n; ++o) { if (!((r = i[o].split(t).length) > 1)) { s = 0; break; } if (0 === s) s = r;else if (r != s) { s = 0; break; } } s && (e = t); }), e; }, e.prototype.parse = function (t) { this.options.delimiter || (this.options.delimiter = e.getDelimiterFromData(t)); var i, n, r, s = this.CSVToArray(t, this.options.delimiter), o = S(this.options.emptyAs), a = this.parsableNumbers, l = this.parsableDates, h = [], u = []; for (n = 0; n < this.options.skipRows; n++) s.shift(); if (this.options.useColumnNames) { u = s.shift(); for (var p = 0; p < u.length; p++) "" === (i = S(u[p]) ? u[p].replace(/^\s+|\s+$/gm, "") : "") && (i = "col" + p), u[p] = i; } for (; r = this.options.reverse ? s.pop() : s.shift();) if (!this.options.skipEmpty || 1 !== r.length || "" !== r[0]) { var c = {}; for (n = 0; n < r.length; n++) c[i = void 0 === u[n] ? "col" + n : u[n]] = "" === r[n] ? this.options.emptyAs : r[n], o && (c[i] = this.maybeToEmpty(c[i])), a && (c[i] = this.maybeToNumber(i, c[i])), l && (c[i] = this.maybeToDate(i, c[i])); h.push(c); } return h; }, e.prototype.CSVToArray = function (t, e) { e = e || ","; for (var i = new RegExp("(\\" + e + '|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\' + e + "\\r\\n]*))", "gi"), n = [[]], r = null; r = i.exec(t);) { var s = r[1]; s.length && s !== e && n.push([]); var o = void 0; o = r[2] ? r[2].replace(new RegExp('""', "g"), '"') : r[3], n[n.length - 1].push(o); } return n; }, e; }(Pa), Oa = function (t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e.contentType = "application/json", e.options = {}, e; } return n(e, t), e.isJSON = function (t) { try { return JSON.parse(t), !0; } catch (t) { return !1; } }, e.prototype.parse = function (t) { var e, i = this; try { S(JSON) && (e = JSON.parse(t)); } catch (t) { return; } var n = S(this.options.emptyAs), r = this.parsableNumbers, s = this.parsableDates; if (Array.isArray(e) && (r || s || n)) for (var o = 0, a = e.length; o < a; o++) !function (t, o) { var a = e[t]; Qt(a, function (t, e) { n && (a[t] = i.maybeToEmpty(a[t])), r && (a[t] = i.maybeToNumber(t, a[t])), s && (a[t] = i.maybeToDate(t, a[t])); }); }(o); return e; }, e; }(Pa), Sa = function () { function t() { this.adapter = new Ks(this); } return t.prototype.load = function (t) { var e = yt(Array.isArray(t) ? t : [t], function (t) { return t.dispatchImmediately("started"), t.dispatchImmediately("loadstarted"), fr(t.url, t, t.requestOptions); }); Promise.all(e).then(function (t) { mt(t, function (t) { var e = t.target; e.dispatchImmediately("loadended"), t.error ? e.events.isEnabled("error") && e.events.dispatchImmediately("error", { type: "error", code: t.xhr.status, message: e.language.translate("Unable to load file: %1", null, e.url), target: e }) : e.processData(t.response, t.type), e.dispatchImmediately("ended"); }); })["catch"](function (t) { t.target && (t.target.dispatchImmediately("loadended"), t.target.events.isEnabled("error") && t.target.events.dispatchImmediately("error", { type: "error", code: t.xhr.status, message: t.target.language.translate("Unable to load file: %1", null, t.target.url), target: t.target }), t.target.dispatchImmediately("ended")); }); }, t.prototype.getParserByType = function (t) { return this.adapter.apply("getParserByType", { parser: null, type: t }).parser || ("csv" == t || "text/csv" == t || "application/vnd.ms-excel" == t ? new Ca() : "json" == t || "application/json" == t ? new Oa() : void 0); }, t.prototype.getParserByData = function (t, e) { var i = this.adapter.apply("getParserByData", { parser: null, data: t, type: e }).parser; if (!i) { if (i = this.getParserByType(e)) return i; if (Oa.isJSON(t)) return this.getParserByType("json"); if (Ca.isCSV(t)) return this.getParserByType("csv"); } return i; }, t; }(), Ia = new Sa(), Da = function (t) { function e(e, i) { var n = t.call(this) || this; return n.adapter = new Ks(n), n._requestOptions = {}, n._incremental = !1, n._incrementalParams = {}, n._keepCount = !1, n._updateCurrentData = !1, n.showPreloader = !0, n.className = "DataSource", e && (n.url = e), i && (n.parser = "string" == typeof i ? Ia.getParserByType(i) : i), n; } return n(e, t), e.prototype.processData = function (t, e) { if (this.dispatchImmediately("parsestarted"), this.parser || (this.parser = Ia.getParserByData(t, e), this.parser)) { if (this.parser.options = this.adapter.apply("parserOptions", this.parser.options), this.parser.options.dateFields = this.adapter.apply("dateFields", this.parser.options.dateFields || []), this.parser.options.numberFields = this.adapter.apply("numberFields", this.parser.options.numberFields || []), this.parser.options.dateFields && !this.parser.options.dateFormatter && (this.parser.options.dateFormatter = this.dateFormatter), this.data = this.adapter.apply("parsedData", this.parser.parse(this.adapter.apply("unparsedData", t))), !S(this.data) && this.events.isEnabled("parseerror")) { var i = { type: "parseerror", message: this.language.translate("Error parsing file: %1", null, this.url), target: this }; this.events.dispatchImmediately("parseerror", i); } this.dispatchImmediately("parseended"), S(this.data) && this.dispatchImmediately("done", { data: this.data }), this.lastLoad = new Date(); } else { if (this.events.isEnabled("parseerror")) { var n = { type: "parseerror", message: this.language.translate("No parser available for file: %1", null, this.url), target: this }; this.events.dispatchImmediately("parseerror", n); } this.dispatchImmediately("parseended"); } }, Object.defineProperty(e.prototype, "url", { get: function get() { var t = this.disableCache ? this.timestampUrl(this._url) : this._url; return this.incremental && this.component.data.length && (t = this.addUrlParams(t, this.incrementalParams)), this.adapter.apply("url", t); }, set: function set(t) { this._url = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "requestOptions", { get: function get() { return this.adapter.apply("requestOptions", this._requestOptions); }, set: function set(t) { this._requestOptions = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "parser", { get: function get() { return this._parser || (this._parser = new Oa()), this.adapter.apply("parser", this._parser); }, set: function set(t) { this._parser = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "reloadFrequency", { get: function get() { return this.adapter.apply("reloadTimeout", this._reloadFrequency); }, set: function set(t) { var e = this; this._reloadFrequency != t && (this._reloadFrequency = t, t ? S(this._reloadDisposer) || (this._reloadDisposer = this.events.on("ended", function (t) { e._reloadTimeout = setTimeout(function () { e.load(); }, e.reloadFrequency); })) : S(this._reloadDisposer) && (this._reloadDisposer.dispose(), this._reloadDisposer = void 0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "incremental", { get: function get() { return this.adapter.apply("incremental", this._incremental); }, set: function set(t) { this._incremental = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "incrementalParams", { get: function get() { return this.adapter.apply("incrementalParams", this._incrementalParams); }, set: function set(t) { this._incrementalParams = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "keepCount", { get: function get() { return this.adapter.apply("keepCount", this._keepCount); }, set: function set(t) { this._keepCount = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "updateCurrentData", { get: function get() { return this.adapter.apply("updateCurrentData", this._updateCurrentData); }, set: function set(t) { this._updateCurrentData = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "language", { get: function get() { return this._language ? this._language : this.component ? (this._language = this.component.language, this._language) : (this.language = new aa(), this.language); }, set: function set(t) { this._language = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dateFormatter", { get: function get() { return this._dateFormatter ? this._dateFormatter : this.component ? (this._dateFormatter = this.component.dateFormatter, this._dateFormatter) : (this.dateFormatter = new ua(), this.dateFormatter); }, set: function set(t) { this._dateFormatter = t; }, enumerable: !0, configurable: !0 }), e.prototype.timestampUrl = function (t) { var e = {}; return e[new Date().getTime().toString()] = "", this.addUrlParams(t, e); }, e.prototype.dispose = function () { t.prototype.dispose.call(this), this._reloadTimeout && clearTimeout(this._reloadTimeout), S(this._reloadDisposer) && (this._reloadDisposer.dispose(), this._reloadDisposer = void 0); }, e.prototype.load = function () { this.url && (this._reloadTimeout && clearTimeout(this._reloadTimeout), Ia.load(this)); }, e.prototype.addUrlParams = function (t, e) { var i = t.match(/\?/) ? "&" : "?", n = []; return Qt(e, function (t, e) { "" != e ? n.push(t + "=" + encodeURIComponent(e)) : n.push(t); }), n.length ? t + i + n.join("&") : t; }, e.prototype.processConfig = function (e) { Fs.registeredClasses.json = Oa, Fs.registeredClasses.JSONParser = Oa, Fs.registeredClasses.csv = Ca, Fs.registeredClasses.CSVParser = Ca, t.prototype.processConfig.call(this, e); }, e; }(Js), ka = function (t) { function e() { var e = t.call(this) || this; return e._rules = new Ns(), e._appliedRules = {}, e._useDefault = !0, e.adapter = new Ks(e), e._enabled = !1, e._noStates = [], e.className = "Responsive", e.rules.events.on("inserted", e.checkRules, !0), e.rules.events.on("removed", e.checkRules, !0), e._disposers.push(e.rules.events), e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "component", { get: function get() { return this._component; }, set: function set(t) { t != this._component && (this._sizeEventDisposer && this.removeDispose(this._sizeEventDisposer), this._component = t, this._sizeEventDisposer = I(this.component).events.on("sizechanged", this.checkRules, this), this._disposers.push(this._sizeEventDisposer), this.enabled = !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "enabled", { get: function get() { return this.adapter.apply("enabled", this._enabled); }, set: function set(t) { this._enabled != t && (this._enabled = t, this.applyRules()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "useDefault", { get: function get() { return this.adapter.apply("useDefault", this._useDefault); }, set: function set(t) { this._useDefault != t && (this._useDefault = t, this.applyRules()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "rules", { get: function get() { return this.adapter.apply("rules", this._rules); }, set: function set(t) { this._rules = t, this._enabled = !0, this.applyRules(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "defaultRules", { get: function get() { return this.adapter.apply("defaultRules", Ta); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "allRules", { get: function get() { var t = new Ns(); return this.useDefault && t.copyFrom(this.defaultRules), t.copyFrom(this.rules), this.adapter.apply("allRules", t); }, enumerable: !0, configurable: !0 }), e.prototype.isApplied = function (t) { var e = this._appliedRules[t]; return !!S(e) && e; }, e.prototype.checkRules = function () { var t = this, e = this.allRules; if (e && 0 != e.length) { var i = !1, n = I(this.component); if (pe(e.iterator(), function (e) { e.id || (e.id = Fs.getUniqueId()); var r = e.relevant(n); (r && !t.isApplied(e.id) || !r && t.isApplied(e.id)) && (i = !0), t._appliedRules[e.id] = r; }), i) { if (!this.component.isReady()) return n.hidden = !0, void n.events.once("ready", function (e) { t.applyRules(), e.target.show(0); }); this.dispatchImmediately("ruleschanged"), this.applyRules(); } } }, e.prototype.applyRules = function (t) { var e = this, i = S(t) ? t : I(this.component), n = !1; this.enabled && pe(this.allRules.iterator(), function (t) { var r = e.getState(t, i); r && (n || (i.applyCurrentState(0), n = !0), e.isApplied(I(t.id)) && (r.transitionDuration = 0, i.setState(r), e.dispatchImmediately("ruleapplied", { rule: t }))); }), i.children && pe(i.children.iterator(), function (t) { e.applyRules(t); }); }, e.prototype.getState = function (t, e) { var i = "responsive-" + t.id, n = e.uid + "_" + i; if (-1 === ft(this._noStates, n)) { if (e.states.hasKey(i)) return e.states.getKey(i); var r = t.state(e, i); return r || this._noStates.push(n), r; } }, e.prototype.getValue = function (t, e) { var i = t.getPropertyValue(e); return !S(i) && S(t[e]) && (i = t[e]), i; }, e; }(Js), Ta = new Ns(); Ta.events.on("inserted", function (t) { t.newValue.id = Fs.getUniqueId(); }); var Aa = function () { function t() {} return t.widthXXS = function (e) { return e.pixelWidth <= t.XXS; }, t.widthXS = function (e) { return e.pixelWidth <= t.XS; }, t.widthS = function (e) { return e.pixelWidth <= t.S; }, t.widthM = function (e) { return e.pixelWidth <= t.M; }, t.widthL = function (e) { return e.pixelWidth <= t.L; }, t.widthXL = function (e) { return e.pixelWidth <= t.XL; }, t.widthXXL = function (e) { return e.pixelWidth <= t.XXL; }, t.heightXXS = function (e) { return e.pixelHeight <= t.XXS; }, t.heightXS = function (e) { return e.pixelHeight <= t.XS; }, t.heightS = function (e) { return e.pixelHeight <= t.S; }, t.heightM = function (e) { return e.pixelHeight <= t.M; }, t.heightL = function (e) { return e.pixelHeight <= t.L; }, t.heightXL = function (e) { return e.pixelHeight <= t.XL; }, t.heightXXL = function (e) { return e.pixelHeight <= t.XXL; }, t.isXXS = function (e) { return e.pixelWidth <= t.XXS && e.pixelHeight <= t.XXS; }, t.isXS = function (e) { return e.pixelWidth <= t.XS && e.pixelHeight <= t.XS; }, t.isS = function (e) { return e.pixelWidth <= t.S && e.pixelHeight <= t.S; }, t.isM = function (e) { return e.pixelWidth <= t.M && e.pixelHeight <= t.M; }, t.isL = function (e) { return e.pixelWidth <= t.L && e.pixelHeight <= t.L; }, t.isXL = function (e) { return e.pixelWidth <= t.XL && e.pixelHeight <= t.XL; }, t.isXXL = function (e) { return e.pixelWidth <= t.XXL && e.pixelHeight <= t.XXL; }, t.maybeXXS = function (e) { return e.pixelWidth <= t.XXS || e.pixelHeight <= t.XXS; }, t.maybeXS = function (e) { return e.pixelWidth <= t.XS || e.pixelHeight <= t.XS; }, t.maybeS = function (e) { return e.pixelWidth <= t.S || e.pixelHeight <= t.S; }, t.maybeM = function (e) { return e.pixelWidth <= t.M || e.pixelHeight <= t.M; }, t.maybeL = function (e) { return e.pixelWidth <= t.L || e.pixelHeight <= t.L; }, t.maybeXL = function (e) { return e.pixelWidth <= t.XL || e.pixelHeight <= t.XL; }, t.maybeXXL = function (e) { return e.pixelWidth <= t.XXL || e.pixelHeight <= t.XXL; }, t.XXS = 100, t.XS = 200, t.S = 300, t.M = 400, t.L = 600, t.XL = 800, t.XXL = 1e3, t; }(), Va = function (t) { function e() { var e = t.call(this) || this; return e._disabled = !1, e.hasProperties = !1, e.values = {}, e.categories = {}, e.dates = {}, e.locations = {}, e.workingLocations = {}, e.properties = {}, e.sprites = [], e.isTemplate = !1, e._index = null, e._visible = !0, e._hidden = !1, e._ignoreMinMax = !1, e.hasChildren = {}, e.isHiding = !1, e._valueAnimations = {}, e._locationAnimations = {}, e.className = "DataItem", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "adapter", { get: function get() { return this._adapterO || (this._adapterO = new Ks(this)), this._adapterO; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "index", { get: function get() { return this.component && null != this._index ? this._index : -1; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "animations", { get: function get() { return this._animations || (this._animations = [], this._disposers.push(new So(this._animations))), this._animations; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "visible", { get: function get() { return !this._hidden && this._visible; }, set: function set(t) { t && (this.hidden = !1), this._visible != t && this.setVisibility(t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hidden", { get: function get() { return this._hidden; }, set: function set(t) { this._hidden != t && (this._hidden = t, t ? this.setVisibility(!1) : this.setVisibility(!0, !0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "__disabled", { get: function get() { return this._disabled; }, set: function set(t) { this._disabled = t, mt(this.sprites, function (e) { e.__disabled = t; }); }, enumerable: !0, configurable: !0 }), e.prototype.setVisibility = function (t, e) { if (mt(this.sprites, function (e) { t ? e.visible = e.defaultState.properties.visible : e.hiddenState ? e.visible = e.hiddenState.properties.visible : e.visible = !1; }), this._visible = t, this._eventDispatcher && this.events.isEnabled("visibilitychanged")) { var i = { type: "visibilitychanged", target: this, visible: t }; this.events.dispatchImmediately("visibilitychanged", i); } }, e.prototype.show = function (t, e, i) { var n, r = this; if (!this.hidden) return this.setVisibility(!0, !0), this.isHiding = !1, this._hideDisposer && this.removeDispose(this._hideDisposer), i && mt(i, function (i) { n = r.setWorkingValue(i, r.values[i].value, t, e); }), mt(this.sprites, function (i) { var n = i.show(t); null == n || n.isFinished() || (r._disposers.push(n), null != e && e > 0 && n.delay(e)); }), n; }, e.prototype.dispose = function () { t.prototype.dispose.call(this), mt(this.sprites, function (t) { t.dispose(); }), this.sprites = []; }, e.prototype.hide = function (t, e, i, n) { var r = this; if (this.isHiding = !0, mt(this.sprites, function (i) { var n = i.hide(t); null == n || n.isFinished() || (r._disposers.push(n), null != e && e > 0 && n.delay(e)); }), A(i) && n) { var s; if (mt(n, function (n) { var o = r.setWorkingValue(n, i, t, e); o && (s = o); }), s && !s.isFinished()) return this._hideDisposer = s.events.on("animationended", function () { r.setVisibility(!1, !0), r.isHiding = !1; }), this._disposers.push(this._hideDisposer), s; this.isHiding = !1, this.setVisibility(!1, !0); } else this.isHiding = !1, this.setVisibility(!1); }, e.prototype.getDuration = function (t) { if (!A(t)) { var e = this.component; e && (t = e.interpolationDuration); } if (null != t) return this._adapterO ? this._adapterO.apply("duration", t) : t; }, e.prototype.getValue = function (t, e) { if (t && this.component) { e || (e = this.component.dataFields[t + "Show"]) || (e = "value"); var i = this.values[t][e]; return this._adapterO && this._adapterO.isEnabled("value") ? this._adapterO.apply("value", { value: i, field: t }).value : i; } }, e.prototype.getWorkingValue = function (t) { if (t && this.component) { var e = this.component.dataFields[t + "Show"]; return e || (e = "workingValue"), this._adapterO ? this._adapterO.apply("workingValue", { workingValue: this.values[t][e], field: t }).workingValue : this.values[t][e]; } }, e.prototype.getActualWorkingValue = function (t) { return this.values[t].workingValue; }, e.prototype.setValue = function (t, e, i, n) { var r = this.values[t].value, s = this.getDuration(i); if (r !== (e = w(e))) { if (this.values[t].value = e, this._eventDispatcher && this.events.isEnabled("valuechanged")) { var o = { type: "valuechanged", target: this, property: t }; this.events.dispatchImmediately("valuechanged", o); } this.component && this.component.handleDataItemValueChange(this, t); } this.setWorkingValue(t, e, s, n); }, e.prototype.setCalculatedValue = function (t, e, i) { if (this.values[t][i] !== e && A(e)) { if (this.values[t][i] = e, this._eventDispatcher && this.events.isEnabled("calculatedvaluechanged")) { var n = { type: "calculatedvaluechanged", target: this, property: t }; this.events.dispatchImmediately("calculatedvaluechanged", n); } this.component && this.component.handleDataItemCalculatedValueChange(this, t); } }, e.prototype.setWorkingValue = function (t, e, i, n) { if (A(this.values[t].value)) { var r = this.getDuration(i), s = this.values[t].workingValue; if (null != r && r > 0 && A(s) && this.component) { if (s != e) { var o = this.animate({ childObject: this.values[t], property: "workingValue", from: s, to: e, dummyData: t }, r, this.component.interpolationEasing); return null != n && o.delay(n), o.events.on("animationstarted", this.handleInterpolationProgress, this), o.events.on("animationprogress", this.handleInterpolationProgress, this), o.events.on("animationended", this.handleInterpolationProgress, this), this._valueAnimations[t] = o, o; } (a = this._valueAnimations[t]) && a.stop(), this.values[t].workingValue = e; } else { var a; if ((a = this._valueAnimations[t]) && a.stop(), this.values[t].workingValue = e, this._eventDispatcher && this.events.isEnabled("workingvaluechanged")) { var l = { type: "workingvaluechanged", target: this, property: t }; this.events.dispatchImmediately("workingvaluechanged", l); } this.component && this.component.handleDataItemWorkingValueChange(this, t); } } }, e.prototype.setLocation = function (t, e, i, n) { if (this.locations[t] !== e) { if (this.locations[t] = e, this._eventDispatcher && this.events.isEnabled("locationchanged")) { var r = { type: "locationchanged", target: this, property: t }; this.events.dispatchImmediately("locationchanged", r); } this.component && this.component.handleDataItemValueChange(this, t), this.setWorkingLocation(t, e, i, n); } }, e.prototype.setWorkingLocation = function (t, e, i, n) { var r = this.getDuration(i), s = this.workingLocations[t]; if (null != r && r > 0 && A(s) && this.component) { if (s != e) { var o = this.animate({ childObject: this.workingLocations, property: t, from: s, to: e, dummyData: t }, r, this.component.interpolationEasing); return null != n && o.delay(n), o.events.on("animationstarted", this.handleInterpolationProgress, this), o.events.on("animationprogress", this.handleInterpolationProgress, this), o.events.on("animationended", this.handleInterpolationProgress, this), this._locationAnimations[t] = o, o; } (a = this._locationAnimations[t]) && a.stop(), this.workingLocations[t] = e; } else { var a; if ((a = this._locationAnimations[t]) && a.stop(), this.workingLocations[t] = e, this._eventDispatcher && this.events.isEnabled("workinglocationchanged")) { var l = { type: "workinglocationchanged", target: this, property: t }; this.events.dispatchImmediately("workinglocationchanged", l); } this.component && this.component.handleDataItemWorkingLocationChange(this, t); } }, e.prototype.setDate = function (t, e, i) { !k(e) && this.component && (e = this.component.dateFormatter.parse(e)), this.dates[t] !== e && (this.dates[t] = e, this.setValue(t, e.getTime(), i)); }, e.prototype.getDate = function (t) { return this._adapterO ? this._adapterO.apply("date", { date: this.dates[t], field: t }).date : this.dates[t]; }, e.prototype.setProperty = function (t, e) { if (this.properties[t] !== e) { if (this.hasProperties = !0, this.properties[t] = e, this._eventDispatcher && this.events.isEnabled("propertychanged")) { var i = { type: "propertychanged", target: this, property: t, value: e }; this.events.dispatchImmediately("propertychanged", i); } this.component && this.component.handleDataItemPropertyChange(this, t); } }, e.prototype.setCategory = function (t, e) { T(e) || (e = x(e)), this.categories[t] !== e && (this.categories[t] = e); }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), e.dataContext && (this.dataContext = ai(e.dataContext, {})), ni(e.locations, this.locations), e._adapterO && this.adapter.copyFrom(e._adapterO), this.component = e.component; }, Object.defineProperty(e.prototype, "opacity", { set: function set(t) { mt(this.sprites, function (e) { e.opacity = t; }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "ignoreMinMax", { get: function get() { return this._ignoreMinMax; }, set: function set(t) { if (this._ignoreMinMax = t, this._eventDispatcher && this.events.isEnabled("propertychanged")) { var e = { type: "propertychanged", target: this, property: "ignoreMinMax", value: t }; this.events.dispatchImmediately("propertychanged", e); } this.component && this.component.handleDataItemPropertyChange(this, "ignoreMinMax"); }, enumerable: !0, configurable: !0 }), e.prototype.animate = function (t, e, i) { return new Io(this, t, e, i).start(); }, e.prototype.handleInterpolationProgress = function (t) { var e = t.target.animationOptions[0]; if (e) { if (this._eventDispatcher && this.events.isEnabled("workingvaluechanged")) { var i = { type: "workingvaluechanged", target: this, property: e.dummyData }; this.events.dispatchImmediately("workingvaluechanged", i); } this.component && this.component.handleDataItemWorkingValueChange(this, e.dummyData); } }, e.prototype.hasValue = function (t) { for (var e = 0, i = t.length; e < i; e++) { var n = this.values[t[e]]; if (!n || !S(n.value)) return !1; } return !0; }, Object.defineProperty(e.prototype, "depth", { get: function get() { return this.parent ? this.parent.depth + 1 : 0; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dataContext", { get: function get() { return this._dataContext; }, set: function set(t) { this._dataContext = t; }, enumerable: !0, configurable: !0 }), e.prototype.addSprite = function (t) { t.dataItem && t.dataItem != this && St(t.dataItem.sprites, t), this.visible || t.hide(0), this.isHiding && t.hide(), this.sprites.push(t), t.dataItem = this; }, e; }(Js), Fa = function (t) { function e() { var e = t.call(this) || this; return e.dataFields = {}, e._dataSources = {}, e._parseDataFrom = 0, e._dataDisposers = [], e._currentDataSetId = "", e._start = 0, e._end = 1, e.skipRangeEvent = !1, e.rangeChangeDuration = 0, e.rangeChangeEasing = Pn, e.parsingStepDuration = 50, e.dataInvalid = !1, e.rawDataInvalid = !1, e.dataRangeInvalid = !1, e.dataItemsInvalid = !1, e.interpolationDuration = 0, e.interpolationEasing = Pn, e.sequencedInterpolation = !0, e.sequencedInterpolationDelay = 0, e.dataValidationProgress = 0, e._addAllDataItems = !0, e._usesData = !0, e.className = "Component", e.minZoomCount = 1, e.maxZoomCount = 0, e._dataItems = new Ys(e.createDataItem()), e._dataItems.events.on("inserted", e.handleDataItemAdded, e, !1), e._dataItems.events.on("removed", e.handleDataItemRemoved, e, !1), e._disposers.push(new Bs(e._dataItems)), e._disposers.push(e._dataItems.template), e.invalidateData(), e.dataUsers.events.on("inserted", e.handleDataUserAdded, e, !1), e._disposers.push(new gs(e._dataDisposers)), e._start = 0, e._end = 1, e.maxZoomDeclination = 1, e.applyTheme(), e; } return n(e, t), e.prototype.createDataItem = function () { return new Va(); }, e.prototype.handleDataUserAdded = function (t) { t.newValue.dataProvider = this; }, e.prototype.handleDataItemValueChange = function (t, e) { this.dataItemsInvalid || this.invalidateDataItems(); }, e.prototype.handleDataItemWorkingValueChange = function (t, e) {}, e.prototype.handleDataItemWorkingLocationChange = function (t, e) {}, e.prototype.handleDataItemCalculatedValueChange = function (t, e) {}, e.prototype.handleDataItemPropertyChange = function (t, e) {}, e.prototype.processDataItem = function (t, e) { var i = this; if (t) { e || (e = {}), t.dataContext = e; var n = !1; Qt(this.dataFields, function (r, s) { var o = r, a = e[s]; if (i._adapterO && i._adapterO.isEnabled("dataContextValue") && (a = i._adapterO.apply("dataContextValue", { field: o, value: a, dataItem: t }).value), t.hasChildren[o]) { if (S(a)) { n = !0; var l = i.createDataItem(); l.copyFrom(i.mainDataSet.template); var h = new Ys(l); h.events.on("inserted", i.handleDataItemAdded, i, !1), h.events.on("removed", i.handleDataItemRemoved, i, !1), i._dataDisposers.push(new Bs(h)); for (var u = a.length, p = 0; p < u; p++) { var c = a[p], d = h.create(); d.parent = t, i.processDataItem(d, c); } t[o] = h; } } else S(a) && (n = !0, t[o] = a); }), Qt(this.propertyFields, function (i, r) { var s = i, o = e[r]; S(o) && (n = !0, t.setProperty(s, o)); }), this._addAllDataItems || n || this.mainDataSet.remove(t); } }, e.prototype.updateDataItem = function (t) { var e = this; if (t) { var i = t.dataContext; Qt(this.dataFields, function (n, r) { var s = n, o = i[r]; e._adapterO && (o = e._adapterO.apply("dataContextValue", { field: s, value: o, dataItem: t }).value), t.hasChildren[s] ? o && pe(t[s].iterator(), function (t) { e.updateDataItem(t); }) : S(o) && (t[s] = o); }), Qt(this.propertyFields, function (e, n) { var r = e, s = i[n]; S(s) && t.setProperty(r, s); }); } }, e.prototype.validateDataElements = function () { for (var t = this.endIndex, e = this.startIndex; e < t; e++) { var i = this.dataItems.getIndex(e); i && this.validateDataElement(i); } }, e.prototype.validate = function () { this.validateDataElements(), t.prototype.validate.call(this); }, e.prototype.validateDataElement = function (t) {}, e.prototype.addData = function (t, e) { var i = this; if (!this.dataInvalid && this.inited && (this._parseDataFrom = this.data.length), t instanceof Array ? mt(t, function (t) { i.data.push(t); }) : this.data.push(t), this.inited) this.removeData(e);else if (A(e)) for (; e > 0;) this.data.shift(), e--; this.invalidateData(); }, e.prototype.removeData = function (t) { if (A(t)) for (; t > 0;) { var e = this.mainDataSet.getIndex(0); e && this.mainDataSet.remove(e), this.dataUsers.each(function (t) { var e = t.dataItems.getIndex(0); e && t.dataItems.remove(e); }), this.data.shift(), this._parseDataFrom--, t--; } }, e.prototype.invalidateData = function () { this.disabled || this.isTemplate || (Fs.addToInvalidComponents(this), Ls.requestFrame(), this.dataInvalid = !0, pe(this.dataUsers.iterator(), function (t) { t.invalidateDataItems(); })); }, e.prototype.invalidateDataUsers = function () { pe(this.dataUsers.iterator(), function (t) { t.invalidate(); }); }, e.prototype.invalidateDataItems = function () { this.disabled || this.isTemplate || (It(Fs.invalidDataItems, this), Ls.requestFrame(), this.dataItemsInvalid = !0, pe(this.dataUsers.iterator(), function (t) { t.invalidateDataItems(); })); }, e.prototype.invalidateDataRange = function () { this.disabled || this.isTemplate || (this.dataRangeInvalid = !0, It(Fs.invalidDataRange, this), Ls.requestFrame()); }, e.prototype.validateDataRange = function () { St(Fs.invalidDataRange, this), this.dataRangeInvalid = !1, this.startIndex == this._prevStartIndex && this.endIndex == this._prevEndIndex || (this.rangeChangeUpdate(), this.appendDataItems(), this.invalidate(), this.dispatchImmediately("datarangechanged")); }, e.prototype.sliceData = function () { this._workingStartIndex = this.startIndex, this._workingEndIndex = this.endIndex; }, e.prototype.rangeChangeUpdate = function () { this.sliceData(), this._prevStartIndex = this.startIndex, this._prevEndIndex = this.endIndex; }, e.prototype.appendDataItems = function () { for (var t = this.endIndex, e = this.startIndex; e < t; e++) (i = this.dataItems.getIndex(e)) && (i.__disabled = !1); for (e = 0; e < this.startIndex; e++) (i = this.dataItems.getIndex(e)).__disabled = !0; for (e = this.endIndex; e < this.dataItems.length; e++) { var i; (i = this.dataItems.getIndex(e)).__disabled = !0; } }, e.prototype.invalidateRawData = function () { this.disabled || this.isTemplate || (It(Fs.invalidRawDatas, this), Ls.requestFrame(), this.rawDataInvalid = !0, pe(this.dataUsers.iterator(), function (t) { t.invalidateRawData(); })); }, e.prototype.validateRawData = function () { var t = this; St(Fs.invalidRawDatas, this), pe(this.mainDataSet.iterator(), function (e) { e && t.updateDataItem(e); }); }, e.prototype.dispose = function () { var e = this; this.mainDataSet.template.clones.clear(), Qt(this._dataSources, function (t, i) { e.removeDispose(i); }), t.prototype.dispose.call(this); }, e.prototype.disposeData = function () { this.mainDataSet.template.clones.clear(), mt(this._dataDisposers, function (t) { t.dispose(); }), pe(this.dataUsers.iterator(), function (t) { t.disposeData(); }), this._dataDisposers.length = 0, this._startIndex = void 0, this._endIndex = void 0, this.mainDataSet.clear(), this.mainDataSet.template.clones.clear(), this._dataSets && this._dataSets.clear(); }, e.prototype.getDataItem = function (t) { return this.mainDataSet.create(); }, e.prototype.validateData = function () { if (this.dispatchImmediately("beforedatavalidated"), this.dataInvalid = !1, Fs.removeFromInvalidComponents(this), !this.__disabled) { if (this.dataValidationProgress = 0, this._prevStartIndex = void 0, this._prevEndIndex = void 0, this._startIndex = void 0, this._endIndex = void 0, this.dataFields.data && this.dataItem) { var t = this.dataItem.dataContext; this._data = t[this.dataFields.data]; } if (0 === this._parseDataFrom && this.data.length > 0 && this.disposeData(), this.data.length > 0) { var e = this.preloader; pe(this.dataUsers.iterator(), function (t) { t._startIndex = void 0, t._endIndex = void 0; }); for (var i = 0, n = Date.now(), r = this._parseDataFrom, s = this.data.length, o = this; r < s; r++) { var a = function () { var t = o.data[r]; if (o._usesData) { var s = o.getDataItem(t); o.processDataItem(s, t); } if (o.dataUsers.each(function (e) { if (0 == e.data.length) { var i = e.getDataItem(t); e.processDataItem(i, t); } }), 100 == ++i && (i = 0, Date.now() - n > o.parsingStepDuration && r < o.data.length - 10)) return o._parseDataFrom = r + 1, e && (r / o.data.length > .5 && !e.visible || (e.progress = r / o.data.length)), o.dataValidationProgress = r / o.data.length, r = o.data.length, o.invalidateData(), { value: void 0 }; }(); if ("object" == typeof a) return a.value; } e && (e.progress = 1), this.dataUsers.each(function (t) { t.hidden && t.hide(0); }); } this.dataValidationProgress = 1, this._parseDataFrom = 0, this.invalidateDataItems(), this._internalDefaultsApplied || this.applyInternalDefaults(), this.dispatch("datavalidated"); } }, e.prototype.validateDataItems = function () { St(Fs.invalidDataItems, this), this.dataItemsInvalid = !1, this.invalidateDataRange(), this.invalidate(), this.dispatch("dataitemsvalidated"); }, Object.defineProperty(e.prototype, "data", { get: function get() { return this._data || (this._data = []), this._adapterO ? this._adapterO.apply("data", this._data) : this._data; }, set: function set(t) { this.setData(t); }, enumerable: !0, configurable: !0 }), e.prototype.setData = function (t) { this._parseDataFrom = 0, this.disposeData(), this._data = t, t && t.length > 0 && this.invalidateData(); }, e.prototype.getDataSource = function (t) { var e = this; return S(this._dataSources[t]) || (this._dataSources[t] = new Da(), this._dataSources[t].component = this, this.setDataSourceEvents(this._dataSources[t], t), this._dataSources[t].adapter.add("dateFields", function (t) { return e.dataSourceDateFields(t); }), this._dataSources[t].adapter.add("numberFields", function (t) { return e.dataSourceNumberFields(t); }), this.events.on("inited", function () { e.loadData(t); }, this, !1)), this._dataSources[t]; }, Object.defineProperty(e.prototype, "dataSource", { get: function get() { return this._dataSources.data || this.getDataSource("data"), this._dataSources.data; }, set: function set(t) { var e = this; this._dataSources.data && this.removeDispose(this._dataSources.data), this._dataSources.data = t, this._dataSources.data.component = this, this.events.on("inited", function () { e.loadData("data"); }, this, !1), this.setDataSourceEvents(t, "data"); }, enumerable: !0, configurable: !0 }), e.prototype.loadData = function (t) { this._dataSources[t].load(); }, e.prototype.dataSourceDateFields = function (t) { return t; }, e.prototype.dataSourceNumberFields = function (t) { return t; }, e.prototype.populateDataSourceFields = function (t, e, i) { return mt(i, function (i) { e[i] && -1 === ft(t, e[i]) && t.push(e[i]); }), t; }, e.prototype.setDataSourceEvents = function (t, e) { var i = this; t.events.on("started", function (t) { var e = i.preloader; e && (e.progress = 0); }, void 0, !1), t.events.on("loadstarted", function (t) { var e = i.preloader; e && (e.progress = .25); }, void 0, !1), t.events.on("loadended", function (t) { var e = i.preloader; e && (e.progress = .5); }, void 0, !1), t.events.on("parseended", function (t) { var e = i.preloader; e && (e.progress = .75); }, void 0, !1), t.events.on("ended", function (t) { var e = i.preloader; e && (e.progress = 1); }, void 0, !1), t.events.on("error", function (t) { var e = i.preloader; e && (e.progress = 1), i.openModal(t.message); }, void 0, !1), e && t.events.on("done", function (n) { var r = i.preloader; r && (r.progress = 1), "data" != e || F(n.data) || (n.data = [n.data]), t.incremental && "data" == e && i.data.length ? i.addData(n.data, t.keepCount ? n.data.length : 0) : t.updateCurrentData && "data" == e && i.data.length ? (mt(i.data, function (t, e) { S(n.data[e]) && Qt(t, function (i, r) { S(n.data[e][i]) && (t[i] = n.data[e][i]); }); }), i.invalidateRawData()) : i[e] = n.data; }); }, Object.defineProperty(e.prototype, "responsive", { get: function get() { return this._responsive || (this._responsive = new ka(), this._responsive.component = this), this._responsive; }, set: function set(t) { this._responsive = t, this._responsive.component = this; }, enumerable: !0, configurable: !0 }), e.prototype.zoom = function (t, e, i, n) { var r = this; void 0 === e && (e = !1), void 0 === i && (i = !1); var s = t.start, o = t.end, a = t.priority; if ("end" == a && 1 == o && 0 != s && s < this.start && (a = "start"), "start" == a && 0 == s && o > this.end && (a = "end"), A(n) || (n = this.maxZoomDeclination), !A(s) || !A(o)) return { start: this.start, end: this.end }; if (this._finalStart != s || this._finalEnd != o) { var l = this.maxZoomFactor / this.minZoomCount, h = this.maxZoomFactor / this.maxZoomCount; if ("start" == a ? (this.maxZoomCount > 0 && 1 / (o - s) < h && (o = s + 1 / h), 1 / (o - s) > l && (o = s + 1 / l), o > 1 && o - s < 1 / l && (s = o - 1 / l)) : (this.maxZoomCount > 0 && 1 / (o - s) < h && (s = o - 1 / h), 1 / (o - s) > l && (s = o - 1 / l), s < 0 && o - s < 1 / l && (o = s + 1 / l)), s < -n && (s = -n), 1 / (o - s) > l && (o = s + 1 / l), o > 1 + n && (o = 1 + n), 1 / (o - s) > l && (s = o - 1 / l), this._finalEnd = o, this._finalStart = s, this.skipRangeEvent = e, this.rangeChangeDuration > 0 && !i) { var u = this.rangeChangeAnimation; if (u && u.progress < 1) { var p = u.animationOptions; if (p.length > 1) { if (p[0].to == s && p[1].to == o) return { start: s, end: o }; this.rangeChangeAnimation.stop(); } } this.dispatchImmediately("rangechangestarted"), this.rangeChangeAnimation && this.rangeChangeAnimation.kill(), u = this.animate([{ property: "start", to: s }, { property: "end", to: o }], this.rangeChangeDuration, this.rangeChangeEasing), this.rangeChangeAnimation = u, u && !u.isFinished() ? u.events.on("animationended", function () { r.dispatchImmediately("rangechangeended"); }) : this.dispatchImmediately("rangechangeended"); } else this.start = s, this.end = o; } return { start: s, end: o }; }, e.prototype.zoomToIndexes = function (t, e, i, n) { if (A(t) && A(e)) { var r = t / this.dataItems.length, s = e / this.dataItems.length; this.zoom({ start: r, end: s }, i, n); } }, Object.defineProperty(e.prototype, "zoomFactor", { get: function get() { return R(1 / (this.end - this.start), 1, this.maxZoomFactor); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxZoomFactor", { get: function get() { return this.getPropertyValue("maxZoomFactor"); }, set: function set(t) { this.setPropertyValue("maxZoomFactor", t) && (1 == t && (this.maxZoomDeclination = 0), this.invalidateDataRange()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxZoomDeclination", { get: function get() { return this.getPropertyValue("maxZoomDeclination"); }, set: function set(t) { this.setPropertyValue("maxZoomDeclination", t) && this.invalidateDataRange(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startIndex", { get: function get() { return A(this._startIndex) || (this._startIndex = 0), this._startIndex; }, set: function set(t) { this._startIndex = R(Math.round(t), 0, this.dataItems.length), this.start = this.indexToPosition(this._startIndex); }, enumerable: !0, configurable: !0 }), e.prototype.indexToPosition = function (t) { return t / this.dataItems.length; }, Object.defineProperty(e.prototype, "endIndex", { get: function get() { return A(this._endIndex) || (this._endIndex = this.dataItems.length), this._endIndex; }, set: function set(t) { this._endIndex = R(Math.round(t), 0, this.dataItems.length), this.end = this.indexToPosition(this._endIndex); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "start", { get: function get() { return this._adapterO ? this._adapterO.apply("start", this._start) : this._start; }, set: function set(t) { if (this._start != t) { this._start = t; var e = Math.max(0, Math.floor(this.dataItems.length * t) || 0); this._startIndex = Math.min(e, this.dataItems.length), this.invalidateDataRange(), this.invalidate(), this.dispatchImmediately("startchanged"), this.dispatch("startendchanged"); } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "end", { get: function get() { return this._adapterO ? this._adapterO.apply("end", this._end) : this._end; }, set: function set(t) { this._end != t && (this._end = t, this._endIndex = Math.min(this.dataItems.length, Math.ceil(this.dataItems.length * t) || 0), this.invalidateDataRange(), this.invalidate(), this.dispatchImmediately("endchanged"), this.dispatch("startendchanged")); }, enumerable: !0, configurable: !0 }), e.prototype.removeFromInvalids = function () { t.prototype.removeFromInvalids.call(this), Fs.removeFromInvalidComponents(this), St(Fs.invalidDataItems, this), St(Fs.invalidDataRange, this), St(Fs.invalidRawDatas, this); }, Object.defineProperty(e.prototype, "dataItems", { get: function get() { if ("" != this._currentDataSetId) { var t = this.dataSets.getKey(this._currentDataSetId); if (t) return t; } return this._dataItems; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dataSets", { get: function get() { return this._dataSets || (this._dataSets = new Ds()), this._dataSets; }, enumerable: !0, configurable: !0 }), e.prototype.setDataSet = function (t) { if (this._currentDataSetId != t) { if (this.dataSets.getKey(t)) return this.dataItems.each(function (t) { t.__disabled = !0; }), this._currentDataSetId = t, this.invalidateDataRange(), this._prevStartIndex = void 0, this.dataItems.each(function (t) { t.__disabled = !1; }), !0; if ("" != this._currentDataSetId) return this.dataItems.each(function (t) { t.__disabled = !0; }), this._currentDataSetId = "", this.invalidateDataRange(), this._prevStartIndex = void 0, this.dataItems.each(function (t) { t.__disabled = !1; }), !0; } return !1; }, Object.defineProperty(e.prototype, "currentDataSetId", { get: function get() { return this._currentDataSetId; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "mainDataSet", { get: function get() { return this._dataItems; }, enumerable: !0, configurable: !0 }), e.prototype._updateDataItemIndexes = function (t) { for (var e = this.mainDataSet.values, i = e.length, n = t; n < i; ++n) e[n]._index = n; }, e.prototype.handleDataItemAdded = function (t) { t.newValue.component = this, this._updateDataItemIndexes(t.index), this.dataItemsInvalid || this.invalidateDataItems(); }, e.prototype.handleDataItemRemoved = function (t) { this._updateDataItemIndexes(t.index), this.dataItemsInvalid || this.invalidateDataItems(); }, e.prototype.bindDataField = function (t, e) { this.dataFields[t] = e, this.invalidateDataRange(); }, e.prototype.invalidateProcessedData = function () { this.resetProcessedRange(), this.invalidateDataRange(); }, e.prototype.resetProcessedRange = function () { this._prevEndIndex = null, this._prevStartIndex = null; }, Object.defineProperty(e.prototype, "dataUsers", { get: function get() { var t = this; return this._dataUsers || (this._dataUsers = new Ns(), this._disposers.push(new fs(function () { pe(t._dataUsers.iterator(), function (t) { t.dispose(); }); }))), this._dataUsers; }, enumerable: !0, configurable: !0 }), e.prototype.clone = function () { var e = t.prototype.clone.call(this); return e.dataFields = ni(this.dataFields, {}), e; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.data = e.data, this.sequencedInterpolation = e.sequencedInterpolation, this.sequencedInterpolationDelay = e.sequencedInterpolationDelay, this.interpolationDuration = e.interpolationDuration, this.interpolationEasing = e.interpolationEasing; }, e.prototype.reinit = function () { this._inited = !1, this.deepInvalidate(); }, e.prototype.getExporting = function () { var e = t.prototype.getExporting.call(this); return e.adapter.has("data", this._exportData, null, this) || (e.adapter.add("data", this._exportData, null, this), this.events.on("datavalidated", function (t) { e.menu && e.menu.invalidate(), e.handleDataUpdated(); })), e; }, e.prototype._exportData = function (t) { return t.data = this.data, t; }, e.prototype.setDisabled = function (e) { var i = t.prototype.setDisabled.call(this, e); return i && this.invalidateData(), i; }, e.prototype.setShowOnInit = function (e) { e != this.getPropertyValue("showOnInit") && (!e || this.inited || this.hidden ? this._showOnInitDisposer2 && this._showOnInitDisposer2.dispose() : (this._showOnInitDisposer2 = this.events.once("dataitemsvalidated", this.hideInitially, this, !1), this._disposers.push(this._showOnInitDisposer2))), t.prototype.setShowOnInit.call(this, e); }, e.prototype.setBaseId = function (e) { e != this._baseId && this.dataInvalid && (this.dataInvalid = !1, Fs.removeFromInvalidComponents(this), this._baseId = e, this.invalidateData()), t.prototype.setBaseId.call(this, e); }, Object.defineProperty(e.prototype, "minZoomCount", { get: function get() { return this.getPropertyValue("minZoomCount"); }, set: function set(t) { this.setPropertyValue("minZoomCount", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxZoomCount", { get: function get() { return this.getPropertyValue("maxZoomCount"); }, set: function set(t) { this.setPropertyValue("maxZoomCount", t); }, enumerable: !0, configurable: !0 }), e.prototype._systemCheckIfValidate = function () { return !(this.dataInvalid || this.dataProvider && this.dataProvider.dataInvalid); }, e.prototype.asFunction = function (e) { return "interpolationEasing" == e || "rangeChangeEasing" == e || t.prototype.asIs.call(this, e); }, e; }(_a); Fs.registeredClasses.Component = Fa; var Ma = function (t) { function e() { var e = t.call(this) || this; return e.isOversized = !1, e.className = "Label", e.fill = new ta().getFor("text"), e.wrap = !1, e.truncate = !1, e.fullWords = !0, e.ellipsis = "...", e.textAlign = "start", e.textValign = "top", e.layout = "absolute", e.baseLineRatio = -.27, e.events.on("maxsizechanged", function () { e.inited && e.handleMaxSize(); }, e, !1), e.events.once("validated", e.handleValidate, e, !1), e.applyTheme(), e; } return n(e, t), e.prototype.afterDraw = function () { t.prototype.afterDraw.call(this), this.validatePosition(); }, e.prototype.setPaper = function (e) { var i = t.prototype.setPaper.call(this, e); return i && this.hardInvalidate(), i; }, e.prototype.handleValidate = function () { !this.currentText && !this.text || 0 != this.bbox.width && 0 != this.bbox.height || Fs.events.once("exitframe", this.hardInvalidate, this); }, e.prototype.handleMaxSize = function () { this.bbox.width > this.availableWidth || this.bbox.width < this.availableWidth && (this.isOversized || this.truncate) || this.bbox.height > this.availableHeight || this.bbox.height < this.availableHeight && this.isOversized ? this.invalidate() : this.alignSVGText(); }, e.prototype.arrange = function () {}, e.prototype.updateCurrentText = function () { var t, e; li(this.html) && this.paper.supportsForeignObject() ? (t = "html", e = this.html) : (t = "svg", e = this.text), S(e) && "" !== e && (e = this.populateString(e, this.dataItem)), "html" == t ? this._adapterO && (e = this._adapterO.apply("htmlOutput", e)) : this._adapterO && (e = this._adapterO.apply("textOutput", e)); var i = e != this.currentText || t != this._currentFormat; return this.currentText = e, this._currentFormat = t, i; }, e.prototype.hardInvalidate = function () { this._prevStatus = "", this.invalidate(); }, e.prototype.getLineBBox = function (t) { var e = t && t.element, i = e && e.node; i && i.parentNode && (t.bbox = e.getBBox()); }, e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.bbox.width, i = this.bbox.height, n = this.topParent; if (!n || n.maxWidth && n.maxHeight) { var r = W(this.availableWidth - this.pixelPaddingLeft - this.pixelPaddingRight, 0), s = W(this.availableHeight - this.pixelPaddingTop - this.pixelPaddingBottom, 0), o = s + "," + r + this.wrap + this.truncate + this.fullWords + this.rtl + this.ellipsis; if (this.updateCurrentText() || !this.inited || this._prevStatus != o) { this._measuredWidth = 0, this._measuredHeight = 0, this.isOversized = !1; var a = this._currentFormat, l = this.currentText; if (S(l) && "" != l) { var h = l.split("\n"); this._prevStatus = o, this.textAlign = this.textAlign; var u = this.group.getAttr("display"); if ("none" == u && this.group.removeAttr("display"), this.textPathElement && this.textPathElement.removeChildren(), "svg" === a) { this.element.removeAttr("display"); var p = this.element; this.resetBBox(); for (var c = 0, d = "", f = 0; f < h.length; f++) { var g = h[f]; if ("" != g) { var y = dr().chunk(g, null, this.ignoreFormatting), m = 0, v = !0, b = !1, x = this.getLineInfo(f); x ? x.element.textContent = "" : (x = { element: this.getSVGLineElement("", 0), complex: !1 }, p.add(x.element)), x.element.removeAttr("display"), x.element.removeChildren(), this.textPathElement && x.element.add(this.textPathElement); for (var _ = 0; _ < y.length; _++) { _ && (x.complex = !0); var P = y[_]; if ("format" === P.type) d = P.text;else { if (b) continue; x.text = P.text, x.style = dr().translateStyleShortcuts(d); var w = this.getSvgElement(x.text, x.style); if (this.textPathElement ? this.textPathElement.add(w) : x.element.add(w), this.getLineBBox(x), x.bbox.width = Math.ceil(x.bbox.width), m < x.bbox.height && (m = x.bbox.height), (this.wrap || this.truncate) && x.bbox.width > r) { this.isOversized = !0; var C = x.element.textContent, O = x.bbox.width / C.length, I = X(Math.ceil((x.bbox.width - r) / O), C.length); if (this.truncate) { var D = !1, k = x.element.node; if (k && k.childNodes) for (var T = x.element.node.childNodes.length - 1; T >= 0; T--) { var A = x.element.node.childNodes[T]; if (D && x.bbox.width <= r && (A.textContent += " " + this.ellipsis, x.bbox = x.element.getBBox(), x.bbox.width = Math.floor(x.bbox.width), x.bbox.width <= r)) break; D = !1; var V = A.textContent; for (C = x.element.textContent, I = X(Math.ceil((x.bbox.width - r) / O), C.length); x.bbox.width > r && I <= C.length && I > 0;) (L = W(V.length - I - this.ellipsis.length, 1)) <= 1 && (I = 0, T > 0 && (D = !0, x.element.node.removeChild(A))), (V = vi(V, L, this.ellipsis, this.fullWords, this.rtl)).length > L && this.fullWords && (V = vi(V, L, this.ellipsis, !1, this.rtl)), A.textContent = V, x.bbox = x.element.getBBox(), x.bbox.width = Math.floor(x.bbox.width), I = Math.ceil(1.1 * I); b = !0; } } else if (x.element.node) { for (var F = x.element.node.lastChild, M = void 0; x.bbox.width > r && I <= C.length && I > 0;) { var L = W(P.text.length - I, 1); v ? M = mi(P.text, L, !0, this.rtl) : ((M = mi(P.text, L, !0, this.rtl))[0].length > L || 1 === L) && (x.element.node.removeChild(F), I = 0), I > 0 && (F.textContent = dr().cleanUp(bi(M.shift()))), x.bbox = x.element.getBBox(), x.bbox.width = Math.floor(x.bbox.width), I = Math.ceil(1.1 * I); } if (M.length > 0) { var E = ""; S(M) && (this.rtl ? E += M.join("") + d : E += d + M.join("").replace(/([\[\]]{1})/g, "$1$1")); for (var R = _ + 1; R < y.length; R++) "value" == y[R].type ? E += y[R].text.replace(/([\[\]]{1})/g, "$1$1") : E += y[R].text; h.splice(f + 1, 0, E); } b = !0; } } this.bbox.width < x.bbox.width && (this.bbox.width = x.bbox.width), this.bbox.height = c + m, this.textPathElement ? x.element.attr({ dy: -this.paddingBottom.toString() }) : x.element.attr({ x: "0", y: c + m, dy: j(this.baseLineRatio * m, 3).toString() }), v = !1; } } var B = x.element.node; B && (F = B.lastChild) && (F.textContent = this.rtl ? _i(F.textContent) : xi(F.textContent)), c += m, this.addLineInfo(x, f); } else { var N = this.getSVGLineElement("", 0); N.add(this.getSvgElement(".", dr().translateStyleShortcuts(d))), p.add(N); var H = Math.ceil(N.getBBox().height); H > 0 && (c += H), p.removeElement(N); } } this.maybeHideOversized(), this._measuredWidth = W(this.bbox.width, this.pixelWidth - this.pixelPaddingLeft - this.pixelPaddingRight), this._measuredHeight = W(this.bbox.height, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom), this.alignSVGText(), this.bbox.width = this._measuredWidth, this.bbox.height = this._measuredHeight, i == this._measuredHeight && e == this._measuredWidth || this.dispatch("transformed"), this.hideUnused(h.length); } else { this.element.removeAttr("display"), this.resetBBox(), (p = this.element).removeChildren(); var Y = this.paper.foreignObject(); p.add(Y); var z = this.getHTMLLineElement(l); Y.node.appendChild(z), z.style.display = "inline-block"; var U = z.clientWidth, G = z.clientHeight; z.style.display = "block", this._bbox = { x: 0, y: 0, width: U, height: G }, Y.attr({ width: U, height: G }), this.maybeHideOversized(), this._measuredWidth = W(this.bbox.width, this.pixelWidth - this.pixelPaddingLeft - this.pixelPaddingRight), this._measuredHeight = W(this.bbox.height, this.pixelHeight - this.pixelPaddingTop - this.pixelPaddingBottom), this.bbox.width = this._measuredWidth, this.bbox.height = this._measuredHeight, this.truncate && (z.style.overflow = "hidden"), (U > r || G > s) && (this.isOversized = !0); } this.setStyles(), this.updateCenter(), this.updateBackground(), "none" == u && this.group.attr({ display: "none" }), this.pathElement && this.paper.appendDef(this.pathElement); } else this.element.attr({ display: "none" }); } } else n.events.once("maxsizechanged", this.hardInvalidate, this, !1); }, e.prototype.maybeHideOversized = function () { this.hideOversized && (this.availableWidth < this.bbox.width || this.availableHeight < this.bbox.height ? (this.element.attr({ display: "none" }), this.isOversized = !0) : (this.element.removeAttr("display"), this.isOversized = !1)); }, e.prototype.alignSVGText = function () { var t = this.element, e = t.node.children || t.node.childNodes; if (e && (!e || 0 != e.length)) { var i = this._measuredWidth, n = this._measuredHeight; this.pixelPaddingLeft, this.pixelPaddingRight, this.pixelPaddingTop, this.pixelPaddingBottom; for (var r = e.length - 1; r >= 0; r--) { var s = e[r]; if (s.setAttribute("text-anchor", this.textAlign), this.textPathElement) s.removeAttribute("x"), s.removeAttribute("y");else { switch (this.textAlign) { case "middle": s.setAttribute("x", (i / 2).toString() + "px"); break; case "end": this.rtl || s.setAttribute("x", i.toString()); break; default: this.rtl ? s.setAttribute("x", i.toString()) : s.removeAttribute("text-anchor"); } var o = w(s.getAttribute("y")); switch (this.textValign) { case "middle": s.setAttribute("y", (o + (n - this.bbox.height) / 2).toString()); break; case "bottom": s.setAttribute("y", (o + n - this.bbox.height).toString()); break; default: s.setAttribute("y", o.toString()); } } } } }, e.prototype.getSVGLineElement = function (t, e) { var i = this.paper.addGroup("text"); return i.textContent = t, i.attr({ x: "0" }), S(e) && i.attr({ y: e.toString() }), (this.truncate || this.wrap) && i.attr({ overflow: "hidden" }), this.rtl && i.attr({ direction: "rtl" }), i; }, e.prototype.resetBBox = function () { this._bbox = { x: 0, y: 0, width: 0, height: 0 }; }, e.prototype.getHTMLLineElement = function (t) { var e = document.createElement("div"); switch (e.innerHTML = t, this.textAlign) { case "middle": e.style.textAlign = "center"; break; case "end": e.style.textAlign = "right"; } return this.wrap ? e.style.wordWrap = "break-word" : e.style.whiteSpace = "nowrap", this.rtl && (e.style.direction = "rtl"), S(this.fill) && (e.style.color = this.fill.toString()), e; }, e.prototype.setStyles = function () { var t = this.element; !this.selectable || this.draggable || this.resizable || this.swipeable ? t.addStyle({ webkitUserSelect: "none", msUserSelect: "none" }) : this.selectable && (t.removeStyle("webkitUserSelect"), t.removeStyle("msUserSelect")); }, e.prototype.hideUnused = function (t) { this.initLineCache(); var e = this.getCache("lineInfo"); if (e.length >= t) for (var i = t; i < e.length; i++) { var n = e[i]; n && n.element && n.element.attr({ display: "none" }); } }, Object.defineProperty(e.prototype, "text", { get: function get() { return this.getPropertyValue("text"); }, set: function set(t) { this.setPropertyValue("text", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "path", { get: function get() { return this.getPropertyValue("path"); }, set: function set(t) { this.setPropertyValue("path", t, !0) && (this.pathElement && this.pathElement.dispose(), this.textPathElement && this.textPathElement.dispose(), this.pathElement = this.paper.add("path"), this.pathElement.attr({ d: t }), this.pathElement.attr({ id: "text-path-" + this.uid }), this._disposers.push(this.pathElement), this.textPathElement = this.paper.addGroup("textPath"), this.textPathElement.attrNS(To, "xlink:href", "#text-path-" + this.uid), this.textPathElement.attr({ path: t }), this._disposers.push(this.textPathElement), this.hardInvalidate()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "locationOnPath", { get: function get() { return this.getPropertyValue("locationOnPath"); }, set: function set(t) { this.setPropertyValue("locationOnPath", t), this.textPathElement && this.textPathElement.attr({ startOffset: 100 * t + "%" }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "baseLineRatio", { get: function get() { return this.getPropertyValue("baseLineRatio"); }, set: function set(t) { this.setPropertyValue("baseLineRatio", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "wrap", { get: function get() { return this.getPropertyValue("wrap"); }, set: function set(t) { this.resetBBox(), this.setPropertyValue("wrap", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "truncate", { get: function get() { return this.getPropertyValue("truncate"); }, set: function set(t) { this.resetBBox(), this.setPropertyValue("truncate", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fullWords", { get: function get() { return this.getPropertyValue("fullWords"); }, set: function set(t) { this.setPropertyValue("fullWords", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "ellipsis", { get: function get() { return this.getPropertyValue("ellipsis"); }, set: function set(t) { this.setPropertyValue("ellipsis", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "selectable", { get: function get() { return this.getPropertyValue("selectable"); }, set: function set(t) { this.setPropertyValue("selectable", t, !0), this.setStyles(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "textAlign", { get: function get() { return this.getPropertyValue("textAlign"); }, set: function set(t) { this.setPropertyValue("textAlign", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "textValign", { get: function get() { return this.getPropertyValue("textValign"); }, set: function set(t) { this.setPropertyValue("textValign", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "html", { get: function get() { return this.getPropertyValue("html"); }, set: function set(t) { this.setPropertyValue("html", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hideOversized", { get: function get() { return this.getPropertyValue("hideOversized"); }, set: function set(t) { this.setPropertyValue("hideOversized", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "ignoreFormatting", { get: function get() { return this.getPropertyValue("ignoreFormatting"); }, set: function set(t) { this.setPropertyValue("ignoreFormatting", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.measureElement = function () {}, e.prototype.getLineInfo = function (t) { this.initLineCache(); var e = this.getCache("lineInfo"); return e.length > t ? e[t] : void 0; }, e.prototype.addLineInfo = function (t, e) { this.initLineCache(), this.getCache("lineInfo")[e] = t; }, e.prototype.initLineCache = function () { S(this.getCache("lineInfo")) || this.setCache("lineInfo", [], 0); }, e.prototype.setDataItem = function (e) { this._sourceDataItemEvents && this._sourceDataItemEvents.dispose(), e && (this._sourceDataItemEvents = new gs([e.events.on("valuechanged", this.invalidate, this, !1), e.events.on("workingvaluechanged", this.invalidate, this, !1), e.events.on("calculatedvaluechanged", this.invalidate, this, !1), e.events.on("propertychanged", this.invalidate, this, !1)])), t.prototype.setDataItem.call(this, e); }, Object.defineProperty(e.prototype, "availableWidth", { get: function get() { return S(this.maxWidth) ? this.maxWidth : this.pixelWidth; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "availableHeight", { get: function get() { return S(this.maxHeight) ? this.maxHeight : this.pixelHeight; }, enumerable: !0, configurable: !0 }), e.prototype.getSvgElement = function (t, e) { var i = this.paper.add("tspan"); return i.textContent = t, e && i.node.setAttribute("style", e), i; }, e.prototype.deepInvalidate = function () { t.prototype.deepInvalidate.call(this), this.hardInvalidate(); }, Object.defineProperty(e.prototype, "readerTitle", { get: function get() { var t = this.getPropertyValue("readerTitle"); return t || (t = this.populateString(Di(li(this.html) ? this.html : this.text))), t; }, set: function set(t) { t = C(t), this.setPropertyValue("readerTitle", t) && this.applyAccessibility(); }, enumerable: !0, configurable: !0 }), e; }(_a); Fs.registeredClasses.Label = Ma, Ta.push({ relevant: Aa.heightXS, state: function state(t, e) { if (t instanceof Ma && t.parent && t.parent.isBaseSprite) { var i = t.states.create(e); return i.properties.disabled = !0, i; } return null; } }); var ja = function (t) { function e() { var e = t.call(this) || this; return e.className = "RoundedRectangle", e.element = e.paper.add("path"), e.cornerRadius(3, 3, 3, 3), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.innerWidth, i = this.innerHeight; if (A(e) && A(i)) { var n = X(e, i) / 2, r = hi(this.cornerRadiusTopLeft, n), s = hi(this.cornerRadiusTopRight, n), o = hi(this.cornerRadiusBottomRight, n), a = hi(this.cornerRadiusBottomLeft, n), l = X(Math.abs(e / 2), Math.abs(i / 2)), h = R(r, 0, l), u = R(s, 0, l), p = R(o, 0, l), c = R(a, 0, l), d = "M" + h + ",0 L" + (e - u) + ",0 a" + u + "," + u + " 0 0 1 " + u + "," + u + " L" + e + "," + (i - p) + " a" + p + "," + p + " 0 0 1 -" + p + "," + p + " L" + c + "," + i + " a" + c + "," + c + " 0 0 1 -" + c + ",-" + c + " L0," + h + " a" + h + "," + h + " 0 0 1 " + h + ",-" + h + " Z"; this.path = d; } }, e.prototype.cornerRadius = function (t, e, i, n) { this.cornerRadiusTopLeft = t, this.cornerRadiusTopRight = e, this.cornerRadiusBottomLeft = i, this.cornerRadiusBottomRight = n; }, Object.defineProperty(e.prototype, "cornerRadiusTopLeft", { get: function get() { return this.getPropertyValue("cornerRadiusTopLeft"); }, set: function set(t) { this.setPercentProperty("cornerRadiusTopLeft", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cornerRadiusTopRight", { get: function get() { return this.getPropertyValue("cornerRadiusTopRight"); }, set: function set(t) { this.setPercentProperty("cornerRadiusTopRight", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cornerRadiusBottomRight", { get: function get() { return this.getPropertyValue("cornerRadiusBottomRight"); }, set: function set(t) { this.setPercentProperty("cornerRadiusBottomRight", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cornerRadiusBottomLeft", { get: function get() { return this.getPropertyValue("cornerRadiusBottomLeft"); }, set: function set(t) { this.setPercentProperty("cornerRadiusBottomLeft", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.measureElement = function () {}, Object.defineProperty(e.prototype, "bbox", { get: function get() { return this.definedBBox ? this.definedBBox : this.isMeasured ? { x: 0, y: 0, width: this.innerWidth, height: this.innerHeight } : { x: 0, y: 0, width: 0, height: 0 }; }, enumerable: !0, configurable: !0 }), e; }(ba); Fs.registeredClasses.RoundedRectangle = ja; var La = function (t) { function e() { var e = t.call(this) || this; e.className = "Button", e.tooltipY = 0, e.iconPosition = "left", e.layout = "horizontal", e.contentAlign = "center", e.contentValign = "middle", e.padding(8, 16, 8, 16); var i = new ta(), n = e.background; n.fill = i.getFor("secondaryButton"), n.stroke = i.getFor("secondaryButtonStroke"), n.fillOpacity = 1, n.strokeOpacity = 1, n.cornerRadius(3, 3, 3, 3), e.label = new Ma(), e.label.fill = i.getFor("secondaryButtonText"); var r = n.states.create("hover"); r.properties.fillOpacity = 1, r.properties.fill = i.getFor("secondaryButtonHover"); var s = n.states.create("down"); return s.transitionDuration = 100, s.properties.fill = i.getFor("secondaryButtonDown"), s.properties.fillOpacity = 1, e.role = "button", e.focusable = !0, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "icon", { get: function get() { return this.getPropertyValue("icon"); }, set: function set(t) { var e = this.getPropertyValue("icon"); e && (e.parent = void 0), t && (this.setPropertyValue("icon", t), t.parent = this, t.interactionsEnabled = !1, this.iconPosition = this.iconPosition, this._disposers.push(t)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "iconPosition", { get: function get() { return this.getPropertyValue("iconPosition"); }, set: function set(t) { this.setPropertyValue("iconPosition", t), this.icon && ("left" == t ? this.icon.toBack() : this.icon.toFront()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "label", { get: function get() { return this._label; }, set: function set(t) { this._label && this.removeDispose(this._label), this._label = t, t && (t.parent = this, t.interactionsEnabled = !1, this._disposers.push(this._label)); }, enumerable: !0, configurable: !0 }), e.prototype.createBackground = function () { return new ja(); }, e; }(_a); Fs.registeredClasses.Button = La; var Ea = function (t) { function e() { var e = t.call(this) || this; return e.className = "Circle", e.element = e.paper.add("circle"), e.setPercentProperty("radius", h(100)), e.setPropertyValue("horizontalCenter", "middle"), e.setPropertyValue("verticalCenter", "middle"), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this), this.element.attr({ r: this.pixelRadius }); }, Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelRadius", { get: function get() { return hi(this.radius, X(this.innerWidth / 2, this.innerHeight / 2)); }, enumerable: !0, configurable: !0 }), e.prototype.measureElement = function () { var t = this.pixelRadius; this._bbox = { x: -t, y: -t, width: 2 * t, height: 2 * t }; }, e; }(ba); Fs.registeredClasses.Circle = Ea; var Ra = function (t) { function e() { var e = t.call(this) || this; return e.className = "Ellipse", e.element = e.paper.add("ellipse"), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this), this.element.attr({ rx: this.radius }), this.element.attr({ ry: this.radiusY }); }, Object.defineProperty(e.prototype, "radiusY", { get: function get() { return this.innerHeight / 2; }, set: function set(t) { this.height = 2 * t, this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.innerWidth / 2; }, set: function set(t) { this.width = 2 * t, this.invalidate(); }, enumerable: !0, configurable: !0 }), e; }(Ea); Fs.registeredClasses.Ellipse = Ra; var Ba = function (t) { function e() { var e = t.call(this) || this; return e.className = "Image", e.element = e.paper.add("image"), e.applyTheme(), e.width = 50, e.height = 50, e; } return n(e, t), e.prototype.draw = function () { if (t.prototype.draw.call(this), this.href) { var e = this.innerWidth, i = this.innerHeight; A(this.widthRatio) && (e = i * this.widthRatio, this.width = e), A(this.heightRatio) && (i = e * this.heightRatio, this.height = i), this.element.attr({ width: e, height: i }), this.element.attrNS(To, "xlink:href", this.href); } }, Object.defineProperty(e.prototype, "href", { get: function get() { return this.getPropertyValue("href"); }, set: function set(t) { this.setPropertyValue("href", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "widthRatio", { get: function get() { return this.getPropertyValue("widthRatio"); }, set: function set(t) { this.setPropertyValue("widthRatio", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "heightRatio", { get: function get() { return this.getPropertyValue("heightRatio"); }, set: function set(t) { this.setPropertyValue("heightRatio", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bbox", { get: function get() { return { x: 0, y: 0, width: this.pixelWidth, height: this.pixelHeight }; }, enumerable: !0, configurable: !0 }), e; }(ba); Fs.registeredClasses.Image = Ba; var Na = function (t) { function e() { var e = t.call(this) || this; return e.className = "Line", e.element = e.paper.add("line"), e.fill = Je(), e.x1 = 0, e.y1 = 0, e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this), this.x1 == this.x2 || this.y1 == this.y2 ? this.pixelPerfect = !0 : this.pixelPerfect = !1, this.x1 = this.x1, this.x2 = this.x2, this.y1 = this.y1, this.y2 = this.y2; }, Object.defineProperty(e.prototype, "x1", { get: function get() { return this.getPropertyValue("x1"); }, set: function set(t) { A(t) || (t = 0); var e = 0; this.pixelPerfect && this.stroke instanceof ia && (e = 1e-5), this.setPropertyValue("x1", t, !0), this.element.attr({ x1: t + e }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "x2", { get: function get() { var t = this.getPropertyValue("x2"); return A(t) || (t = this.pixelWidth), t; }, set: function set(t) { A(t) || (t = 0), this.setPropertyValue("x2", t, !0), this.element.attr({ x2: t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "y1", { get: function get() { return this.getPropertyValue("y1"); }, set: function set(t) { A(t) || (t = 0); var e = 0; this.pixelPerfect && this.stroke instanceof ia && (e = 1e-5), this.setPropertyValue("y1", t, !0), this.element.attr({ y1: t + e }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "y2", { get: function get() { var t = this.getPropertyValue("y2"); return A(t) || (t = this.pixelHeight), t; }, set: function set(t) { A(t) || (t = 0), this.setPropertyValue("y2", t, !0), this.element.attr({ y2: t }); }, enumerable: !0, configurable: !0 }), e.prototype.positionToPoint = function (t) { var e = { x: this.x1, y: this.y1 }, i = { x: this.x2, y: this.y2 }, n = $(e, i, t), r = Q(e, i); return { x: n.x, y: n.y, angle: r }; }, e; }(ba); Fs.registeredClasses.Line = Na; var Ha = function (t) { function e() { var e = t.call(this) || this; return e.className = "PointedShape", e.pointerBaseWidth = 15, e.pointerLength = 10, e.pointerY = 0, e.pointerX = 0, e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this), A(this.pointerX) || (this.pointerX = this.pixelWidth / 2), A(this.pointerY) || (this.pointerY = this.pixelHeight + 10); }, Object.defineProperty(e.prototype, "pointerBaseWidth", { get: function get() { return this.getPropertyValue("pointerBaseWidth"); }, set: function set(t) { this.setPropertyValue("pointerBaseWidth", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pointerLength", { get: function get() { return this.getPropertyValue("pointerLength"); }, set: function set(t) { this.setPropertyValue("pointerLength", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pointerX", { get: function get() { return this.getPropertyValue("pointerX"); }, set: function set(t) { this.setPropertyValue("pointerX", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pointerY", { get: function get() { return this.getPropertyValue("pointerY"); }, set: function set(t) { this.setPropertyValue("pointerY", t, !0); }, enumerable: !0, configurable: !0 }), e; }(ba), Wa = function (t) { function e() { var e = t.call(this) || this; return e.className = "PointedRectangle", e.element = e.paper.add("path"), e.cornerRadius = 6, e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.cornerRadius, i = this.innerWidth, n = this.innerHeight; if (i > 0 && n > 0) { var r, s, o = this.pointerX, a = this.pointerY, l = this.pointerBaseWidth / 2, h = X(i / 2, n / 2), u = R(e, 0, h), p = R(e, 0, h), c = R(e, 0, h), d = R(e, 0, h), f = void 0, g = void 0, y = void 0, m = void 0, v = (o - 0) * (n - 0) - (a - 0) * (i - 0), b = (o - 0) * (0 - n) - (a - n) * (i - 0); f = v > 0 && b > 0 ? "M" + u + ",0 L" + ((r = R(o, u + l, i - l - p)) - l) + ",0 L" + o + "," + (a = R(a, -1 / 0, 0)) + " L" + (r + l) + ",0 L" + (i - p) + ",0" : "M" + u + ",0 L" + (i - p) + ",0", y = v < 0 && b < 0 ? " L" + (i - c) + "," + n + " L" + ((r = R(o, d + l, i - l - c)) + l) + "," + n + " L" + o + "," + (a = R(a, n, 1 / 0)) + " L" + (r - l) + "," + n + " L" + d + "," + n : " L" + d + "," + n, m = v < 0 && b > 0 ? " L0," + (n - d) + " L0," + ((s = R(a, u + l, n - d - l)) + l) + " L" + (o = R(o, -1 / 0, 0)) + "," + a + " L0," + (s - l) + " L0," + u : " L0," + u, g = v > 0 && b < 0 ? " L" + i + "," + p + " L" + i + "," + ((s = R(a, p + l, n - l - c)) - l) + " L" + (o = R(o, i, 1 / 0)) + "," + a + " L" + i + "," + (s + l) + " L" + i + "," + (n - c) : " L" + i + "," + (n - c); var x = " a" + p + "," + p + " 0 0 1 " + p + "," + p, _ = " a" + c + "," + c + " 0 0 1 -" + c + "," + c, P = " a" + d + "," + d + " 0 0 1 -" + d + ",-" + d, w = " a" + u + "," + u + " 0 0 1 " + u + ",-" + u; this.path = f + x + g + _ + y + P + m + w; } }, Object.defineProperty(e.prototype, "cornerRadius", { get: function get() { return this.getPropertyValue("cornerRadius"); }, set: function set(t) { this.setPropertyValue("cornerRadius", t, !0); }, enumerable: !0, configurable: !0 }), e; }(Ha), Xa = function (t) { function e() { var e = t.call(this) || this; return e._distance = 0, e.className = "Polyline", e.element = e.paper.add("path"), e.shapeRendering = "auto", e.fill = Je(), e.strokeOpacity = 1, e.applyTheme(), e; } return n(e, t), e.prototype.makePath = function () { this._distance = 0; var t = this.segments; if (t && t.length > 0) { for (var e = "", i = 0, n = t.length; i < n; i++) { var r = t[i]; if (r.length > 0) { e += xr(r[0]); for (var s = 1; s < r.length; s++) { var o = r[s]; e += _r(o), this._distance += K(r[s - 1], o); } } } this.path = e; } this._realSegments = t; }, Object.defineProperty(e.prototype, "segments", { get: function get() { return this.getPropertyValue("segments"); }, set: function set(t) { this.setPropertyValue("segments", t), this.makePath(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "distance", { get: function get() { return this._distance; }, enumerable: !0, configurable: !0 }), e.prototype.positionToPoint = function (t) { var e = 0; t < 0 && (t = Math.abs(t), e = 180); var i = this._realSegments; if (i) { for (var n = this.distance, r = 0, s = 0, o = 0, a = void 0, l = void 0, h = 0; h < i.length; h++) { var u = i[h]; if (u.length > 1) { for (var p = 1; p < u.length; p++) if (s = r / n, o = (r += K(a = u[p - 1], l = u[p])) / n, s <= t && o > t) { h = i.length; break; } } else 1 == u.length && (a = u[0], l = u[0], s = 0, o = 1); } if (a && l) { var c = $(a, l, (t - s) / (o - s)); return { x: c.x, y: c.y, angle: e + Q(a, l) }; } } return { x: 0, y: 0, angle: 0 }; }, Object.defineProperty(e.prototype, "realSegments", { get: function get() { return this._realSegments; }, enumerable: !0, configurable: !0 }), e; }(ba); Fs.registeredClasses.Polyline = Xa; var Ya = function (t) { function e() { var e = t.call(this) || this; return e.className = "Polyarc", e.controlPointDistance = .5, e.controlPointPosition = .5, e.applyTheme(), e; } return n(e, t), e.prototype.makePath = function () { this._distance = 0; var t = this.segments; if (t && t.length > 0) { var e = ""; this._realSegments = []; for (var i = 0, n = t.length; i < n; i++) { var r = t[i], s = []; if (this._realSegments.push(s), r.length > 0) { e += xr(r[0]); for (var o = 1; o < r.length; o++) { var a = r[o - 1], l = r[o], h = K(l, a), u = h * this.controlPointDistance, p = this.controlPointPosition, c = -Q(a, l), d = { x: a.x + (l.x - a.x) * p * .5 - u * B(c), y: a.y + (l.y - a.y) * p * .5 - u * H(c) }, f = { x: a.x + (l.x - a.x) * p * 1.5 - u * B(c), y: a.y + (l.y - a.y) * p * 1.5 - u * H(c) }; e += wr(l, d, f); var g = Math.ceil(h), y = a; if (g > 0) for (var m = 0; m <= g; m++) { var v = rt(a, l, d, f, m / g); s.push(v), this._distance += K(y, v), y = v; } else s.push(a); } } } this.path = e; } }, Object.defineProperty(e.prototype, "controlPointPosition", { get: function get() { return this.getPropertyValue("controlPointPosition"); }, set: function set(t) { this.setPropertyValue("controlPointPosition", t), this.makePath(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "controlPointDistance", { get: function get() { return this.getPropertyValue("controlPointDistance"); }, set: function set(t) { this.setPropertyValue("controlPointDistance", t), this.makePath(); }, enumerable: !0, configurable: !0 }), e; }(Xa); Fs.registeredClasses.Polyarc = Ya; var za = function (t) { function e(e) { var i = t.call(this) || this; return i._bboxes = [], i.morphDuration = 800, i.morphEasing = Pn, i.morphToSingle = !0, i.scaleRatio = 1, i.className = "Morpher", i.morphable = e, i.applyTheme(), i; } return n(e, t), e.prototype.morphToPolygon = function (t, e, i) { var n = this.morphable.currentPoints; if (n && t) { this.sortPoints(n), this.sortPoints(t), this._morphFromPointsReal = [], this._morphToPointsReal = [], S(e) || (e = this.morphDuration), S(i) || (i = this.morphEasing), this._morphFromPointsReal = this.normalizePoints(t, n), this._morphToPointsReal = this.normalizePoints(n, t), this.morphable.currentPoints = this._morphFromPointsReal; var r = new Io(this, { property: "morphProgress", from: 0, to: 1 }, e, i); return this._disposers.push(r), r.start(), r; } }, e.prototype.normalizePoints = function (t, e) { for (var i = 0, n = t.length; i < n; i++) { var r = t[i][0], s = t[i][1], o = I(et(r)), a = o.x + o.width, l = o.y + o.height; if (e[i] || (e[i] = []), r && !e[i][0] && (e[i][0] = [{ x: a, y: l }, { x: a, y: l }]), e[i][0]) { e[i][0] = this.addPoints(e[i][0], r.length); for (var h = 1 / 0, u = 0, p = 0; p < e[i][0].length; p++) { var c = K(e[i][0][p], r[0]); c < h && (u = p, h = c); } var d = e[i][0].slice(0, u), f = e[i][0].slice(u); e[i][0] = f.concat(d); } s && (e[i][1] || (e[i][1] = [{ x: a, y: l }, { x: a, y: l }]), e[i][1] = this.addPoints(e[i][1], s.length)); } return e; }, e.prototype.sortPoints = function (t) { t.sort(function (t, e) { var i = I(et(t[0])), n = I(et(e[0])); return i.width * i.height > n.width * n.height ? -1 : 1; }); for (var e = [], i = 0, n = t.length; i < n; i++) { var r = t[i][0]; r && e.push(I(et(r))); } return it(e); }, e.prototype.morphToCircle = function (t, e, i) { var n = this.morphable.points, r = this.sortPoints(n); this._morphFromPointsReal = [], this._morphToPointsReal = [], S(e) || (e = this.morphDuration), S(i) || (i = this.morphEasing); for (var s = 0, o = n.length; s < o; s++) { var a = n[s][0], l = n[s][1]; if (this._morphFromPointsReal[s] = [], this._morphToPointsReal[s] = [], a) { var h = a, u = a, p = I(et(u)); this.morphToSingle && (p = I(r)); var c = p.x + p.width / 2, d = p.y + p.height / 2, f = t; A(f) || (f = Math.min(p.width / 2, p.height / 2)), h = []; var g = Q({ x: c, y: d }, a[0]), y = 100; a.length > y && (y = a.length); for (var m = 360 / ((y = (u = this.addPoints(a, y)).length) - 1), v = 0; v < y; v++) { var b = m * v + g, x = { x: c + f * H(b), y: d + f * B(b) }; h[v] = x; } if (l && l.length > 0) for (var _ = 0, P = l.length; _ < P; _++) h.push({ x: c, y: d }); this._morphFromPointsReal[s][0] = u, this._morphToPointsReal[s][0] = h; } } this.morphable.currentPoints = this._morphFromPointsReal; var w = new Io(this, { property: "morphProgress", from: 0, to: 1 }, e, i); return this._disposers.push(w), w.start(), w; }, e.prototype.addPoints = function (t, e) { for (var i = Math.round(e / t.length), n = [], r = 0, s = t.length; r < s; r++) { var o = t[r], a = void 0; a = r == t.length - 1 ? t[0] : t[r + 1], n.push(o); for (var l = 1; l < i; l++) { var h = l / i, u = { x: o.x + (a.x - o.x) * h, y: o.y + (a.y - o.y) * h }; n.push(u); } n.length + t.length - r == e && (i = 0); } if (n.length < e && t.length > 0) { var p = t[t.length - 1]; for (l = n.length; l < e; l++) n.push({ x: p.x, y: p.y }); } return n; }, e.prototype.morphToRectangle = function (t, e, i, n) { var r = this.morphable.points; this.sortPoints(r), this._morphFromPointsReal = [], this._morphToPointsReal = [], S(i) || (i = this.morphDuration), S(n) || (n = this.morphEasing); for (var s = 0, o = r.length; s < o; s++) { var a = r[s][0], l = r[s][1]; if (this._morphFromPointsReal[s] = [], this._morphToPointsReal[s] = [], a) { var h = a, u = a, p = this._bboxes[s]; this.morphToSingle; var c = p.x, d = p.y, f = t, g = e; if (A(f) || (f = p.width), A(g) || (g = p.height), h = [{ x: c, y: d }, { x: c + f, y: d }, { x: c + f, y: d + g }, { x: c, y: d + g }], h = this.addPoints(h, a.length), a.length < 4) for (var y = a.length; y < 4; y++) h.push({ x: a[y].x, y: a[y].y }); if (l && l.length > 0) for (var m = p.x + p.width / 2, v = p.y + p.height / 2, b = 0, x = l.length; b < x; b++) h.push({ x: m, y: v }); this._morphFromPointsReal[s][0] = u, this._morphToPointsReal[s][0] = h; } } this.morphable.currentPoints = this._morphFromPointsReal; var _ = new Io(this, { property: "morphProgress", from: 0, to: 1 }, i, n); return this._disposers.push(_), _.start(), _; }, Object.defineProperty(e.prototype, "morphProgress", { get: function get() { return this._morphProgress; }, set: function set(t) { this._morphProgress = t; var e = []; if (null != t) { var i = this._morphFromPointsReal, n = this._morphToPointsReal; if (null != i && null != n) for (var r = 0, s = i.length; r < s; r++) { var o = []; e.push(o); var a = i[r][0], l = i[r][1], h = n[r][0], u = n[r][1]; if (a && a.length > 0 && h && h.length > 0) { for (var p = [], c = 0, d = a.length; c < d; c++) { var f = a[c], g = h[c], y = { x: f.x + (g.x * this.scaleRatio - f.x) * t, y: f.y + (g.y * this.scaleRatio - f.y) * t }; p.push(y); } o[0] = p; } if (l && l.length > 0 && u && u.length > 0) { for (var m = [], v = 0, b = l.length; v < b; v++) f = l[v], g = u[v], y = { x: f.x + (g.x * this.scaleRatio - f.x) * t, y: f.y + (g.y * this.scaleRatio - f.y) * t }, m.push(y); o[1] = m; } } } this.morphable.currentPoints = e; }, enumerable: !0, configurable: !0 }), e.prototype.morphBack = function (t, e) { this._morphToPointsReal = this._morphFromPointsReal, this._morphFromPointsReal = this.morphable.currentPoints, S(t) || (t = this.morphDuration), S(e) || (e = this.morphEasing); var i = new Io(this, { property: "morphProgress", from: 0, to: 1 }, t, e); return this._disposers.push(i), i.start(), i; }, Object.defineProperty(e.prototype, "animations", { get: function get() { return this._animations || (this._animations = [], this._disposers.push(new So(this._animations))), this._animations; }, enumerable: !0, configurable: !0 }), e; }($s), Ua = function (t) { function e() { var e = t.call(this) || this; return e.className = "Polygon", e.element = e.paper.add("path"), e.shapeRendering = "auto", e._currentPoints = [], e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "points", { get: function get() { var t = this.getPropertyValue("points"), e = this.path; if (e && (!t || 0 == t.length)) { for (var i = e.slice(1, e.length - 1).split("ZM"), n = 0; n < i.length; n++) { var r = i[n]; if (r.length > 0) { var s = r.split("M"), o = s[0], a = s[1]; if (o && o.length > 0) { var l = o.split("L"); if (l.length > 0) { var h = [], u = [h]; t.push(u); for (var p = 0; p < l.length; p++) { var c = l[p].split(","); h.push({ x: +c[0], y: +c[1] }); } if (a && a.length > 0) { var d = a.split("L"); if (d.length > 0) { var f = []; for (u.push(f), p = d.length - 1; p >= 0; p--) c = d[p].split(","), f.push({ x: +c[0], y: +c[1] }); } } } } } } this.setPropertyValue("points", t), this._currentPoints = t; } return t; }, set: function set(t) { this.setPropertyValue("points", t, !0), this._currentPoints = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "currentPoints", { get: function get() { return this._currentPoints && 0 != this._currentPoints.length || !this.path || (this._currentPoints = this.points), this._currentPoints; }, set: function set(t) { this._currentPoints != t && (this._currentPoints = t, this.draw()); }, enumerable: !0, configurable: !0 }), e.prototype.draw = function () { var e, i, n, r, s = "", o = this._currentPoints; if (o.length > 0) { for (var a = 0, l = o.length; a < l; a++) { var h = o[a][0], u = o[a][1]; if (h && h.length > 0) { s += xr(c = h[0]); for (var p = 0; p < h.length; p++) s += _r(c = h[p]), (!A(i) || i < c.x) && (i = c.x), (!A(e) || e > c.x) && (e = c.x), (!A(n) || n > c.y) && (n = c.y), (!A(r) || r < c.y) && (r = c.y); } if (u && u.length > 0) { var c; s += xr(c = u[0]); for (var d = 0, f = u.length; d < f; d++) s += _r(c = u[d]); } } s && (s += " Z"), this.bbox.x = e, this.bbox.y = n, this.bbox.width = i - e, this.bbox.height = r - n, t.prototype.setPath.call(this, s); } }, e.prototype.setPath = function (e) { return !!t.prototype.setPath.call(this, e) && (this.points = [], this._bbox = this.group.getBBox(), !0); }, e.prototype.measureElement = function () {}, Object.defineProperty(e.prototype, "centerPoint", { get: function get() { return { x: this.bbox.x + this.bbox.width / 2, y: this.bbox.y + this.bbox.height / 2 }; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "morpher", { get: function get() { return this._morpher || (this._morpher = new za(this), this._disposers.push(this._morpher)), this._morpher; }, enumerable: !0, configurable: !0 }), e; }(ba); Fs.registeredClasses.Polygon = Ua; var Ga = function (t) { function e() { var e = t.call(this) || this; return e.className = "Polyspline", e.tensionX = .5, e.tensionY = .5, e.applyTheme(), e; } return n(e, t), e.prototype.makePath = function () { this._distance = 0; var t = this.segments, e = this.tensionX, i = this.tensionY; if (this.allPoints = [], t && t.length > 0) { var n = ""; this._realSegments = []; for (var r = 0, s = t.length; r < s; r++) { var o = t[r], a = []; if (this._realSegments.push(a), o.length > 0) { var l = o[0], h = o[o.length - 1], u = !1; j(l.x, 3) == j(h.x) && j(l.y) == j(h.y) && (u = !0), n += xr(o[0]); for (var p = 0; p < o.length - 1; p++) { var c = o[p - 1], d = o[p], f = o[p + 1], g = o[p + 2]; 0 === p ? c = o[p] : p == o.length - 2 && (g = o[p + 1]), g || (g = f), 0 === p ? c = u ? o[o.length - 2] : o[r] : p == o.length - 2 && (g = u ? o[1] : o[p + 1]); var y = st(c, d, f, 0, e, i), m = ot(0, d, f, g, e, i); n += wr(f, y, m); var v = 1.2 * Math.ceil(Z(d, f, y, m, 20)), b = d; if (v > 0) for (var x = 0; x <= v; x++) { var _ = rt(d, f, y, m, x / v); if (_.x != b.x || _.y != b.y) { a.push(_); var P = j(Q(b, _), 5); this._distance += K(b, _), this.allPoints[Math.floor(this._distance)] = { x: _.x, y: _.y, angle: P }, b = _; } } else a.push(c); } } var w = this.allPoints; if (w.length > 1) for (var C = 0; C < w.length; C++) if (!w[C]) if (C > 1) w[C] = w[C - 1];else for (var O = 1; O < w.length; O++) if (w[O]) { w[C] = w[O]; break; } } this.path = n; } }, e.prototype.getClosestPointIndex = function (t) { var e, i = this.allPoints, n = 1 / 0; if (i.length > 1) for (var r = 1; r < i.length; r++) { var s = K(t, i[r]); s < n && (e = r, n = s); } return e; }, Object.defineProperty(e.prototype, "tensionX", { get: function get() { return this.getPropertyValue("tensionX"); }, set: function set(t) { this.setPropertyValue("tensionX", t), this.makePath(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tensionY", { get: function get() { return this.getPropertyValue("tensionY"); }, set: function set(t) { this.setPropertyValue("tensionY", t, !0), this.makePath(); }, enumerable: !0, configurable: !0 }), e.prototype.positionToPoint = function (t, e) { var i = 0, n = this.allPoints, r = n.length; if (A(t) || (t = 0), r > 1) { if (e && r > 3) { if (t < 0) { t < -.01 && (t = -.01); var s = n[0], o = n[1]; return { x: a = s.x - (s.x - o.x) * r * t, y: l = s.y - (s.y - o.y) * r * t, angle: Q(s, o) }; } if (t > 1) { t > 1.01 && (t = 1.01); var a, l; return s = n[n.length - 2], o = n[n.length - 3], { x: a = s.x + (s.x - o.x) * r * (t - 1), y: l = s.y + (s.y - o.y) * r * (t - 1), angle: Q(s, { x: a, y: l }) }; } if (1 == t) { var h = n[n.length - 1]; return { x: h.x, y: h.y, angle: h.angle }; } } else t < 0 && (t = Math.abs(t), i = 180), t >= 1 && (t = .9999999999999); var u; return { x: (u = n[Math.floor(t * r)]).x, y: u.y, angle: u.angle + i }; } return 1 == r ? { x: (u = n[0]).x, y: u.y, angle: u.angle } : { x: 0, y: 0, angle: 0 }; }, e; }(Xa); Fs.registeredClasses.Polyspline = Ga; var Ka = function (t) { function e() { var e = t.call(this) || this; return e.className = "Slice", e.setPropertyValue("cornerRadius", 0), e.setPropertyValue("startAngle", 0), e.setPercentProperty("innerRadius", 0), e.setPercentProperty("radius", 0), e.setPropertyValue("arc", 0), e.setPropertyValue("shiftRadius", 0), e.strokeOpacity = 1, e.setPropertyValue("layout", "none"), e.slice = e.createChild(ba), e.slice.isMeasured = !1, e._disposers.push(e.slice), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.radiusY; this.radius > 0 && 0 == e && (e = .01), this.slice.path = Sr(this.startAngle, this.arc, this.radius, this.pixelInnerRadius, e, this.cornerRadius, this.innerCornerRadius), this.slice.invalidate(), this.shiftRadius = this.shiftRadius, this.realFill instanceof na && this.updateGradient(this.realFill), this.realStroke instanceof na && this.updateGradient(this.realStroke); }, e.prototype.updateGradient = function (t) { t.element.attr({ gradientUnits: "userSpaceOnUse" }), t.element.attr({ r: this.radius }), t.cx = 0, t.cy = 0, t.element.attr({ radius: this.radius }); }, Object.defineProperty(e.prototype, "bbox", { get: function get() { return this.definedBBox ? this.definedBBox : this.isMeasured ? it([ut(this.startAngle, this.startAngle + this.arc, this.pixelInnerRadius), ut(this.startAngle, this.startAngle + this.arc, this.radius)]) : { x: 0, y: 0, width: 0, height: 0 }; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startAngle", { get: function get() { return this.getPropertyValue("startAngle"); }, set: function set(t) { this.setPropertyValue("startAngle", lt(t), !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "arc", { get: function get() { return this.getPropertyValue("arc"); }, set: function set(t) { A(t) || (t = 0), this.setPropertyValue("arc", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { var t = this.getPropertyValue("radius"); return A(t) || (t = 0), t; }, set: function set(t) { this.setPropertyValue("radius", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radiusY", { get: function get() { var t = this.getPropertyValue("radiusY"); return A(t) || (t = this.radius), t; }, set: function set(t) { this.setPropertyValue("radiusY", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelInnerRadius", { get: function get() { return hi(this.innerRadius, this.radius); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cornerRadius", { get: function get() { return this.getPropertyValue("cornerRadius"); }, set: function set(t) { this.setPropertyValue("cornerRadius", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerCornerRadius", { get: function get() { return this.getPropertyValue("innerCornerRadius"); }, set: function set(t) { this.setPropertyValue("innerCornerRadius", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "shiftRadius", { get: function get() { return this.getPropertyValue("shiftRadius"); }, set: function set(t) { this.setPropertyValue("shiftRadius", t), this.dx = t * this.radius * this.ix, this.dy = t * this.radiusY * this.iy; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "ix", { get: function get() { return H(this.middleAngle); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "iy", { get: function get() { return this.radius, B(this.middleAngle); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "middleAngle", { get: function get() { return this.startAngle + this.arc / 2; }, enumerable: !0, configurable: !0 }), e.prototype.getTooltipX = function () { var t = this.getPropertyValue("tooltipX"); if (!A(t)) { var e = hi(this.innerRadius, this.radius); t = this.ix * (e + (this.radius - e) / 2); } return t; }, e.prototype.getTooltipY = function () { var t = this.getPropertyValue("tooltipY"); if (!A(t)) { var e = hi(this.innerRadius, this.radius); t = this.iy * (e + (this.radiusY - e) / 2) + this.slice.dy; } return t; }, e; }(_a); Fs.registeredClasses.Slice = Ka; var Za = function (t) { function e() { var e = t.call(this) || this; e.className = "Preloader", e.width = h(100), e.height = h(100); var i = new ta(), n = e.createChild(_a); n.shouldClone = !1; var r = n.createChild(Ka); r.shouldClone = !1, r.radius = 53, r.arc = 360, r.fill = i.getFor("fill"), r.fillOpacity = .8, r.innerRadius = 42, r.isMeasured = !1, e.backgroundSlice = r; var s = n.createChild(Ka); s.shouldClone = !1, s.radius = 50, s.innerRadius = 45, s.fill = i.getFor("alternativeBackground"), s.fillOpacity = .2, s.isMeasured = !1, e.progressSlice = s; var o = n.createChild(Ma); return o.shouldClone = !1, o.horizontalCenter = "middle", o.verticalCenter = "middle", o.isMeasured = !1, o.fill = i.getFor("text"), o.align = "center", o.valign = "middle", o.fillOpacity = .4, e.label = o, e.background.opacity = 1, e.background.fill = i.getFor("background"), e.contentAlign = "center", e.contentValign = "middle", e.delay = 300, e.states.create("hidden").properties.opacity = 0, e.visible = !1, e.hide(0), e.__disabled = !0, e._disposers.push(e.backgroundSlice), e._disposers.push(e.progressSlice), e._disposers.push(e.label), e._disposers.push(n), e; } return n(e, t), Object.defineProperty(e.prototype, "progress", { get: function get() { return this.getPropertyValue("progress"); }, set: function set(t) { var e = this; this.__disabled = !1, this.validateLayout(), this.setPropertyValue("progress", t), this.progressSlice.arc = 360 * t, this.label && (this.label.text = Math.round(100 * t) + "%"), t >= 1 ? (this._started && (this._started = void 0), Fs.events.once("enterframe", function () { var t = e.hide(); t && !t.isFinished() ? t.events.once("animationended", function () { e.__disabled = !0; }) : e.__disabled = !0; }), this.interactionsEnabled = !1, this.setPropertyValue("progress", 0)) : t > 0 && (this.delay ? this._started ? this._started + this.delay <= new Date().getTime() && (this.__disabled = !1, this.show(), this.interactionsEnabled = !0) : this._started = new Date().getTime() : (this.__disabled = !1, this.show(), this.interactionsEnabled = !0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "delay", { get: function get() { return this.getPropertyValue("delay"); }, set: function set(t) { this.setPropertyValue("delay", t); }, enumerable: !0, configurable: !0 }), e; }(_a); Fs.registeredClasses.Preloader = Za; var qa = function (t) { function e() { var e = t.call(this) || this; e.className = "ResizeButton", e.orientation = "horizontal", e.layout = "absolute", e.horizontalCenter = "middle", e.verticalCenter = "middle", e.draggable = !0, e.padding(8, 8, 8, 8), e.background.cornerRadius(20, 20, 20, 20); var i = new ba(); i.element = e.paper.add("path"); var n = xr({ x: -2, y: -6 }); return n += _r({ x: -2, y: 6 }), n += xr({ x: 2, y: -6 }), n += _r({ x: 2, y: 6 }), i.path = n, i.pixelPerfect = !0, i.padding(0, 4, 0, 4), i.stroke = new ta().getFor("alternativeText"), i.strokeOpacity = .7, e.icon = i, e.label.dispose(), e.label = void 0, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "orientation", { set: function set(t) { var e = this.icon; e && (e.rotation = "horizontal" == t ? 0 : -90); }, enumerable: !0, configurable: !0 }), e; }(La); Fs.registeredClasses.ResizeButton = qa; var $a = function (t) { function e() { var e = t.call(this) || this; e._previousStart = 0, e._previousEnd = 1, e._prevStart = 0, e._prevEnd = 1, e._isBusy = !1, e._skipRangeEvents = !1, e.updateWhileMoving = !0, e.className = "Scrollbar", e.minHeight = 12, e.minWidth = 12, e.animationDuration = 0, e.animationEasing = Pn, e.margin(10, 10, 10, 10); var i = new ta(), n = e.background; return n.cornerRadius(10, 10, 10, 10), n.fill = i.getFor("fill"), n.fillOpacity = .5, e.showSystemTooltip = !0, e.startGrip = new qa(), e.endGrip = new qa(), e.events.on("transformed", e.updateThumb, e, !1), e.start = 0, e.end = 1, e.role = "scrollbar", e.thumb.role = "slider", e.thumb.readerLive = "polite", e.startGrip.role = "slider", e.endGrip.role = "slider", e.events.once("inited", function () { e._previousStart = void 0, e.dispatchRangeChange(); }, void 0, !1), e.hideGrips = !1, e.orientation = "horizontal", e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), "horizontal" === this.orientation ? (S(this.readerTitle) || (this.readerTitle = this.language.translate("Use TAB to select grip buttons or left and right arrows to change selection")), S(this.thumb.readerDescription) || (this.thumb.readerDescription = this.language.translate("Use left and right arrows to move selection")), S(this.startGrip.readerDescription) || (this.startGrip.readerDescription = this.language.translate("Use left and right arrows to move left selection")), S(this.endGrip.readerDescription) || (this.endGrip.readerDescription = this.language.translate("Use left and right arrows to move right selection"))) : (S(this.readerTitle) || (this.readerTitle = this.language.translate("Use TAB select grip buttons or up and down arrows to change selection")), S(this.thumb.readerDescription) || (this.thumb.readerDescription = this.language.translate("Use up and down arrows to move selection")), S(this.startGrip.readerDescription) || (this.startGrip.readerDescription = this.language.translate("Use up and down arrows to move upper selection")), S(this.endGrip.readerDescription) || (this.endGrip.readerDescription = this.language.translate("Use up and down arrows to move lower selection"))); }, e.prototype.validateLayout = function () { this.updateSize(), t.prototype.validateLayout.call(this), this.updateExtremes(); }, e.prototype.processBackground = function () { t.prototype.processBackground.call(this); var e = this.background; e.clickable = !0, e.events.on("hit", this.handleBgHit, this, void 0); }, e.prototype.handleBgHit = function (t) { this.makeBusy(); var e = t.spritePoint; e = Xi(e, this.background, this); var i = this.thumb; if ("horizontal" == this.orientation) { var n = e.x - i.pixelWidth / 2; n = R(n, 0, this.innerWidth - i.pixelWidth), this._thumbAnimation = i.animate({ property: "x", to: n }, this.animationDuration, this.animationEasing); } else { var r = e.y - i.pixelHeight / 2; r = R(r, 0, this.innerHeight - i.pixelHeight), this._thumbAnimation = i.animate({ property: "y", to: r }, this.animationDuration, this.animationEasing); } this.animationDuration > 0 ? this._thumbAnimation.events.on("animationended", this.makeUnbusy, this, !1) : (this._thumb.validate(), this.makeUnbusy()); }, e.prototype.makeBusy = function () { this._isBusy = !0, this._skipRangeEvents = !1, this._unbusyTimeout && this.removeDispose(this._unbusyTimeout), this._unbusyTimeout = void 0, this.stopAnimations(); }, e.prototype.stopAnimations = function () { this._thumbAnimation && this._thumbAnimation.stop(!0), this._zoomAnimation && this._zoomAnimation.stop(!0); }, e.prototype.makeUnbusy = function () { this._unbusyTimeout = this.setTimeout(this.makeUnbusyReal.bind(this), 1.1 * this.animationDuration); }, e.prototype.makeUnbusyReal = function () { this._usingGrip = void 0, this._isBusy = !1, this.updateWhileMoving || this.dispatchRangeChange(); }, e.prototype.dispatchRangeChange = function () { this._previousEnd == this.end && this._previousStart == this.start || (this._previousStart = this.start, this._previousEnd = this.end, this.dispatch("rangechanged")); }, e.prototype.updateThumb = function () { if (this.parent) { var t = this.thumb, e = this.start, i = this.end, n = this.startGrip, r = this.endGrip; if ("horizontal" == this.orientation) { var s = this.innerWidth; t.width = s * (i - e), t.maxX = s - t.pixelWidth, t.x = e * s, n.moveTo({ x: t.pixelX, y: 0 }, void 0, void 0, !0), r.moveTo({ x: t.pixelX + t.pixelWidth, y: 0 }, void 0, void 0, !0), n.readerTitle = this.language.translate("From %1", void 0, this.adapter.apply("positionValue", { value: Math.round(100 * e) + "%", position: e }).value), r.readerTitle = this.language.translate("To %1", void 0, this.adapter.apply("positionValue", { value: Math.round(100 * i) + "%", position: i }).value); } else { var o = this.innerHeight; t.height = o * (i - e), t.maxY = o - t.pixelHeight, t.y = (1 - i) * o, n.moveTo({ x: 0, y: t.pixelY + t.pixelHeight }, void 0, void 0, !0), r.moveTo({ x: 0, y: t.pixelY }, void 0, void 0, !0), n.readerTitle = this.language.translate("To %1", void 0, this.adapter.apply("positionValue", { value: Math.round(100 * (1 - e)) + "%", position: 1 - e }).value), r.readerTitle = this.language.translate("From %1", void 0, this.adapter.apply("positionValue", { value: Math.round(100 * (1 - i)) + "%", position: 1 - i }).value); } t.readerTitle = this.language.translate("From %1 to %2", void 0, this.adapter.apply("positionValue", { value: Math.round(100 * e) + "%", position: e }).value, this.adapter.apply("positionValue", { value: Math.round(100 * i) + "%", position: i }).value), !this._skipRangeEvents && this.updateWhileMoving && this.dispatchRangeChange(); } }, e.prototype.updateExtremes = function () { var t = 0, e = 0, i = 0, n = 0; "horizontal" == this.orientation ? (i = this.innerWidth, e = n = this.innerHeight / 2) : (n = this.innerHeight, t = i = this.innerWidth / 2); var r = this.startGrip; r.minX = t, r.maxX = i, r.minY = e, r.maxY = n; var s = this.endGrip; s.minX = t, s.maxX = i, s.minY = e, s.maxY = n; var o = this.thumb; o.minX = t, o.maxX = i, o.minY = e, o.maxY = n; }, e.prototype.updateSize = function () { var t = this.orientation, e = this.startGrip; e && (e.orientation = t), this.endGrip && (this.endGrip.orientation = t); var i = this.thumb; i && ("horizontal" == t ? (A(this._pixelWidth) || this.width instanceof hs || (this.width = h(100)), S(this.percentHeight) && (this.height = this.minHeight), i.height = this.innerHeight, i.verticalCenter = "middle", i.horizontalCenter = "left") : (A(this._pixelHeight) || this.height instanceof hs || (this.height = h(100)), S(this.percentWidth) && (this.width = this.minWidth), i.width = this.innerWidth, i.verticalCenter = "top", i.horizontalCenter = "middle")); }, Object.defineProperty(e.prototype, "start", { get: function get() { return Math.min(this.getPosition(this._start), this.getPosition(this._end)); }, set: function set(t) { this._isBusy || (this.__start = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "__start", { get: function get() { return this._start; }, set: function set(t) { this._start = this.getPosition(t), this.updateThumb(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "end", { get: function get() { return Math.max(this.getPosition(this._start), this.getPosition(this._end)); }, set: function set(t) { this._isBusy || (this.__end = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "__end", { get: function get() { return this._end; }, set: function set(t) { this._end = this.getPosition(t), this.updateThumb(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "range", { get: function get() { return { start: this.start, end: this.end, priority: this._usingGrip }; }, enumerable: !0, configurable: !0 }), e.prototype.skipRangeEvents = function () { this._isBusy || (this._skipRangeEvents = !0); }, e.prototype.fixRange = function (t) { t.start == j(this._start, 2) && t.end == j(this._end, 2) || (this._start = t.start, this._end = t.end, this._skipRangeEvents = !0, this.updateThumb(), this._skipRangeEvents = !1, this.thumb.validate(), this.thumb.background.validate()); }, e.prototype.getPosition = function (t) { return R(j(t, 4), 0, 1); }, Object.defineProperty(e.prototype, "orientation", { get: function get() { return this.getPropertyValue("orientation"); }, set: function set(t) { this.setPropertyValue("orientation", t) && ("horizontal" === t ? (this.startGrip.cursorOverStyle = sa.horizontalResize, this.endGrip.cursorOverStyle = sa.horizontalResize) : (this.startGrip.cursorOverStyle = sa.verticalResize, this.endGrip.cursorOverStyle = sa.verticalResize), this.updateByOrientation(), this.invalidate()); }, enumerable: !0, configurable: !0 }), e.prototype.updateByOrientation = function () {}, Object.defineProperty(e.prototype, "startGrip", { get: function get() { return this._startGrip; }, set: function set(t) { this._startGrip && this.removeDispose(this._startGrip), this._startGrip = t, this.processGrip(t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endGrip", { get: function get() { return this._endGrip; }, set: function set(t) { this._endGrip && this.removeDispose(this._endGrip), this._endGrip = t, this.processGrip(t); }, enumerable: !0, configurable: !0 }), e.prototype.processGrip = function (t) { t.parent = this, t.isMeasured = !1, t.focusable = !0, t.shouldClone = !1, t.zIndex = 100, t.events.on("drag", this.handleGripDrag, this, !1), t.events.on("dragstop", this.makeUnbusy, this, !1), t.events.on("down", this.makeBusy, this, !1), this._disposers.push(t); }, e.prototype.handleGripDrag = function (t) { this.makeBusy(), t.target === this._startGrip ? this._usingGrip = "start" : this._usingGrip = "end", "horizontal" == this.orientation ? (this._start = this.startGrip.pixelX / this.innerWidth, this._end = this.endGrip.pixelX / this.innerWidth) : (this._start = 1 - this.startGrip.pixelY / this.innerHeight, this._end = 1 - this.endGrip.pixelY / this.innerHeight), this.updateThumb(); }, Object.defineProperty(e.prototype, "thumb", { get: function get() { if (!this._thumb) { var t = new La(); t.background.cornerRadius(10, 10, 10, 10), t.padding(0, 0, 0, 0), this.thumb = t; } return this._thumb; }, set: function set(t) { var e = this; t && (this._thumb && this.removeDispose(this._thumb), this._thumb = t, t.parent = this, t.isMeasured = !1, t.inert = !0, t.draggable = !0, t.clickable = !0, t.hoverable = !0, t.focusable = !0, t.shouldClone = !1, t.zIndex = 0, t.cursorOverStyle = sa.grab, t.cursorDownStyle = sa.grabbing, t.events.on("dragstart", this.makeBusy, this, !1), t.events.on("dragstop", this.makeUnbusy, this, !1), t.events.on("positionchanged", this.handleThumbPosition, this, !1), t.events.on("sizechanged", this.handleThumbPosition, this, !1), t.events.on("doublehit", this.handleDoubleClick, this, !1), this._disposers.push(pr().body.events.on("keyup", function (t) { Wo.isKey(t.event, ["space", "enter"]) && e.thumb.isFocused && (t.event.preventDefault(), e.handleDoubleClick()); })), this._disposers.push(this._thumb)); }, enumerable: !0, configurable: !0 }), e.prototype.handleDoubleClick = function () { this.makeBusy(); var t = 0, e = 1; 0 != this.start || 1 != this.end ? (this._prevStart = this.start, this._prevEnd = this.end) : (t = this._prevStart, e = this._prevEnd); var i = this.animate([{ property: "__start", to: t }, { property: "__end", to: e }], this.animationDuration, this.animationEasing); i && !i.isFinished() ? (i.events.on("animationended", this.makeUnbusy, this, !1), this._zoomAnimation = i) : this.makeUnbusy(); }, e.prototype.handleThumbPosition = function () { var t = this.thumb; if ("horizontal" == this.orientation) { var e = this.innerWidth, i = t.innerWidth, n = t.pixelX; this._start = n / e, this._end = (n + i) / e, this.updateThumb(); } else { var r = this.innerHeight, s = t.innerHeight, o = t.pixelY; this._start = 1 - (o + s) / r, this._end = 1 - o / r, this.updateThumb(); } }, e.prototype.createBackground = function () { return new ja(); }, Object.defineProperty(e.prototype, "hideGrips", { get: function get() { return this._hideGrips; }, set: function set(t) { var e = this; this._hideGrips = t, this._overDisposer && this.removeDispose(this._overDisposer), this._outDisposer && this.removeDispose(this._outDisposer), t ? (this._overDisposer = this.events.on("over", function () { e.startGrip.show(), e.endGrip.show(); }, void 0, !1), this._outDisposer = this.events.on("out", function () { e.startGrip.hide(), e.endGrip.hide(); }, void 0, !1), this.startGrip.hide(), this.endGrip.hide()) : (this.startGrip.show(), this.endGrip.show()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "animationDuration", { get: function get() { return this.getPropertyValue("animationDuration"); }, set: function set(t) { this.setPropertyValue("animationDuration", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "animationEasing", { get: function get() { return this.getPropertyValue("animationEasing"); }, set: function set(t) { this.setPropertyValue("animationEasing", t); }, enumerable: !0, configurable: !0 }), e.prototype.asFunction = function (e) { return "animationEasing" == e || t.prototype.asIs.call(this, e); }, e; }(_a); Fs.registeredClasses.Scrollbar = $a; var Ja = function (t) { function e() { var e = t.call(this) || this; return e.className = "Slider", e.thumb.opacity = 0, e.thumb.interactionsEnabled = !1, e.endGrip.opacity = 0, e.endGrip.interactionsEnabled = !1, e.startGrip.events.on("drag", function () { e.endGrip.x = e.startGrip.x, e.endGrip.y = e.startGrip.y; }), e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "__end", { get: function get() { return this._start; }, set: function set(t) {}, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "end", { get: function get() { return this._start; }, set: function set(t) {}, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "start", { get: function get() { return this._start; }, set: function set(t) { this._isBusy || (this.__start = t); }, enumerable: !0, configurable: !0 }), e; }($a); Fs.registeredClasses.Slider = Ja; var Qa = function (t) { function e() { var e = t.call(this) || this; e.className = "TextLink", e.selectable = !0; var i = new ta(); return e.fill = i.getFor("primaryButton").brighten(.3), e.states.create("hover").properties.fill = i.getFor("primaryButtonHover").brighten(.3), e.states.create("down").properties.fill = i.getFor("primaryButtonDown").brighten(.3), e.cursorOverStyle = sa.pointer, e.applyTheme(), e; } return n(e, t), e; }(Ma); Fs.registeredClasses.TextLink = Qa; var tl = function (t) { function e() { var e = t.call(this) || this; return e.properties = {}, e.isTemplate = !1, e._scale = 1, e._nonScaling = !0, e.className = "Filter", e.filterPrimitives = new Ns(), e.filterPrimitives.events.on("inserted", function (t) { e._disposers.push(t.newValue); }), e.width = 120, e.height = 120, e.applyTheme(), e; } return n(e, t), e.prototype.appendPrimitives = function (t) { pe(this.filterPrimitives.iterator(), function (e) { t.add(e); }); }, e.prototype.animate = function (t, e, i) { return new Io(this, t, e, i).start(); }, Object.defineProperty(e.prototype, "width", { get: function get() { return this.properties.width; }, set: function set(t) { this.properties.width = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "height", { get: function get() { return this.properties.height; }, set: function set(t) { this.properties.height = t; }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { var i = this; t.prototype.copyFrom.call(this, e), Qt(e.properties, function (t, e) { i[t] = e; }); }, Object.defineProperty(e.prototype, "paper", { get: function get() { return this._paper ? this._paper : cr(); }, set: function set(t) { this._paper != t && (this._paper = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "animations", { get: function get() { return this._animations || (this._animations = [], this._disposers.push(new So(this._animations))), this._animations; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "scale", { get: function get() { return this._scale; }, set: function set(t) { this._scale = t, this.updateScale(); }, enumerable: !0, configurable: !0 }), e.prototype.updateScale = function () {}, Object.defineProperty(e.prototype, "nonScaling", { get: function get() { return this._nonScaling; }, set: function set(t) { this._nonScaling = t, t || (this._scale = 1), this.updateScale(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "sprite", { set: function set(t) { this.setSprite(t); }, enumerable: !0, configurable: !0 }), e.prototype.setSprite = function (t) { this._sprite && this._sprite != t && this._sprite.filters.removeValue(this), this._sprite = t; }, e; }($s), el = function (t) { function e() { var e = t.call(this) || this; return e.className = "DropShadowFilter", e.color = Je("#000"), e.feGaussianBlur = e.paper.add("feGaussianBlur"), e.feGaussianBlur.attr({ result: "blurOut", "in": "SourceGraphic" }), e.filterPrimitives.push(e.feGaussianBlur), e.feOffset = e.paper.add("feOffset"), e.feOffset.attr({ result: "offsetBlur" }), e.filterPrimitives.push(e.feOffset), e.feFlood = e.paper.add("feFlood"), e.feFlood.attr({ "flood-color": e.color }), e.filterPrimitives.push(e.feFlood), e.feComposite = e.paper.add("feComposite"), e.feComposite.attr({ in2: "offsetBlur", operator: "in" }), e.filterPrimitives.push(e.feComposite), e.feMerge = e.paper.addGroup("feMerge"), e.feMerge.add(e.paper.add("feMergeNode")), e.feMerge.add(e.paper.add("feMergeNode").attr({ "in": "SourceGraphic" })), e.filterPrimitives.push(e.feMerge), e.width = 200, e.height = 200, e.blur = 1.5, e.dx = 3, e.dy = 3, e.opacity = .5, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "color", { get: function get() { return this.properties.color; }, set: function set(t) { this.properties.color = t, this.feFlood && this.feFlood.attr({ "flood-color": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "opacity", { get: function get() { return this.properties.opacity; }, set: function set(t) { this.properties.opacity = t, this.feFlood.attr({ "flood-opacity": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dx", { get: function get() { return this.properties.dx; }, set: function set(t) { this.properties.dx = t, this.feOffset.attr({ dx: t / this.scale }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dy", { get: function get() { return this.properties.dy; }, set: function set(t) { this.properties.dy = t, this.feOffset.attr({ dy: t / this.scale }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "blur", { get: function get() { return this.properties.blur; }, set: function set(t) { this.properties.blur = t, this.feGaussianBlur.attr({ stdDeviation: t / this.scale }); }, enumerable: !0, configurable: !0 }), e.prototype.updateScale = function () { this.dx = this.dx, this.dy = this.dy, this.blur = this.blur; }, e; }(tl); Fs.registeredClasses.DropShadowFilter = el; var il = function (t) { function e() { var e = t.call(this) || this; e._boundingRect = { x: -4e4, y: -4e4, width: 8e4, height: 8e4 }, e._pointTo = { x: 0, y: 0 }, e.fitPointerToBounds = !1, e._verticalOrientation = "up", e.className = "Tooltip", e.isMeasured = !1, e.getFillFromObject = !0, e.margin(5, 5, 5, 5), e.defaultState.transitionDuration = 1, e.hiddenState.transitionDuration = 1; var i = e.background; i.interactionsEnabled = !1, i.fillOpacity = .9, i.strokeWidth = 1, i.strokeOpacity = 1, i.stroke = Je("#ffffff"), i.cornerRadius = 3, i.pointerLength = 6, i.pointerBaseWidth = 10; var n = new el(); n.dy = 1, n.dx = 1, n.opacity = .5, i.filters.push(n), e.autoTextColor = !0; var r = e.createChild(Ma); return r.shouldClone = !1, e.label = r, r.padding(7, 12, 4, 12), r.interactionsEnabled = !1, r.horizontalCenter = "middle", r.fill = Je("#ffffff"), e._disposers.push(r), e.label.events.on("sizechanged", e.drawBackground, e), e.label.zIndex = 1, e.pointerOrientation = "vertical", e.animationDuration = 0, e.animationEasing = Pn, e.setPropertyValue("showInViewport", !1), e.role = "tooltip", e.visible = !1, e.opacity = 0, e.x = 0, e.y = 0, e.events.on("visibilitychanged", e.handleVisibility, e), e.applyTheme(), e; } return n(e, t), e.prototype.handleVisibility = function () { this.visible && this.label.invalidate(); }, Object.defineProperty(e.prototype, "getStrokeFromObject", { get: function get() { return this.getPropertyValue("getStrokeFromObject"); }, set: function set(t) { this.setPropertyValue("getStrokeFromObject", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "autoTextColor", { get: function get() { return this.getPropertyValue("autoTextColor"); }, set: function set(t) { this.setPropertyValue("autoTextColor", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "keepTargetHover", { get: function get() { return this.getPropertyValue("keepTargetHover"); }, set: function set(t) { var e = this; this.setPropertyValue("keepTargetHover", t, !0) && t && (this.hoverable = !0, this.background.interactionsEnabled = !0, this._disposers.push(this.events.on("over", function (t) { e.targetSprite && e.targetSprite.hoverable && (e.targetSprite.isHover = !0); })), this._disposers.push(this.events.on("out", function (t) { e.targetSprite && e.targetSprite.hoverable && (e.targetSprite.isHover = !1); }))); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "showInViewport", { get: function get() { return this.getPropertyValue("showInViewport"); }, set: function set(t) { this.setPropertyValue("showInViewport", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "getFillFromObject", { get: function get() { return this.getPropertyValue("getFillFromObject"); }, set: function set(t) { this.setPropertyValue("getFillFromObject", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.createBackground = function () { return new Wa(); }, Object.defineProperty(e.prototype, "pointerOrientation", { get: function get() { return this.getPropertyValue("pointerOrientation"); }, set: function set(t) { this.setPropertyValue("pointerOrientation", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "animationDuration", { get: function get() { return this.getPropertyValue("animationDuration"); }, set: function set(t) { this.setPropertyValue("animationDuration", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "animationEasing", { get: function get() { return this.getPropertyValue("animationEasing"); }, set: function set(t) { this.setPropertyValue("animationEasing", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "html", { get: function get() { return this.label.html; }, set: function set(t) { this.label.html != t && (this.label.html = t, this.invalidate()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "text", { get: function get() { return this.label.text; }, set: function set(t) { this.label.text != t && (this.label.text = t, this.invalidate()); }, enumerable: !0, configurable: !0 }), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.label; e.invalid && e.validate(); var i, n, r = this._pointTo.x, s = this._pointTo.y, o = this._boundingRect, a = e.measuredWidth, l = e.measuredHeight, h = this.background.pointerLength; if (a > o.width) { Zi({ x: o.x, y: o.y }, this.parent); var u = Zi({ x: o.x + o.width, y: o.y + o.height }, this.parent), p = document.body.offsetWidth; document.body.offsetHeight, u.x > p / 2 ? o.x = o.width - a : o.width = o.x + a; } var c = this.pointerOrientation; "horizontal" == c || "left" == c || "right" == c ? (n = -l / 2, i = "horizontal" == c ? r > o.x + o.width / 2 ? -a / 2 - h : a / 2 + h : "left" == c ? a / 2 + h : -a / 2 - h) : (i = R(0, o.x - r + a / 2, o.x - r + o.width - a / 2), "vertical" == c ? s > o.y + l + h ? (n = -l - h, this._verticalOrientation = "up") : (n = h, this._verticalOrientation = "down") : "down" == c ? (n = -l - h, this._verticalOrientation = "up") : (n = h, this._verticalOrientation = "down")), n = R(n, o.y - s, o.y + o.height - l - s), e.x = i, e.y = n, this.drawBackground(); }, e.prototype.updateBackground = function () { this.group.addToBack(this.background.group); }, e.prototype.drawBackground = function () { var t = this.label, e = this.background, i = t.measuredWidth, n = t.measuredHeight, r = this._boundingRect, s = i, o = t.pixelX - i / 2, a = n, l = t.pixelY, h = this._pointTo.x, u = this._pointTo.y, p = r.x - h, c = p + r.width, d = r.y - u, f = d + r.height; e.x = o, e.y = l, e.width = s, e.height = a, this.fitPointerToBounds ? (e.pointerX = R(-e.x, p - e.x, c - e.x), e.pointerY = R(-e.y, d - e.y, f - e.y)) : (e.pointerX = -e.x, e.pointerY = -e.y), e.validate(); }, e.prototype.pointTo = function (t, e) { this._pointTo.x == t.x && this._pointTo.y == t.y || (this._pointTo = t, this.invalidate(), !this.visible || e ? (this.moveTo(this._pointTo), this._animation && this._animation.kill()) : 0 == this.pixelX && 0 == this.pixelY ? this.moveTo(this._pointTo) : (this._animation && this._animation.kill(), this._animation = new Io(this, [{ property: "x", to: t.x, from: this.pixelX }, { property: "y", to: t.y, from: this.pixelY }], this.animationDuration, this.animationEasing).start())); }, e.prototype.setBounds = function (t) { var e = this._boundingRect; e.x == t.x && e.y == t.y && e.width == t.width && e.height == t.height || (this._boundingRect = t, this.invalidate()); }, Object.defineProperty(e.prototype, "boundingContainer", { set: function set(t) { this._boundingContainer = t, t.events.on("sizechanged", this.updateBounds, this), t.events.on("positionchanged", this.updateBounds, this); }, enumerable: !0, configurable: !0 }), e.prototype.updateBounds = function () { var t = this._boundingContainer, e = zi({ x: t.pixelX, y: t.pixelY, width: t.maxWidth, height: t.maxHeight }, t); this.setBounds(e); }, Object.defineProperty(e.prototype, "verticalOrientation", { get: function get() { return this._verticalOrientation; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltip", { get: function get() {}, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.label.copyFrom(e.label), e._boundingRect && (this._boundingRect = e._boundingRect); }, e.prototype.asFunction = function (e) { return "animationEasing" == e || t.prototype.asIs.call(this, e); }, e; }(_a); Fs.registeredClasses.Tooltip = il; var nl = function (t) { function e() { var e = t.call(this) || this; return e.className = "Trapezoid", e.element = e.paper.add("path"), e.topSide = h(100), e.bottomSide = h(100), e.leftSide = h(100), e.rightSide = h(100), e.isMeasured = !1, e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.pixelWidth, i = this.pixelHeight, n = hi(this.topSide, e), r = hi(this.bottomSide, e), s = hi(this.leftSide, i), o = hi(this.rightSide, i), a = (e - n) / 2, l = (i - s) / 2, h = e - (e - n) / 2, u = (i - o) / 2, p = e - (e - r) / 2, c = i - (i - o) / 2, d = (e - r) / 2, f = i - (i - s) / 2, g = "", y = "", m = "", v = ""; if (S(this.horizontalNeck)) { var b = this.horizontalNeck.value; g = _r({ x: e * b, y: Math.max(l, u) }), m = _r({ x: e * b, y: Math.min(c, f) }); } if (S(this.verticalNeck)) { var x = this.verticalNeck.value; y = _r({ x: Math.min(h, p), y: i * x }), v = _r({ x: Math.max(a, d), y: i * x }); } var _ = xr({ x: a, y: l }) + g + _r({ x: h, y: u }) + y + _r({ x: p, y: c }) + m + _r({ x: d, y: f }) + v; this.path = _; }, Object.defineProperty(e.prototype, "topSide", { get: function get() { return this.getPropertyValue("topSide"); }, set: function set(t) { this.setPercentProperty("topSide", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bottomSide", { get: function get() { return this.getPropertyValue("bottomSide"); }, set: function set(t) { this.setPercentProperty("bottomSide", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "leftSide", { get: function get() { return this.getPropertyValue("leftSide"); }, set: function set(t) { this.setPercentProperty("leftSide", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "rightSide", { get: function get() { return this.getPropertyValue("rightSide"); }, set: function set(t) { this.setPercentProperty("rightSide", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "horizontalNeck", { get: function get() { return this.getPropertyValue("horizontalNeck"); }, set: function set(t) { this.setPropertyValue("horizontalNeck", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "verticalNeck", { get: function get() { return this.getPropertyValue("verticalNeck"); }, set: function set(t) { this.setPropertyValue("verticalNeck", t, !0); }, enumerable: !0, configurable: !0 }), e; }(ba); Fs.registeredClasses.Trapezoid = nl; var rl = function (t) { function e() { var e = t.call(this) || this; return e.className = "Triangle", e.element = e.paper.add("path"), e.direction = "top", e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e, i = this.pixelWidth, n = this.pixelHeight; switch (this.direction) { case "right": e = xr({ x: 0, y: 0 }) + _r({ x: i, y: n / 2 }) + _r({ x: 0, y: n }) + " Z"; break; case "left": e = xr({ x: i, y: 0 }) + _r({ x: 0, y: n / 2 }) + _r({ x: i, y: n }) + " Z"; break; case "bottom": e = xr({ x: 0, y: 0 }) + _r({ x: i, y: 0 }) + _r({ x: i / 2, y: n }) + " Z"; break; case "top": e = xr({ x: i / 2, y: 0 }) + _r({ x: i, y: n }) + _r({ x: 0, y: n }) + " Z"; } this.path = e; }, Object.defineProperty(e.prototype, "direction", { get: function get() { return this.getPropertyValue("direction"); }, set: function set(t) { this.setPropertyValue("direction", t, !0); }, enumerable: !0, configurable: !0 }), e; }(ba); Fs.registeredClasses.Triangle = rl; var sl = function () { function t(t, e) { this._tensionX = t, this._tensionY = e; } return t.prototype.smooth = function (t) { var e = this._tensionX, i = this._tensionY; if (t.length < 3 || e >= 1 && i >= 1) return br(t); var n = t[0], r = t[t.length - 1], s = !1; j(n.x, 3) == j(r.x) && j(n.y) == j(r.y) && (s = !0); for (var o = "", a = 0, l = t.length - 1; a < l; a++) { var h = t[a - 1], u = t[a], p = t[a + 1], c = t[a + 2]; 0 === a ? h = s ? t[t.length - 2] : t[a] : a == t.length - 2 && (c = s ? t[1] : t[a + 1]), o += wr(p, st(h, u, p, 0, e, i), ot(0, u, p, c, e, i)); } return o; }, t; }(), ol = function () { function t(t) { this._closed = t.closed; } return t.prototype.smooth = function (t) { var e = this, i = NaN, n = NaN, r = NaN, s = NaN, o = NaN, a = NaN, l = NaN, h = NaN, u = NaN, p = NaN, c = 0, d = "", f = function f(t, e) { d += wr({ x: (i + 4 * n + t) / 6, y: (a + 4 * l + e) / 6 }, { x: (2 * i + n) / 3, y: (2 * a + l) / 3 }, { x: (i + 2 * n) / 3, y: (a + 2 * l) / 3 }); }, g = function g(t) { var g = t.x, y = t.y; switch (c) { case 0: c = 1, e._closed ? (r = g, h = y) : d += _r({ x: g, y: y }); break; case 1: c = 2, e._closed && (s = g, u = y); break; case 2: if (c = 3, e._closed) { o = g, p = y, d += xr({ x: (i + 4 * n + g) / 6, y: (a + 4 * l + y) / 6 }); break; } d += _r({ x: (5 * i + n) / 6, y: (5 * a + l) / 6 }); default: f(g, y); } i = n, n = g, a = l, l = y; }; if (mt(t, g), this._closed) switch (c) { case 1: d += xr({ x: r, y: h }), d += " Z"; break; case 2: d += xr({ x: (r + 2 * s) / 3, y: (h + 2 * u) / 3 }), d += _r({ x: (s + 2 * r) / 3, y: (u + 2 * h) / 3 }), d += " Z"; break; case 3: g({ x: r, y: h }), g({ x: s, y: u }), g({ x: o, y: p }); } else { switch (c) { case 3: f(n, l); case 2: d += _r({ x: n, y: l }); } d += " Z"; } return d; }, t; }(), al = function (t) { function e() { var e = t.call(this) || this; return e.className = "WavedCircle", e.element = e.paper.add("path"), e.waveLength = 16, e.waveHeight = 4, e.fill = void 0, e.fillOpacity = 0, e.tension = .8, e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { var t = "", e = this.pixelRadius; e > 0 && (t = xr((i = this.getPoints(e))[0]) + new sl(this.tension, this.tension).smooth(i)); var i, n = this.pixelInnerRadius; n > 0 && ((i = this.getPoints(n)).reverse(), t += xr(i[0]) + new sl(this.tension, this.tension).smooth(i)), this.path = t; }, e.prototype.getPoints = function (t) { for (var e = t * Math.PI * 2, i = this.waveHeight / 2, n = e / Math.round(e / this.waveLength), r = n / 2, s = [], o = e / n, a = 0; a <= o; a++) { var l = a * n / e * 360, h = (a * n + r) / e * 360; s.push({ x: (t - i) * H(l), y: (t - i) * B(l) }), s.push({ x: (t + i) * H(h), y: (t + i) * B(h) }); } return s.pop(), s; }, Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !0, !1, 10, !1), this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelInnerRadius", { get: function get() { return hi(this.innerRadius, X(this.innerWidth / 2, this.innerHeight / 2)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "waveLength", { get: function get() { return this.getPropertyValue("waveLength"); }, set: function set(t) { this.setPropertyValue("waveLength", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "waveHeight", { get: function get() { return this.getPropertyValue("waveHeight"); }, set: function set(t) { this.setPropertyValue("waveHeight", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tension", { get: function get() { return this.getPropertyValue("tension"); }, set: function set(t) { this.setPropertyValue("tension", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), e; }(Ea); Fs.registeredClasses.WavedCircle = al; var ll = function (t) { function e() { var e = t.call(this) || this; return e.className = "WavedLine", e.element = e.paper.add("path"), e.waveLength = 16, e.waveHeight = 4, e.tension = .8, e.pixelPerfect = !1, e.fill = Je(), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { var t = { x: this.x1, y: this.y1 }, e = { x: this.x2, y: this.y2 }; this.path = xr(t) + Fr(t, e, this.waveLength, this.waveHeight, this.tension, !0); }, Object.defineProperty(e.prototype, "waveLength", { get: function get() { return this.getPropertyValue("waveLength"); }, set: function set(t) { this.setPropertyValue("waveLength", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "waveHeight", { get: function get() { return this.getPropertyValue("waveHeight"); }, set: function set(t) { this.setPropertyValue("waveHeight", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tension", { get: function get() { return this.getPropertyValue("tension"); }, set: function set(t) { this.setPropertyValue("tension", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), e; }(Na), hl = function (t) { function e() { var e = t.call(this) || this; return e.className = "WavedRectangle", e.element = e.paper.add("path"), e.waveLength = 16, e.waveHeight = 4, e.tension = .8, e.setPropertyValue("wavedLeft", !0), e.setPropertyValue("wavedRight", !0), e.setPropertyValue("wavedTop", !0), e.setPropertyValue("wavedBottom", !0), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.pixelWidth, i = this.pixelHeight; if (e > 0 && i > 0) { var n = { x: 0, y: 0 }, r = { x: e, y: 0 }, s = { x: e, y: i }, o = { x: 0, y: i }, a = Math.min(e, this.waveLength), l = Math.min(i, this.waveHeight), h = Math.min(i, this.waveLength), u = Math.min(e, this.waveHeight), p = "", c = "", d = "", f = ""; this.wavedTop && (p = Fr(n, r, a, l, this.tension, !0)), this.wavedRight && (c = Fr(r, s, h, u, this.tension, !0)), this.wavedBottom && (d = Fr(s, o, a, l, this.tension, !0)), this.wavedLeft && (f = Fr(o, n, h, u, this.tension, !0)), this.path = xr(n) + p + _r(r) + c + _r(s) + d + _r(o) + f + "z"; } }, Object.defineProperty(e.prototype, "waveLength", { get: function get() { return this.getPropertyValue("waveLength"); }, set: function set(t) { this.setPropertyValue("waveLength", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "waveHeight", { get: function get() { return this.getPropertyValue("waveHeight"); }, set: function set(t) { this.setPropertyValue("waveHeight", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), e.prototype.setWavedSides = function (t, e, i, n) { this.wavedTop = t, this.wavedRight = e, this.wavedBottom = i, this.wavedLeft = n; }, Object.defineProperty(e.prototype, "tension", { get: function get() { return this.getPropertyValue("tension"); }, set: function set(t) { this.setPropertyValue("tension", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "wavedRight", { get: function get() { return this.getPropertyValue("wavedRight"); }, set: function set(t) { this.setPropertyValue("wavedRight", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "wavedLeft", { get: function get() { return this.getPropertyValue("wavedLeft"); }, set: function set(t) { this.setPropertyValue("wavedLeft", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "wavedTop", { get: function get() { return this.getPropertyValue("wavedTop"); }, set: function set(t) { this.setPropertyValue("wavedTop", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "wavedBottom", { get: function get() { return this.getPropertyValue("wavedBottom"); }, set: function set(t) { this.setPropertyValue("wavedBottom", t, !0); }, enumerable: !0, configurable: !0 }), e; }(xa), ul = function (t) { function e() { var e = t.call(this) || this; e.className = "ZoomOutButton", e.padding(9, 9, 9, 9), e.showSystemTooltip = !0; var i = new ta(), n = e.background; n.cornerRadius(20, 20, 20, 20), n.fill = i.getFor("primaryButton"), n.stroke = i.getFor("primaryButtonStroke"), n.strokeOpacity = 0, n.states.getKey("hover").properties.fill = i.getFor("primaryButtonHover"), n.states.getKey("down").properties.fill = i.getFor("primaryButtonActive"); var r = new ba(); r.element = e.paper.add("path"); var s = xr({ x: 0, y: 0 }); return s += _r({ x: 11, y: 0 }), r.path = s, r.pixelPerfect = !0, r.padding(8, 3, 8, 3), r.stroke = i.getFor("primaryButtonText"), e.icon = r, e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Zoom Out")); }, e; }(La); Fs.registeredClasses.ZoomOutButton = ul; var pl = function (t) { function e() { var e = t.call(this) || this; e.className = "PlayButton", e.padding(12, 12, 12, 12), e.showSystemTooltip = !0; var i = new ta(), n = e.background; n.cornerRadius(25, 25, 25, 25), n.fill = i.getFor("primaryButton"), n.stroke = i.getFor("primaryButtonStroke"), n.strokeOpacity = 0, n.states.getKey("hover").properties.fill = i.getFor("primaryButtonHover"), n.states.getKey("down").properties.fill = i.getFor("primaryButtonActive"); var r = new rl(); r.direction = "right", r.width = 9, r.height = 11, r.marginLeft = 1, r.marginRight = 1, r.horizontalCenter = "middle", r.verticalCenter = "middle", r.stroke = i.getFor("primaryButtonText"), r.fill = r.stroke, e.icon = r; var s = new ja(); s.width = 11, s.height = 11, s.horizontalCenter = "middle", s.verticalCenter = "middle", s.cornerRadius(0, 0, 0, 0), s.stroke = i.getFor("primaryButtonText"), s.fill = r.stroke, e.togglable = !0; var o = e.states.create("active"); return o.transitionDuration = 0, o.properties.icon = s, e.defaultState.transitionDuration = 0, e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Play")); }, e; }(La); Fs.registeredClasses.PlayButton = pl; var cl = function (t) { function e() { var e = t.call(this) || this; return e.className = "ColorModifier", e.applyTheme(), e; } return n(e, t), e.prototype.modify = function (t) { return t; }, e; }($s); Fs.registeredClasses.ColorModifier = cl; var dl = function (t) { function e() { var e = t.call(this) || this; return e.lightnesses = [], e.brightnesses = [], e.opacities = [], e.offsets = [], e.className = "GradientModifier", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "lightnesses", { get: function get() { return this._lightnesses; }, set: function set(t) { this._lightnesses = t, this._brightnesses = []; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "brightnesses", { get: function get() { return this._brightnesses; }, set: function set(t) { this._brightnesses = t, this._lightnesses = []; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "opacities", { get: function get() { return this._opacities; }, set: function set(t) { this._opacities = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "offsets", { get: function get() { return this._offsets; }, set: function set(t) { this._offsets = t; }, enumerable: !0, configurable: !0 }), e.prototype.modify = function (t) { this.gradient.clear(); var e = 0; this.opacities && (e = W(e, this.opacities.length)), this.lightnesses && (e = W(e, this.lightnesses.length)), this.brightnesses && (e = W(e, this.brightnesses.length)); for (var i, n, r = 1, s = 0; s < e; s++) { var o = t; this.opacities && A(this.opacities[s]) && (r = this.opacities[s]), this.lightnesses && A(this.lightnesses[s]) && (i = this.lightnesses[s], n = void 0), this.brightnesses && A(this.brightnesses[s]) && (n = this.brightnesses[s], i = void 0), A(n) ? o = t.brighten(this.brightnesses[s]) : A(i) && (o = t.lighten(this.lightnesses[s])); var a = this.offsets[s]; this.gradient.addColor(o, r, a); } return this.gradient; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this._offsets = e.offsets, this._brightnesses = e.brightnesses, this._lightnesses = e.lightnesses, this._opacities = e.opacities; }, e; }(cl); Fs.registeredClasses.GradientModifier = dl; var fl = function (t) { function e() { var e = t.call(this) || this; return e.className = "LinearGradientModifier", e.gradient = new ia(), e.applyTheme(), e; } return n(e, t), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.gradient = e.gradient.clone(); }, e; }(dl); Fs.registeredClasses.LinearGradientModifier = fl; var gl = function (t) { function e() { var e = t.call(this) || this; return e.className = "Cone", e.angle = 30, e.radius = h(100), e.topRadius = h(100), e.top = e.createChild(Ra), e.top.shouldClone = !1, e.bottom = e.createChild(Ra), e.bottom.shouldClone = !1, e.body = e.createChild(ba), e.body.shouldClone = !1, e.body.setElement(e.paper.add("path")), e.layout = "none", e.bodyFillModifier = new fl(), e.bodyFillModifier.lightnesses = [0, -.25, 0], e.body.fillModifier = e.bodyFillModifier, e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this), ne(this, this.top, va), ne(this, this.bottom, va), ne(this, this.body, va); var e, i, n, r = this.innerWidth, s = this.innerHeight, o = this.bottom, a = this.top, l = this.angle; "horizontal" == this.orientation ? (e = s / 2, o.y = s / 2, a.y = s / 2, a.x = r, i = (90 - l) / 90, n = 0, this.bodyFillModifier.gradient.rotation = 90) : (i = 0, n = (90 - l) / 90, e = r / 2, o.y = s, o.x = r / 2, a.x = r / 2, this.bodyFillModifier.gradient.rotation = 0); var h, u = this.radius.value * e, p = this.topRadius.value * e; o.radius = u - u * i, o.radiusY = u - u * n, a.radius = p - p * i, a.radiusY = p - p * n, h = "horizontal" == this.orientation ? xr({ x: 0, y: s / 2 - o.radiusY }) + Or(-90, -180, o.radius, o.radiusY) + _r({ x: r, y: s / 2 + a.radiusY }) + Or(90, 180, a.radius, a.radiusY) + " Z" : xr({ x: r / 2 - a.radius, y: 0 }) + Or(180, -180, a.radius, a.radiusY) + _r({ x: r / 2 + o.radius, y: s }) + Or(0, 180, o.radius, o.radiusY) + " Z", this.body.path = h; }, Object.defineProperty(e.prototype, "angle", { get: function get() { return this.getPropertyValue("angle"); }, set: function set(t) { this.setPropertyValue("angle", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPropertyValue("radius", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "topRadius", { get: function get() { return this.getPropertyValue("topRadius"); }, set: function set(t) { this.setPropertyValue("topRadius", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "orientation", { get: function get() { return this.getPropertyValue("orientation"); }, set: function set(t) { this.setPropertyValue("orientation", t, !0); }, enumerable: !0, configurable: !0 }), e; }(_a), yl = function (t) { function e() { var e = t.call(this) || this; return e.className = "LightenFilter", e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({ type: "matrix" }), e.filterPrimitives.push(e.feColorMatrix), e.lightness = 0, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "lightness", { get: function get() { return this.properties.lightness; }, set: function set(t) { this.properties.lightness = t; var e = t + 1; this.feColorMatrix.attr({ values: e + " 0 0 0 0 0 " + e + " 0 0 0 0 0 " + e + " 0 0 0 0 0 1 0" }); }, enumerable: !0, configurable: !0 }), e; }(tl); Fs.registeredClasses.LightenFilter = yl; var ml = function (t) { function e() { var e = t.call(this) || this; e.angle = 30, e.depth = 30, e.className = "Rectangle3D", e.layout = "none"; var i = e.createChild(ba); i.shouldClone = !1, i.setElement(e.paper.add("path")), i.isMeasured = !1, e.sideBack = i, e._disposers.push(e.sideBack); var n = e.createChild(ba); n.shouldClone = !1, n.setElement(e.paper.add("path")), n.isMeasured = !1, e.sideBottom = n, e._disposers.push(e.sideBottom); var r = e.createChild(ba); r.shouldClone = !1, r.setElement(e.paper.add("path")), r.isMeasured = !1, e.sideLeft = r, e._disposers.push(e.sideLeft); var s = e.createChild(ba); s.shouldClone = !1, s.setElement(e.paper.add("path")), s.isMeasured = !1, e.sideRight = s, e._disposers.push(e.sideRight); var o = e.createChild(ba); o.shouldClone = !1, o.setElement(e.paper.add("path")), o.isMeasured = !1, e.sideTop = o, e._disposers.push(e.sideTop); var a = e.createChild(ba); return a.shouldClone = !1, a.setElement(e.paper.add("path")), a.isMeasured = !1, e.sideFront = a, e._disposers.push(e.sideFront), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.innerWidth, i = this.innerHeight, n = this.depth, r = this.angle, s = B(r), o = H(r), a = { x: 0, y: 0 }, l = { x: e, y: 0 }, h = { x: e, y: i }, u = { x: 0, y: i }, p = { x: n * o, y: -n * s }, c = { x: n * o + e, y: -n * s }, d = { x: n * o + e, y: -n * s + i }, f = { x: n * o, y: -n * s + i }; this.sideFront.path = xr(a) + _r(l) + _r(h) + _r(u) + " Z", this.sideBack.path = xr(p) + _r(c) + _r(d) + _r(f) + " Z", this.sideLeft.path = xr(a) + _r(p) + _r(f) + _r(u) + " Z", this.sideRight.path = xr(l) + _r(c) + _r(d) + _r(h) + " Z", this.sideBottom.path = xr(u) + _r(f) + _r(d) + _r(h) + " Z", this.sideTop.path = xr(a) + _r(p) + _r(c) + _r(l) + " Z"; }, Object.defineProperty(e.prototype, "depth", { get: function get() { return this.getPropertyValue("depth"); }, set: function set(t) { this.setPropertyValue("depth", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "angle", { get: function get() { return this.getPropertyValue("angle"); }, set: function set(t) { this.setPropertyValue("angle", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.setFill = function (e) { var i; if (t.prototype.setFill.call(this, e), e instanceof qs) i = e.hex;else if (e instanceof ia || e instanceof na) i = e.stops.getIndex(0).color.hex;else { var n = new yl(); n.lightness = -.2, this.sideBack.filters.push(n); var r = n.clone(); r.lightness = -.4, this.sideLeft.filters.push(r); var s = n.clone(); s.lightness = -.2, this.sideRight.filters.push(s); var o = n.clone(); o.lightness = -.1, this.sideTop.filters.push(o); var a = n.clone(); a.lightness = -.5, this.sideBottom.filters.push(a); } i && (this.sideBack.fill = Je(i).lighten(-.2), this.sideLeft.fill = Je(i).lighten(-.4), this.sideRight.fill = Je(i).lighten(-.2), this.sideTop.fill = Je(i).lighten(-.1), this.sideBottom.fill = Je(i).lighten(-.5)); }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.sideBack.copyFrom(e.sideBack), this.sideLeft.copyFrom(e.sideLeft), this.sideRight.copyFrom(e.sideRight), this.sideTop.copyFrom(e.sideTop), this.sideBottom.copyFrom(e.sideBottom); }, e; }(_a), vl = function (t) { function e() { var e = t.call(this) || this; e.className = "Slice3D", e.layout = "none"; var i = e.createChild(ba); e.edge = i, i.shouldClone = !1, i.isMeasured = !1, i.toBack(), e.angle = 30, e.depth = 20; var n = e.createChild(ba); e.sideA = n, n.shouldClone = !1, n.isMeasured = !1; var r = e.createChild(ba); return e.sideB = r, r.shouldClone = !1, r.isMeasured = !1, e.applyTheme(), e; } return n(e, t), e.prototype.setFill = function (e) { var i; if (t.prototype.setFill.call(this, e), e instanceof qs) i = e.hex;else if (e instanceof ia || e instanceof na) i = e.stops.getIndex(0).color.hex;else { var n = new yl(); n.lightness = -.25, this.edge.filters.push(n), this.sideA.filters.push(n.clone()), this.sideB.filters.push(n.clone()); } if (i) { var r = Je(i).lighten(-.25); this.edge.fill = r, this.sideA.fill = r, this.sideB.fill = r, this.edge.stroke = r, this.sideA.stroke = r, this.sideB.stroke = r; } }, e.prototype.draw = function () { if (this.cornerRadius = 0, this.innerCornerRadius = 0, t.prototype.draw.call(this), 0 !== this.arc && this.radius > 0 && this.depth > 0) { this.sideB.show(0), this.sideA.show(0), this.edge.show(0); for (var e = this.startAngle, i = this.arc, n = this.pixelInnerRadius || 0, r = this.radiusY || 0, s = this.radius, o = e + i, a = r / s * n, l = { x: H(e) * n, y: B(e) * a }, h = { x: H(e) * s, y: B(e) * r }, u = { x: H(o) * s, y: B(o) * r }, p = { x: H(o) * n, y: B(o) * a }, c = this.depth, d = { x: l.x, y: l.y - c }, f = { x: h.x, y: h.y - c }, g = { x: u.x, y: u.y - c }, y = { x: p.x, y: p.y - c }, m = "", v = Math.ceil(i / 5), b = i / v, x = e, _ = f, P = 0; P < v; P++) if ((x += b) > 0 && x < 180) { m += xr(_); var w = { x: H(x) * s, y: B(x) * r - c }; m += _r({ x: _.x, y: _.y + c }), m += Ir({ x: w.x, y: w.y + c }, s, r, !0), m += _r(w), m += Ir(_, s, r), m += "z", _ = w; } else m += xr(_), m += Ir(w = { x: H(x) * s, y: B(x) * r - c }, s, r, !0), m += _r({ x: w.x, y: w.y + c }), m += Ir({ x: _.x, y: _.y + c }, s, r), m += _r(_), m += "z", _ = w; for (_ = d, x = e, P = 0; P < v; P++) (x += b) > 0 && x < 180 ? (m += xr(_), w = { x: H(x) * n, y: B(x) * a - c }, m += _r({ x: _.x, y: _.y + c }), m += Ir({ x: w.x, y: w.y + c }, n, a, !0), m += _r(w), m += Ir(_, n, a), m += "z", _ = w) : (m += xr(_), m += Ir(w = { x: H(x) * n, y: B(x) * a - c }, n, a, !0), m += _r({ x: w.x, y: w.y + c }), m += Ir({ x: _.x, y: _.y + c }, n, a), m += _r(_), m += "z", _ = w); this.edge.path = m, this.sideA.path = xr(l) + _r(h) + _r(f) + _r(d) + " Z", this.sideB.path = xr(u) + _r(p) + _r(y) + _r(g) + " Z", this.startAngle < 90 ? this.sideA.toBack() : this.sideA.toFront(), this.startAngle + this.arc > 90 ? this.sideB.toBack() : this.sideB.toFront(), this.slice.dy = -c; } else this.sideA.hide(0), this.sideB.hide(0), this.edge.hide(0); }, Object.defineProperty(e.prototype, "depth", { get: function get() { return this.getPropertyValue("depth"); }, set: function set(t) { this.setPropertyValue("depth", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "angle", { get: function get() { var t = this.getPropertyValue("angle"); return A(t) || (t = 0), t; }, set: function set(t) { this.setPropertyValue("angle", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radiusY", { get: function get() { var t = this.getPropertyValue("radiusY"); return A(t) || (t = this.radius - this.radius * this.angle / 90), t; }, set: function set(t) { this.setPropertyValue("radiusY", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.edge.copyFrom(e.edge), this.sideA.copyFrom(e.sideA), this.sideB.copyFrom(e.sideB); }, e; }(Ka), bl = function (t) { function e() { var e = t.call(this) || this; return e.className = "RadialGradientModifier", e.gradient = new na(), e.applyTheme(), e; } return n(e, t), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.gradient = e.gradient.clone(); }, e; }(dl); Fs.registeredClasses.RadialGradientModifier = bl; var xl = function (t) { function e() { var e = t.call(this) || this; return e._line = e.paper.add("line"), e.addElement(e._line), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this), this._line && this._line.attr({ x2: 2 * this.width }); }, e; }(ea); Fs.registeredClasses.LinePattern = xl; var _l = function (t) { function e() { var e = t.call(this) || this; return e.rectHeight = 1, e.rectWidth = 1, e; } return n(e, t), e.prototype.draw = function () { this._rect && this.removeElement(this._rect), this._rect = this.paper.add("rect"), this._rect.attr({ width: this.rectWidth, height: this.rectHeight }), this.addElement(this._rect), t.prototype.draw.call(this); }, Object.defineProperty(e.prototype, "rectWidth", { get: function get() { return this.properties.rectWidth; }, set: function set(t) { this.properties.rectWidth = t, this.draw(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "rectHeight", { get: function get() { return this.properties.rectHeight; }, set: function set(t) { this.properties.rectHeight = t, this.draw(); }, enumerable: !0, configurable: !0 }), e; }(ea); Fs.registeredClasses.RectPattern = _l; var Pl = function (t) { function e() { var e = t.call(this) || this; return e.className = "ColorizeFilter", e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({ type: "matrix" }), e.filterPrimitives.push(e.feColorMatrix), e.intensity = 1, e.applyTheme(), e; } return n(e, t), e.prototype.applyFilter = function () { var t, e, i, n = this.intensity, r = 1 - n, s = this.color; s && s.rgb ? (t = s.rgb.r / 255 * n, e = s.rgb.g / 255 * n, i = s.rgb.b / 255 * n) : (t = 0, e = 0, i = 0), this.feColorMatrix.attr({ values: r + " 0 0 0 " + t + " 0 " + r + " 0 0 " + e + " 0 0 " + r + " 0 " + i + " 0 0 0 1 0" }); }, Object.defineProperty(e.prototype, "color", { get: function get() { return this.properties.color; }, set: function set(t) { this.properties.color = t, this.applyFilter(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "intensity", { get: function get() { return this.properties.intensity; }, set: function set(t) { this.properties.intensity = t, this.applyFilter(); }, enumerable: !0, configurable: !0 }), e; }(tl); Fs.registeredClasses.ColorizeFilter = Pl; var wl = function (t) { function e() { var e = t.call(this) || this; return e.className = "DesaturateFilter", e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({ type: "saturate" }), e.filterPrimitives.push(e.feColorMatrix), e.width = 120, e.height = 120, e.saturation = 0, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "saturation", { get: function get() { return this.properties.saturation; }, set: function set(t) { this.properties.saturation = t, this.feColorMatrix.attr({ values: t.toString() }); }, enumerable: !0, configurable: !0 }), e; }(tl); Fs.registeredClasses.DesaturateFilter = wl; var Cl = function (t) { function e() { var e = t.call(this) || this; return e.className = "BlurFilter", e.feGaussianBlur = e.paper.add("feGaussianBlur"), e.feGaussianBlur.attr({ result: "blurOut", "in": "SourceGraphic" }), e.filterPrimitives.push(e.feGaussianBlur), e.width = 200, e.height = 200, e.blur = 1.5, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "blur", { get: function get() { return this.properties.blur; }, set: function set(t) { this.properties.blur = t, this.feGaussianBlur.attr({ stdDeviation: t / this.scale }); }, enumerable: !0, configurable: !0 }), e; }(tl); Fs.registeredClasses.BlurFilter = Cl; var Ol = function (t) { function e() { var e = t.call(this) || this; return e.className = "FocusFilter", e.feFlood = e.paper.add("feFlood"), e.feFlood.attr({ "flood-color": new ta().getFor("primaryButtonHover"), result: "base" }), e.filterPrimitives.push(e.feFlood), e.feMorphology = e.paper.add("feMorphology"), e.feMorphology.attr({ result: "bigger", "in": "SourceGraphic", operator: "dilate", radius: "2" }), e.filterPrimitives.push(e.feMorphology), e.feColorMatrix = e.paper.add("feColorMatrix"), e.feColorMatrix.attr({ result: "mask", "in": "bigger", type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0" }), e.filterPrimitives.push(e.feColorMatrix), e.feComposite = e.paper.add("feComposite"), e.feComposite.attr({ result: "drop", "in": "base", in2: "mask", operator: "in" }), e.filterPrimitives.push(e.feComposite), e.feBlend = e.paper.add("feBlend"), e.feBlend.attr({ "in": "SourceGraphic", in2: "drop", mode: "normal" }), e.filterPrimitives.push(e.feBlend), e.width = 130, e.height = 130, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "stroke", { get: function get() { return this.properties.stroke; }, set: function set(t) { this.properties.stroke = t, this.feFlood.attr({ "flood-color": t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "strokeWidth", { get: function get() { return this.properties.strokeWidth; }, set: function set(t) { this.properties.strokeWidth = t, this.feMorphology.attr({ radius: t }); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "opacity", { get: function get() { return this.properties.opacity; }, set: function set(t) { this.properties.opacity = t, this.feColorMatrix.attr({ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 " + t + " 0" }); }, enumerable: !0, configurable: !0 }), e.prototype.setSprite = function (e) { this._sprite && this._sprite != e && this._sprite.group.removeStyle("outline"), e.group.addStyle({ outline: "none" }), t.prototype.setSprite.call(this, e); }, e; }(tl), Sl = function (t) { function e() { var e = t.call(this) || this; return e._list = [], e._currentStep = 0, e._startIndex = 0, e._currentPass = 0, e.baseColor = new qs({ r: 103, g: 183, b: 220 }), e.stepOptions = {}, e.passOptions = { brighten: -.2 }, e.step = 1, e.minColors = 20, e.minLightness = .2, e.maxLightness = .9, e.shuffle = !1, e.wrap = !0, e.reuse = !1, e.saturation = 1, e.className = "ColorSet", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "list", { get: function get() { return this._list || this.generate(this.minColors), this._list; }, set: function set(t) { this._list = t, this.reset(); }, enumerable: !0, configurable: !0 }), e.prototype.getReusableColor = function (t) { if (0 == this._list.length) return this.generate(1), this.list[0]; var e = t - Math.floor(t / this._list.length) * this.list.length; return this.list[e]; }, e.prototype.next = function () { var t; return this.list.length <= this._currentStep ? this.reuse ? t = this.getReusableColor(this._currentStep) : (this.generate(this.minColors), t = this.list[this._currentStep]) : t = this.list[this._currentStep], this._currentStep += this.step, t.saturate(this.saturation); }, e.prototype.getIndex = function (t) { var e; return this.list.length <= t ? this.reuse ? e = this.getReusableColor(t) : (this.generate(this.minColors), e = this.getIndex(t)) : e = this.list[t], e.saturate(this.saturation); }, e.prototype.reset = function () { this._currentStep = this._startIndex; }, Object.defineProperty(e.prototype, "currentStep", { get: function get() { return this._currentStep; }, set: function set(t) { this._currentStep = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startIndex", { get: function get() { return this._startIndex; }, set: function set(t) { this._startIndex = t, this.reset(); }, enumerable: !0, configurable: !0 }), e.prototype.generate = function (t) { var e = Ke(I(this.currentColor.rgb)), i = S(this.stepOptions.hue) ? this.stepOptions.hue : 1 / t, n = { brighten: 0, lighten: 0, hue: e.h, lightness: e.l, saturation: e.s }, r = [], s = 0 == this.list.length ? 0 : 1; if (this.reuse) for (var o = s; o < t; o++) r.push(Ke(I(this._list[o].rgb)).h);else for (o = s; o < t; o++) { var a = e.h + i * o; this.wrap && a > 1 && (a -= 1), r.push(a); } for (this.shuffle && r.sort(function (t, e) { return Math.random() - .5; }), o = 0; o < t; o++) { this.reuse ? e = Ke(I(this._list[o].rgb)) : e.h = r.shift(), this.applyStepOptions(e, n, o + 1, this._currentPass); var l = Je(Ge(e)), h = (this.stepOptions.brighten || 0) * (o + 1) + (this.passOptions.brighten || 0) * this._currentPass; 0 != h && (h = this.wrap ? Ni(h, this.minLightness, this.maxLightness) : Bi(h, this.minLightness, this.maxLightness), l = l.brighten(h)); var u = (this.stepOptions.lighten || 0) * (o + 1) + (this.passOptions.lighten || 0) * this._currentPass; 0 != u && (u = this.wrap ? Ni(u, this.minLightness, this.maxLightness) : Bi(u, this.minLightness, this.maxLightness), l = l.lighten(u)), this._list.push(l); } this._currentPass++; }, Object.defineProperty(e.prototype, "currentColor", { get: function get() { return 0 == this._list.length ? this.baseColor.saturate(this.saturation) : this._list[this._list.length - 1].saturate(this.saturation); }, enumerable: !0, configurable: !0 }), e.prototype.applyStepOptions = function (t, e, i, n) { t.l = e.lightness + (this.stepOptions.lightness || 0) * i + (this.passOptions.lightness || 0) * n, this.wrap ? (t.l > 1 ? t.l = t.l - Math.floor(t.l) : t.l < 0 && (t.l = -(t.l - Math.floor(t.l))), t.l = Ni(t.l, this.minLightness, this.maxLightness)) : (t.l > 1 ? t.l = 1 : t.l < 0 && (t.l = 0), t.l = Bi(t.l, this.minLightness, this.maxLightness)); }, e.prototype.processConfig = function (e) { if (e && S(e.list) && F(e.list)) for (var i = 0, n = e.list.length; i < n; i++) e.list[i] instanceof qs || (e.list[i] = Je(e.list[i])); t.prototype.processConfig.call(this, e); }, e; }($s); Fs.registeredClasses.ColorSet = Sl; var Il = function () { function t() { this._disposed = !1, this._disposers = []; } return t.prototype.init = function () {}, t.prototype.isDisposed = function () { return this._disposed; }, t.prototype.dispose = function () { if (!this._disposed) { this._disposed = !0; var t = this._disposers; for (this._disposers = null; 0 !== t.length;) t.shift().dispose(); } }, t; }(), Dl = function (t) { function e() { var e = t.call(this) || this; e.className = "AmChartsLogo", e.valign = "bottom"; e.opacity = .3, e.defaultState.properties.opacity = .4, e.url = "https://www.amcharts.com/", e.urlTarget = "_blank", e.showSystemTooltip = !0, e.readerTitle = "Chart created using amCharts library", e.width = 66, e.height = 21, e.background.opacity = 0; var i = Je("#474758"); "#ffffff" == new ta().getFor("background").alternative.hex && (i = Je("#ffffff")); var n = new ia(); n.addColor(i), n.addColor(i, 1, .75), n.addColor(Je("#3cabff"), 1, .755), n.rotation = -10; var r = n, s = e.createChild(Ga); s.shouldClone = !1, s.isMeasured = !1, s.segments = [[{ x: 15, y: 15 }, { x: 27, y: 15 }, { x: 36, y: 6 }, { x: 40.5, y: 10.5 }, { x: 45, y: 6 }, { x: 54, y: 15 }, { x: 60, y: 15 }]], s.strokeWidth = 6 * .3, s.tensionX = .8, s.tensionY = 1, s.stroke = Je("#3cabff"); var o = e.createChild(Ga); o.shouldClone = !1, o.isMeasured = !1, o.segments = [[{ x: 6, y: 15 }, { x: 15, y: 15 }, { x: 27, y: 12 * .3 }, { x: 39.9, y: 15 }, { x: 51, y: 15 }, { x: 60, y: 15 }]], o.strokeWidth = 6 * .3, o.tensionX = .75, o.tensionY = 1, o.stroke = r, e._disposers.push(o); var a = new wl(); e.filters.push(a); var l = new wl(); l.saturation = 1; var h = e.states.create("hover"); return h.properties.opacity = 1, h.filters.push(l), e.applyTheme(), e; } return n(e, t), e; }(_a), kl = function (t) { function e() { var e = t.call(this) || this; e.className = "Grip"; var i = new ta(); e.layout = "absolute", e.padding(10, 10, 10, 10), e.margin(3, 3, 3, 3), e.background.fillOpacity = .3, e.background.cornerRadius(10, 10, 10, 10); var n = new ba(); n.element = e.paper.add("path"); var r = xr({ x: -6, y: 0 }); return r += _r({ x: 6, y: 0 }), r += xr({ x: -8, y: -6 }), r += _r({ x: 0, y: -12 }), r += _r({ x: 8, y: -6 }), r += xr({ x: -8, y: 6 }), r += _r({ x: 0, y: 12 }), r += _r({ x: 8, y: 6 }), n.path = r, n.strokeWidth = 2, n.fillOpacity = 0, n.pixelPerfect = !0, n.padding(0, 4, 0, 4), n.stroke = i.getFor("text"), n.strokeOpacity = .7, n.align = "center", n.valign = "middle", e.icon = n, e.label.dispose(), e.label = void 0, e.position = "right", e.autoHideDelay = 3e3, e.events.on("shown", function (t) { e._autoHideTimeout && e._autoHideTimeout.dispose(), e.autoHideDelay && (e._autoHideTimeout = e.setTimeout(function () { e.hide(); }, e.autoHideDelay)); }), e.events.on("down", function (t) { e._autoHideTimeout && e._autoHideTimeout.dispose(); }), e.events.on("out", function (t) { e.autoHideDelay && (e._autoHideTimeout = e.setTimeout(function () { e.hide(); }, e.autoHideDelay)); }), e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "position", { get: function get() { return this.getPropertyValue("position"); }, set: function set(t) { if (this.setPropertyValue("position", t)) switch (t) { case "left": this.align = "left", this.valign = "middle", this.horizontalCenter = "left", this.verticalCenter = "middle", this.icon.rotation = 0, this.width = void 0, this.height = h(30); break; case "right": this.align = "right", this.valign = "middle", this.horizontalCenter = "right", this.verticalCenter = "middle", this.icon.rotation = 0, this.width = void 0, this.height = h(30); break; case "top": this.align = "center", this.valign = "top", this.horizontalCenter = "middle", this.verticalCenter = "top", this.icon.rotation = 90, this.width = h(30), this.height = void 0; break; case "bottom": this.align = "center", this.valign = "bottom", this.horizontalCenter = "middle", this.verticalCenter = "bottom", this.icon.rotation = 90, this.width = h(30), this.height = void 0; break; default: this.align = "center", this.valign = "middle", this.horizontalCenter = "middle", this.verticalCenter = "middle", this.icon.rotation = 90, this.width = h(30), this.height = void 0; } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "autoHideDelay", { get: function get() { return this.getPropertyValue("autoHideDelay"); }, set: function set(t) { this.setPropertyValue("autoHideDelay", t); }, enumerable: !0, configurable: !0 }), e; }(La); Fs.registeredClasses.Grip = kl; var Tl = function (t) { function e() { var e = t.call(this) || this; return e.className = "ChartDataItem", e.applyTheme(), e; } return n(e, t), e; }(Va), Al = function (t) { function e() { var i = t.call(this) || this; if (i._legend = new ys(), i.constructor === e) throw new Error("'Chart' cannot be instantiated directly. Please use a specific chart type."); i.className = "Chart"; var n = new Ma(); i.titles = new Hs(n), i._disposers.push(new Bs(i.titles)), i._disposers.push(n), i.width = h(100), i.height = h(100), i.layout = "vertical"; var r = i.createChild(_a); r.shouldClone = !1, r.layout = "vertical", r.width = h(100), r.height = h(100), i.chartAndLegendContainer = r; var s = r.createChild(_a); return s.shouldClone = !1, s.width = h(100), s.height = h(100), i.chartContainer = s, i.showOnInit = !0, i._disposers.push(i._legend), i.titles.events.on("inserted", function (t) { i.processTitle(t), i.updateReaderTitleReferences(); }, i, !1), i.titles.events.on("removed", function (t) { i.updateReaderTitleReferences(); }, i, !1), i.role = "widget", i.defaultState.transitionDuration = 1, i.applyTheme(), i; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Chart")); }, e.prototype.draw = function () { this.fixLayout(), t.prototype.draw.call(this); }, e.prototype.fixLayout = function () { var t = this.legend; if (t) { var e = this.chartAndLegendContainer, i = this.chartContainer; switch (i.x = void 0, i.y = void 0, t.x = void 0, t.y = void 0, t.position) { case "left": e.layout = "horizontal", A(t.width) || (t.width = 200), t.toBack(); break; case "right": e.layout = "horizontal", A(t.width) || (t.width = 200), t.toFront(); break; case "top": e.layout = "vertical", t.maxWidth = void 0, t.width = h(100), t.toBack(); break; case "bottom": e.layout = "vertical", t.maxWidth = void 0, t.width = h(100), t.toFront(); } } }, e.prototype.feedLegend = function () {}, e.prototype.processTitle = function (t) { var e = t.newValue; return e.parent = this, e.toBack(), e.shouldClone = !1, e.align = "center", e.uidAttr(), e; }, e.prototype.updateReaderTitleReferences = function () { if (this.titles.length) { var t = []; pe(this.titles.iterator(), function (e) { t.push(e.uid); }), this.setSVGAttribute({ "aria-labelledby": t.join(" ") }); } else this.removeSVGAttribute("aria-labelledby"); }, Object.defineProperty(e.prototype, "legend", { get: function get() { return this._legend.get(); }, set: function set(t) { this.setLegend(t); }, enumerable: !0, configurable: !0 }), e.prototype.setLegend = function (t) { var e = this; this._legend.get() !== t && (t ? (t.parent = this.chartAndLegendContainer, this._legend.set(t, t.events.on("propertychanged", function (t) { "position" != t.property && "width" != t.property || e.fixLayout(); }, void 0, !1))) : this._legend.reset(), this.feedLegend()); }, e.prototype.dispose = function () { this.legend && this.legend.dispose(), t.prototype.dispose.call(this); }, e.prototype.processConfig = function (e) { e && S(e.legend) && !S(e.legend.type) && (e.legend.type = "Legend"), t.prototype.processConfig.call(this, e); }, e.prototype.copyFrom = function (e) { this.titles.copyFrom(e.titles), e.legend && (this.legend = e.legend.clone(), this.legend.removeChildren()), t.prototype.copyFrom.call(this, e); }, Object.defineProperty(e.prototype, "dragGrip", { get: function get() { var t = this; if (!this._dragGrip) { var e = this.tooltipContainer.createChild(kl); e.align = "right", e.valign = "middle", e.hide(0), e.events.on("down", function (e) { e.touch && (t.interactionsEnabled = !1); }), e.events.on("up", function (e) { t.interactionsEnabled = !0; }), this.events.on("down", function (t) { t.touch && e.show(); }), this._dragGrip = e; } return this._dragGrip; }, set: function set(t) { this._dragGrip = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "focusable", { get: function get() { return this.parent.focusable; }, set: function set(t) { this.parent.focusable = !0; }, enumerable: !0, configurable: !0 }), e; }(Fa); Fs.registeredClasses.Chart = Al, Ta.push({ relevant: Aa.widthXS, state: function state(t, e) { if (t instanceof Al) { var i = t.states.create(e); return t.pixelPaddingLeft > 10 && (i.properties.paddingLeft = 10), t.pixelPaddingRight > 10 && (i.properties.paddingRight = 10), i; } return null; } }), Ta.push({ relevant: Aa.heightXS, state: function state(t, e) { if (t instanceof Al) { var i = t.states.create(e); return t.pixelPaddingTop > 10 && (i.properties.paddingTop = 10), t.pixelPaddingBottom > 10 && (i.properties.paddingBottom = 10), i; } return null; } }), Ta.push({ relevant: Aa.widthXXS, state: function state(t, e) { if (t instanceof Al) { var i = t.states.create(e); return i.properties.paddingLeft = 0, i.properties.paddingRight = 0, i; } return null; } }), Ta.push({ relevant: Aa.heightXXS, state: function state(t, e) { if (t instanceof Al) { var i = t.states.create(e); return i.properties.paddingTop = 0, i.properties.paddingBottom = 0, i; } return null; } }); var Vl = function (t) { function e() { var e = t.call(this) || this; return e.className = "Bullet", e.isMeasured = !1, e.tooltipX = 0, e.tooltipY = 0, e.layout = "none", e.applyOnClones = !0, e.copyToLegendMarker = !0, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "locationX", { get: function get() { return this.getPropertyValue("locationX"); }, set: function set(t) { if (this.setPropertyValue("locationX", t)) { var e = this.dataItem; e && e.component && e.component.invalidate(); } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "locationY", { get: function get() { return this.getPropertyValue("locationY"); }, set: function set(t) { if (this.setPropertyValue("locationY", t)) { var e = this.dataItem; e && e.component && e.component.invalidate(); } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "xField", { get: function get() { return this.getPropertyValue("xField"); }, set: function set(t) { this.setPropertyValue("xField", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "yField", { get: function get() { return this.getPropertyValue("yField"); }, set: function set(t) { this.setPropertyValue("yField", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "isDynamic", { get: function get() { return this.getPropertyValue("isDynamic"); }, set: function set(t) { this.setPropertyValue("isDynamic", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "copyToLegendMarker", { get: function get() { return this.getPropertyValue("copyToLegendMarker"); }, set: function set(t) { this.setPropertyValue("copyToLegendMarker", t); }, enumerable: !0, configurable: !0 }), e; }(_a); Fs.registeredClasses.Bullet = Vl, Ta.push({ relevant: Aa.isXS, state: function state(t, e) { if (t instanceof Vl) { var i = t.states.create(e); return i.properties.disabled = !0, i; } return null; } }); var Fl = function (t) { function e() { var e = t.call(this) || this; return e.childrenCreated = !1, e.className = "LegendDataItem", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "label", { get: function get() { var t = this; if (!this._label) { var e = this.component.labels.create(); this._label = e, this.addSprite(e), this._disposers.push(e), e.parent = this.itemContainer, this._disposers.push(new fs(function () { S(t.component) && t.component.labels.removeValue(e); })); } return this._label; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "color", { get: function get() { return this.properties.color; }, set: function set(t) { this.setProperty("color", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "valueLabel", { get: function get() { var t = this; if (!this._valueLabel) { var e = this.component.valueLabels.create(); this._valueLabel = e, this.addSprite(e), this._disposers.push(e), e.parent = this.itemContainer, this._disposers.push(new fs(function () { S(t.component) && t.component.valueLabels.removeValue(e); })); } return this._valueLabel; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "itemContainer", { get: function get() { var t = this; if (!this._itemContainer) { var e = this.component, i = e.itemContainers.create(); this._itemContainer = i, this.addSprite(i), this._disposers.push(i), i.togglable && i.events.on("toggled", function (t) { e.toggleDataItem(t.target.dataItem); }, void 0, !1), i.focusable && (i.events.on("focus", function (t) { e.focusedItem = t.target.dataItem; }, void 0, !1), i.events.on("blur", function (t) { e.focusedItem = void 0; }, void 0, !1)), this._disposers.push(new fs(function () { S(t.component) && t.component.itemContainers.removeValue(i); })), this.dataContext.uidAttr && (i.readerControls = this.dataContext.uidAttr(), i.readerLabelledBy = this.dataContext.uidAttr()); var n = this.dataContext; (n instanceof Va || n instanceof ba) && !n.isDisposed() && (i.addDisposer(n.events.on("visibilitychanged", function (t) { i.readerChecked = t.visible, i.events.disableType("toggled"), i.isActive = !t.visible, i.events.enableType("toggled"); }, void 0, !1)), n.addDisposer(new fs(function () { t.component && t.component.dataItems.remove(t); })), n instanceof ba && (i.addDisposer(n.events.on("hidden", function (t) { i.readerChecked = !1, i.events.disableType("toggled"), i.isActive = !0, i.events.enableType("toggled"); }, void 0, !1)), i.addDisposer(n.events.on("shown", function (t) { i.readerChecked = !0, i.events.disableType("toggled"), i.isActive = !1, i.events.enableType("toggled"); }, void 0, !1)))); } return this._itemContainer; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "marker", { get: function get() { var t = this; if (!this._marker) { var e = this.component.markers.create(); this._marker = e, e.parent = this.itemContainer, this.addSprite(e), this._disposers.push(e), this._disposers.push(new fs(function () { S(t.component) && t.component.markers.removeValue(e); })); } return this._marker; }, enumerable: !0, configurable: !0 }), e; }(Va), Ml = function Ml() { this.createMarker = !0; }, jl = function (t) { function e() { var e = t.call(this) || this; e.className = "Legend", e.layout = "grid", e.setPropertyValue("useDefaultMarker", !1), e.setPropertyValue("contentAlign", "center"); var i = new _a(); i.applyOnClones = !0, i.padding(10, 0, 10, 0), i.margin(0, 10, 0, 0), i.layout = "horizontal", i.clickable = !0, i.focusable = !0, i.role = "switch", i.togglable = !0, i.cursorOverStyle = sa.pointer, i.background.fillOpacity = 0, e.itemContainers = new Hs(i), e._disposers.push(new Bs(e.itemContainers)), e._disposers.push(e.itemContainers.template), e._disposers.push(pr().body.events.on("keyup", function (t) { Wo.isKey(t.event, "enter") && e.focusedItem && e.focusedItem.itemContainer.clickable && e.toggleDataItem(e.focusedItem); }, e)); var n = new ta(), r = new _a(); r.width = 23, r.height = 23, r.interactionsEnabled = !1, r.applyOnClones = !0, r.setStateOnChildren = !0, r.background.fillOpacity = 0, r.background.strokeOpacity = 0, r.propertyFields.fill = "fill", r.valign = "middle"; var s = n.getFor("disabledBackground"); r.events.on("childadded", function (t) { var e = t.newValue.states.create("active"); e.properties.stroke = s, e.properties.fill = s; }), e.markers = new Hs(r), e._disposers.push(new Bs(e.markers)), e._disposers.push(e.markers.template); var o = r.createChild(ja); o.width = h(100), o.height = h(100), o.applyOnClones = !0, o.propertyFields.fill = "fill", o.strokeOpacity = 0; var a = new Ma(); a.text = "{name}", a.margin(0, 5, 0, 5), a.valign = "middle", a.applyOnClones = !0, a.states.create("active").properties.fill = n.getFor("disabledBackground"), e.labels = new Hs(a), e._disposers.push(new Bs(e.labels)), e._disposers.push(e.labels.template), a.interactionsEnabled = !1; var l = new Ma(); return l.margin(0, 5, 0, 0), l.valign = "middle", l.width = 50, l.align = "right", l.textAlign = "end", l.applyOnClones = !0, l.states.create("active").properties.fill = n.getFor("disabledBackground"), l.interactionsEnabled = !1, e.valueLabels = new Hs(l), e._disposers.push(new Bs(e.valueLabels)), e._disposers.push(e.valueLabels.template), e.position = "bottom", i.states.create("active"), i.setStateOnChildren = !0, e.role = "group", e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Legend")); }, e.prototype.createDataItem = function () { return new Fl(); }, e.prototype.validateDataElement = function (e) { t.prototype.validateDataElement.call(this, e); var i = e.itemContainer, n = e.marker; e.label; var r = e.valueLabel; i.parent = this, i.readerChecked = e.dataContext.visible, e.dataContext.legendDataItem = e; var s = e.dataContext.legendSettings, o = e.dataContext; !o.createLegendMarker || this.useDefaultMarker && o instanceof ba || e.childrenCreated || (o.createLegendMarker(n), e.childrenCreated = !0), o.updateLegendValue && o.updateLegendValue(), r.invalid && r.validate(), "" == r.currentText || null == r.currentText ? r.__disabled = !0 : r.__disabled = !1, !s || null == s.itemValueText && null == s.valueText || (r.__disabled = !1); var a = e.dataContext.visible; void 0 === a && (a = !0), a = P(a), e.dataContext.visible = a, i.events.disableType("toggled"), i.isActive = !a, i.events.enableType("toggled"); }, Object.defineProperty(e.prototype, "position", { get: function get() { return this.getPropertyValue("position"); }, set: function set(t) { this.setPropertyValue("position", t) && ("left" == t || "right" == t ? (this.margin(10, 20, 10, 20), this.valign = "middle", this.itemContainers.template.width = h(100), this.valueLabels.template.width = h(100), this.labels.template.truncate = !0, this.labels.template.fullWords = !1) : (this.itemContainers.template.width = void 0, this.itemContainers.template.maxWidth = void 0, this.valueLabels.template.width = 50, this.labels.template.truncate = !1, this.width = h(100)), this.invalidate()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "useDefaultMarker", { get: function get() { return this.getPropertyValue("useDefaultMarker"); }, set: function set(t) { this.setPropertyValue("useDefaultMarker", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.toggleDataItem = function (t) { var e = t.dataContext; !e.visible || e.isHiding || e instanceof ba && e.isHidden ? (t.color = t.colorOrig, t.itemContainer.isActive = !1, !0 === e.hidden && (e.hidden = !1), e.show ? e.show() : e.visible = !0) : (t.itemContainer.isActive = !0, e.hide ? e.hide() : e.visible = !1, t.color = new ta().getFor("disabledBackground")); }, Object.defineProperty(e.prototype, "preloader", { get: function get() {}, enumerable: !0, configurable: !0 }), e.prototype.handleDataItemPropertyChange = function (t, e) { t.valueLabel.invalidate(), t.label.invalidate(); }, e; }(Fa); Fs.registeredClasses.Legend = jl, Ta.push({ relevant: Aa.widthXS, state: function state(t, e) { if (t instanceof jl && ("left" == t.position || "right" == t.position)) { var i = t.states.create(e); return i.properties.position = "bottom", i; } return null; } }), Ta.push({ relevant: Aa.heightXS, state: function state(t, e) { if (t instanceof jl && ("top" == t.position || "bottom" == t.position)) { var i = t.states.create(e); return i.properties.position = "right", i; } return null; } }), Ta.push({ relevant: Aa.isXS, state: function state(t, e) { if (t instanceof jl) { var i = t.states.create(e); return i.properties.disabled = !0, i; } return null; } }); var Ll = function (t) { function e() { var e = t.call(this) || this; return e.className = "SeriesDataItem", e.values.value = {}, e.values.value = {}, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "bullets", { get: function get() { return this._bullets || (this._bullets = new Ds(), this._disposers.push(new Is(this._bullets))), this._bullets; }, enumerable: !0, configurable: !0 }), e.prototype.dispose = function () { this.bullets.clear(), t.prototype.dispose.call(this); }, Object.defineProperty(e.prototype, "value", { get: function get() { return this.values.value.value; }, set: function set(t) { this.setValue("value", t); }, enumerable: !0, configurable: !0 }), e; }(Va), El = function (t) { function e() { var i = t.call(this) || this; if (i._ignoreMinMax = !1, i._showBullets = !0, i.legendSettings = new Ml(), i._tmin = new Ds(), i._tmax = new Ds(), i._smin = new Ds(), i._smax = new Ds(), i.dataItemsByAxis = new Ds(), i.skipFocusThreshold = 20, i._itemReaderTextChanged = !1, i.calculatePercent = !1, i.autoDispose = !0, i.simplifiedProcessing = !1, i.constructor === e) throw new Error("'Series' cannot be instantiated directly. Please use a specific series type."); i.className = "Series", i.isMeasured = !1, i.layout = "none", i.shouldClone = !1, i.setPropertyValue("hidden", !1), i.axisRanges = new Ns(), i.axisRanges.events.on("inserted", i.processAxisRange, i, !1), i.minBulletDistance = 0, i.mainContainer = i.createChild(_a), i.mainContainer.shouldClone = !1, i.mainContainer.mask = i.createChild(ba), i._disposers.push(i.mainContainer); var n = i.mainContainer.createChild(_a); return i._shouldBeReady.push(n), n.shouldClone = !1, n.layout = "none", n.virtualParent = i, i._disposers.push(n), i.bulletsContainer = n, i.tooltip = new il(), i.tooltip.virtualParent = i, i._disposers.push(i.tooltip), i.hiddenState.transitionEasing = _n, i.dataItem = i.createDataItem(), i._disposers.push(i.dataItem), i.dataItem.component = i, i.role = "group", i.applyTheme(), i; } return n(e, t), e.prototype.applyTheme = function () { t.prototype.applyTheme.call(this), Ms.autoSetClassName && this.bulletsContainer && (this.bulletsContainer.className = this.className + "-bullets", this.bulletsContainer.setClassName()); }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Series")); }, e.prototype.createDataItem = function () { return new Ll(); }, Object.defineProperty(e.prototype, "chart", { get: function get() { return this._chart; }, set: function set(t) { this._chart = t; }, enumerable: !0, configurable: !0 }), e.prototype.positionBullet = function (t) {}, e.prototype.processBullet = function (t) { var e = this, i = t.newValue; i.isTemplate = !0, this.events.once("datavalidated", function (t) { e.itemsFocusable() && (i.focusable = !0); }); }, e.prototype.removeBullet = function (t) { var e = t.oldValue; this.dataItems.each(function (t) { var i = t.bullets.getKey(e.uid); i && i.dispose(); }), this.invalidate(); }, e.prototype.validateDataItems = function () { t.prototype.validateDataItems.call(this), this.processValues(!1); }, e.prototype.getFirstValue = function (t, e) { e > 0 && e < this.dataItems.length - 1 && e++; for (var i = e; i >= 0; i--) { var n = this.dataItems.getIndex(i).getActualWorkingValue(t); if (A(n)) return n; } return null; }, e.prototype.rangeChangeUpdate = function () { t.prototype.rangeChangeUpdate.call(this), this.processValues(!0); }, e.prototype.processValues = function (t) { var e = this; if (!this.simplifiedProcessing) { var i = this.dataItems, n = {}, r = {}, s = {}, o = {}, a = {}, l = {}, h = {}, u = {}, p = W(0, this._workingStartIndex); p = X(p, this.dataItems.length); var c = X(this._workingEndIndex, this.dataItems.length); if (A(p) || (p = 0), A(c) || (c = this.dataItems.length), p > 0) { var d = i.getIndex(p - 1); Qt(d.values, function (t, e) { var i = d.getActualWorkingValue(t); A(i) && (h[t] = i); }); } for (var f = p; f < c; f++) !function (t) { var c = i.getIndex(t); Qt(c.values, function (t, i) { var d = c.getActualWorkingValue(t); if (A(d)) { A(n[t]) || (n[t] = 0), n[t]++, A(r[t]) || (r[t] = 0), r[t] += d, A(a[t]) || (a[t] = d), l[t] = d, A(s[t]) ? s[t] > d && (s[t] = d) : s[t] = d, A(o[t]) ? o[t] < d && (o[t] = d) : o[t] = d, A(u[t]) || (u[t] = e.getFirstValue(t, p)), c.setCalculatedValue(t, d - u[t], "change"), c.setCalculatedValue(t, (d - u[t]) / u[t] * 100, "changePercent"); var f = h[t]; A(f) || (f = d), c.setCalculatedValue(t, d - f, "previousChange"), c.setCalculatedValue(t, (d - f) / f * 100, "previousChangePercent"), h[t] = d; } }); }(f); if (this.calculatePercent) { for (f = p; f < c; f++) !function (t) { var e = i.getIndex(t); Qt(e.values, function (t) { var i = r[t], n = e.getActualWorkingValue(t); if (A(n)) if (i > 0) { n == i && (i = e.values[t].value); var s = n / i * 100; e.setCalculatedValue(t, s, "percent"); } else e.setCalculatedValue(t, 0, "percent"); }); }(f); } if (p > 0) { var g = i.getIndex(p - 1); Qt(g.values, function (t) { var e = g.values[t].value; g.setCalculatedValue(t, e - a[t], "change"), g.setCalculatedValue(t, (e - a[t]) / a[t] * 100, "changePercent"); }); } var y = this.dataItem; Qt(y.values, function (t) { y.setCalculatedValue(t, r[t], "sum"), y.setCalculatedValue(t, r[t] / n[t], "average"), y.setCalculatedValue(t, a[t], "open"), y.setCalculatedValue(t, l[t], "close"), y.setCalculatedValue(t, s[t], "low"), y.setCalculatedValue(t, o[t], "high"), y.setCalculatedValue(t, n[t], "count"); }); } }, e.prototype.validate = function () { pe(this.axisRanges.iterator(), function (t) { t.validate(); }), t.prototype.validate.call(this); var e = this.bulletsContainer; if (e.fill = this.fill, e.stroke = this.stroke, e.x = this.pixelX, e.y = this.pixelY, this.bulletsContainer.children.length > 0) if (this._showBullets) { for (var i = 0; i < this.startIndex; i++) (n = this.dataItems.getIndex(i)) && n.bullets.each(function (t, e) { e.__disabled = !0; }); for (i = this.dataItems.length - 1; i > this.endIndex; i--) { var n; (n = this.dataItems.getIndex(i)) && n.bullets.each(function (t, e) { e.__disabled = !0; }); } } else this.bulletsContainer.children.each(function (t) { t.__disabled = !0; }); this.updateTooltipBounds(); }, e.prototype.updateTooltipBounds = function () { this.topParent && this.tooltip.setBounds({ x: 0, y: 0, width: this.topParent.maxWidth, height: this.topParent.maxHeight }); }, e.prototype.shouldCreateBullet = function (t, e) { return !0; }, e.prototype.validateDataElement = function (e) { var i = this; t.prototype.validateDataElement.call(this, e), this._showBullets ? (this.isHidden || (this.bulletsContainer.visible = !0), this.bullets.each(function (t) { var n = e.bullets.getKey(t.uid); if (i.shouldCreateBullet(e, t)) { if (!n) { var r = t.propertyFields.disabled, s = e.dataContext; r && s && !1 === s[r] ? (t.applyOnClones = !1, t.disabled = !1, n = t.clone(), t.disabled = !0, t.applyOnClones = !0) : n = t.clone(), n.shouldClone = !1, e.addSprite(n), i.visible && !i.isHiding || n.hide(0); } var o = n.dataItem; if (o != e) { o && o.bullets.setKey(t.uid, void 0); var a = i.itemReaderText; n instanceof Vl && (a || (a = "{" + n.xField + "}: {" + n.yField + "}"), n.isDynamic && (e.events.on("workingvaluechanged", n.deepInvalidate, n, !1), i.dataItem.events.on("workingvaluechanged", n.deepInvalidate, n, !1)), n.deepInvalidate()), n.focusable && (n.events.on("focus", function (t) { n.readerTitle = i.populateString(a, n.dataItem); }, void 0, !1), n.events.on("blur", function (t) { n.readerTitle = ""; }, void 0, !1)), n.hoverable && (n.events.on("over", function (t) { n.readerTitle = i.populateString(a, n.dataItem); }, void 0, !1), n.events.on("out", function (t) { n.readerTitle = ""; }, void 0, !1)); } n.parent = i.bulletsContainer, e.bullets.setKey(t.uid, n), n.maxWidth = e.itemWidth, n.maxHeight = e.itemHeight, n.__disabled = !1, i.positionBullet(n); } })) : this.bulletsContainer.visible = !1; }, e.prototype.handleDataItemWorkingValueChange = function (t, e) { this.dataRangeInvalid || this.invalidateProcessedData(); }, Object.defineProperty(e.prototype, "ignoreMinMax", { get: function get() { return this._ignoreMinMax; }, set: function set(t) { this._ignoreMinMax = t, this.invalidateDataItems(); }, enumerable: !0, configurable: !0 }), e.prototype.createMask = function () {}, e.prototype.processAxisRange = function (t) { this.rangesContainer || (this.rangesContainer = this.createChild(_a), this.rangesContainer.shouldClone = !1, this.rangesContainer.isMeasured = !1); var e = t.newValue; e && (e.contents.parent = this.rangesContainer, e.isRange = !0, e.events.on("valuechanged", this.invalidateDataItems, this, !1)); }, e.prototype.getAxisField = function (t) {}, e.prototype.showTooltipAtPosition = function (t, e) {}, Object.defineProperty(e.prototype, "minBulletDistance", { get: function get() { return this.getPropertyValue("minBulletDistance"); }, set: function set(t) { this.setPropertyValue("minBulletDistance", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bullets", { get: function get() { return this._bullets || (this._bullets = new Hs(new Vl()), this._bullets.template.virtualParent = this, this._bullets.events.on("inserted", this.processBullet, this, !1), this._bullets.events.on("removed", this.removeBullet, this, !1), this._disposers.push(new Bs(this._bullets)), this._disposers.push(this._bullets.template)), this._bullets; }, enumerable: !0, configurable: !0 }), e.prototype.createLegendMarker = function (t) {}, Object.defineProperty(e.prototype, "hiddenInLegend", { get: function get() { return this.getPropertyValue("hiddenInLegend"); }, set: function set(t) { this.setPropertyValue("hiddenInLegend", t) && this.chart && this.chart.feedLegend(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "name", { get: function get() { return this.getPropertyValue("name"); }, set: function set(t) { this.setPropertyValue("name", t); var e = this.legendDataItem; e && (e.component.invalidate(), e.component.invalidateRawData()), this.readerTitle = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "itemReaderText", { get: function get() { var t = this._itemReaderText; return t || (this.tooltipText ? t = Di(this.tooltipText) : this.tooltipHTML && (t = Di(this.tooltipHTML))), this._adapterO ? this._adapterO.apply("itemReaderText", t) : t; }, set: function set(t) { this._itemReaderText = t, this._itemReaderTextChanged = !0; }, enumerable: !0, configurable: !0 }), e.prototype.itemsFocusable = function () { return !(this.dataItems.length >= this.skipFocusThreshold); }, Object.defineProperty(e.prototype, "legendDataItem", { get: function get() { return this._legendDataItem; }, set: function set(t) { this._legendDataItem = t, this._legendDataItem.itemContainer.deepInvalidate(); }, enumerable: !0, configurable: !0 }), e.prototype.updateLegendValue = function (t, e) { if (this.legendDataItem) { var i = this.legendSettings, n = this.legendDataItem, r = n.label, s = n.valueLabel; t || e ? (s && (i.itemValueText && (s.text = i.itemValueText), s.dataItem = t), r && (i.itemLabelText && (r.text = i.itemLabelText), r.dataItem = t)) : (r && ((i.labelText || null != i.itemLabelText) && (r.text = i.labelText), r.dataItem = this.dataItem), s && ((i.valueText || null != i.itemValueText) && (s.text = i.valueText), s.dataItem = this.dataItem)); } }, e.prototype.copyFrom = function (e) { this.bullets.copyFrom(e.bullets), this.bulletsContainer.copyFrom(e.bulletsContainer), this.calculatePercent = e.calculatePercent, this.simplifiedProcessing = e.simplifiedProcessing, t.prototype.copyFrom.call(this, e); }, e.prototype.raiseCriticalError = function (t) { this._chart.modal.content = this._chart.adapter.apply("criticalError", t).message, this._chart.modal.closable = !1, this._chart.modal.open(), this._chart.disabled = !0, Ms.verbose && console.log(t); }, e.prototype.applyFilters = function () { var e = this; t.prototype.applyFilters.call(this), this.bulletsContainer.filters.clear(), pe(this.filters.iterator(), function (t) { e.bulletsContainer.filters.push(t.clone()); }); }, Object.defineProperty(e.prototype, "heatRules", { get: function get() { var t = this; return this._heatRules || (this._heatRules = new Ns(), this._heatRules.events.on("inserted", function (e) { var i = e.newValue, n = i.target; if (n) { var r = i.dataField; S(r) || (r = "value"); var s = i.min, o = i.max, a = t.dataItem, l = i.property, h = w(i.minValue), u = w(i.maxValue); A(h) || A(u) || t.dataItem.events.on("calculatedvaluechanged", function (e) { e.property == r && pe(t.dataItems.iterator(), function (t) { var e = !1; mt(t.sprites, function (t) { if (t.clonedFrom == n) { var i = t; i[l] = i[l], e = !0; } }), e || mt(t.sprites, function (t) { t instanceof _a && pe(t.children.iterator(), function (t) { if (t.className == n.className) { var e = t; e[l] = e[l]; } else t instanceof _a && t.deepInvalidate(); }); }); }); }), t.dataItems.template.events.on("workingvaluechanged", function (t) { if (t.property == r) { var e = t.target, i = !1; mt(e.sprites, function (t) { if (t.clonedFrom == n) { var e = t; e[l] = e[l], i = !0; } }), i || mt(e.sprites, function (t) { t instanceof _a && pe(t.children.iterator(), function (t) { if (t.className == n.className) { var e = t; e[l] = e[l]; } else t instanceof _a && t.deepInvalidate(); }); }); } }), n.adapter.add(l, function (t, e, n) { var l = w(i.minValue), h = w(i.maxValue); if (e instanceof ba) { var u = e.propertyFields[n]; if (u && e.dataItem) { var p = e.dataItem.dataContext; if (p && S(p[u])) return t; } } var c = e.dataItem; if (A(l) || (l = a.values[r].low), A(h) || (h = a.values[r].high), c && c.values[r]) { var d = c.getActualWorkingValue(r); if (S(s) && S(o) && A(l) && A(h) && A(d)) { var f = (d - l) / (h - l); if (A(d) && !A(f) && (f = .5), A(s)) return s + (o - s) * f; if (s instanceof qs) return new qs(He(s.rgb, o.rgb, f)); } } return t; }); } })), this._heatRules; }, enumerable: !0, configurable: !0 }), e.prototype.processConfig = function (e) { var i; if (e) { if (S(e.bullets) && F(e.bullets)) for (var n = 0, r = e.bullets.length; n < r; n++) { var s = e.bullets[n]; S(s.type) || (s.type = "Bullet"); } S(e.heatRules) && F(e.heatRules) && (i = e.heatRules, delete e.heatRules); } if (t.prototype.processConfig.call(this, e), i) { for (n = 0, r = i.length; n < r; n++) { var o = i[n], a = this; if (S(o.target) && T(o.target)) if (this.map.hasKey(o.target)) a = this.map.getKey(o.target);else for (var l = o.target.split("."), h = 0; h < l.length; h++) if (a instanceof Ns) { var u = a.getIndex(w(l[h])); a = u || a[l[h]]; } else a = a[l[h]]; o.target = a, S(o.min) && (o.min = this.maybeColorOrPercent(o.min)), S(o.max) && (o.max = this.maybeColorOrPercent(o.max)); } t.prototype.processConfig.call(this, { heatRules: i }); } }, e.prototype.configOrder = function (e, i) { return e == i ? 0 : "heatRules" == e ? 1 : "heatRules" == i ? -1 : t.prototype.configOrder.call(this, e, i); }, e.prototype.setVisibility = function (e) { t.prototype.setVisibility.call(this, e), this.bulletsContainer.visible = e; }, e; }(Fa); Fs.registeredClasses.Series = El, Fs.registeredClasses.SeriesDataItem = Ll; var Rl = function (t) { function e() { var e = t.call(this) || this; return e.className = "SerialChartDataItem", e.applyTheme(), e; } return n(e, t), e; }(Tl), Bl = function (t) { function e() { var e = t.call(this) || this; e.className = "SerialChart", e.colors = new Sl(), e._usesData = !1; var i = e.chartContainer.createChild(_a); i.shouldClone = !1, i.width = h(100), i.height = h(100), i.isMeasured = !1, i.layout = "none", i.zIndex = 2, e.seriesContainer = i; var n = e.chartContainer.createChild(_a); return n.shouldClone = !1, n.width = h(100), n.height = h(100), n.isMeasured = !1, n.zIndex = 3, n.layout = "none", e.bulletsContainer = n, e.applyTheme(), e; } return n(e, t), e.prototype.dispose = function () { t.prototype.dispose.call(this), this.colors && this.colors.dispose(); }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Serial chart")); }, Object.defineProperty(e.prototype, "series", { get: function get() { var t = this; return this._series || (this._series = new Hs(this.createSeries()), this._series.events.on("inserted", function (e) { t.handleSeriesAdded(e); }, void 0, !1), this._series.events.on("removed", function (e) { var i = e.oldValue; t.dataUsers.removeValue(i), t.dataUsers.each(function (t) { t.invalidateDataItems(); }), i.autoDispose && i.dispose(), t.feedLegend(); }, void 0, !1), this._disposers.push(new Bs(this._series)), this._disposers.push(this._series.template)), this._series; }, enumerable: !0, configurable: !0 }), e.prototype.handleSeriesAdded = function (t) { var e = this, i = t.newValue; i.isDisposed() || (i.chart = this, i.parent = this.seriesContainer, i.bulletsContainer.parent = this.bulletsContainer, this._dataUsers.moveValue(i), i.addDisposer(new fs(function () { e.dataUsers.removeValue(i); })), this.handleSeriesAdded2(i), this.feedLegend()); }, e.prototype.handleSeriesAdded2 = function (t) { this.dataInvalid || this.invalidateData(); }, e.prototype.feedLegend = function () { var t = this.legend; if (t) { var e = []; pe(this.series.iterator(), function (t) { t.hiddenInLegend || e.push(t); }), t.dataFields.name = "name", t.data = e; } }, e.prototype.createSeries = function () { return new El(); }, Object.defineProperty(e.prototype, "colors", { get: function get() { return this.getPropertyValue("colors"); }, set: function set(t) { this.setPropertyValue("colors", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.series.copyFrom(e.series); }, e.prototype.appear = function () { t.prototype.appear.call(this), this.series.each(function (t) { t.showOnInit && t.inited && t.appear(); }); }, e; }(Al); Fs.registeredClasses.SerialChart = Bl; var Nl = function (t) { function e() { var e = t.call(this) || this; e._axis = new ys(), e.dataItems = new Ns(), e.className = "AxisBreak", e.breakSize = .01, e.marginLeft = -5, e.marginRight = -5, e.marginTop = -5, e.marginBottom = -5; var i = new ta(), n = new ll(); n.fill = i.getFor("background"), n.stroke = Je(), n.fillOpacity = .9, n.zIndex = 0, e._fillShape = n; var r = new ll(); r.fill = Je(), r.stroke = i.getFor("grid"), r.strokeOpacity = .3, r.zIndex = 1, e._startLine = r; var s = new ll(); return s.fill = Je(), s.stroke = Je("#000000"), s.strokeOpacity = .3, s.zIndex = 2, e._endLine = s, e._disposers.push(e._axis), e.applyTheme(), e; } return n(e, t), e.prototype.dispose = function () { t.prototype.dispose.call(this), this._fillShape && this._fillShape.dispose(), this._startLine && this._startLine.dispose(), this._endLine && this._endLine.dispose(); }, Object.defineProperty(e.prototype, "startLine", { get: function get() { return this._startLine; }, set: function set(t) { this._startLine && this._startLine.dispose(), this._startLine = t, this.addBreakSprite(t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endLine", { get: function get() { return this._endLine; }, set: function set(t) { this._endLine && this._endLine.dispose(), this._endLine = t, this.addBreakSprite(t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fillShape", { get: function get() { return this._fillShape; }, set: function set(t) { this._fillShape && this._fillShape.dispose(), this._fillShape = t, this.addBreakSprite(t); }, enumerable: !0, configurable: !0 }), e.prototype.addBreakSprite = function (t) { t.parent = this, t.isMeasured = !1, this._disposers.push(t); }, Object.defineProperty(e.prototype, "axis", { get: function get() { return this._axis.get(); }, set: function set(t) { if (this._axis.get() !== t) { this._axis.set(t, t.renderer.gridContainer.events.on("transformed", this.invalidate, this, !1)), t.renderer.createBreakSprites(this); var e = t.axisBreaks.template; this.startLine.copyFrom(e.startLine), this.endLine.copyFrom(e.endLine), this.fillShape.copyFrom(e.fillShape); } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "breakSize", { get: function get() { return this.getPropertyValue("breakSize"); }, set: function set(t) { this.setPropertyValue("breakSize", t) && this.axis && (this.axis.invalidate(), this.axis.invalidateSeries()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startPoint", { get: function get() { var t = this.axis.renderer; if (t) return t.positionToPoint(this.startPosition); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endPoint", { get: function get() { var t = this.axis.renderer; if (t) return t.positionToPoint(this.endPosition); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startPosition", { get: function get() {}, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endPosition", { get: function get() {}, enumerable: !0, configurable: !0 }), e.prototype.draw = function () { t.prototype.draw.call(this), this.axis && this.axis.renderer.updateBreakElement(this); }, Object.defineProperty(e.prototype, "startValue", { get: function get() { return this.getPropertyValue("startValue"); }, set: function set(t) { this.setPropertyValue("startValue", t) && this.axis && (this.axis.invalidate(), this.axis.invalidateSeries()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endValue", { get: function get() { return this.getPropertyValue("endValue"); }, set: function set(t) { this.setPropertyValue("endValue", t) && this.axis && (this.axis.invalidate(), this.axis.invalidateSeries()); }, enumerable: !0, configurable: !0 }), e; }(_a); Fs.registeredClasses.AxisBreak = Nl; var Hl, Wl = function (t) { function e() { var e = t.call(this) || this; return e.className = "AxisDataItem", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "grid", { get: function get() { if (!this._grid) { var t = this.component; if (t) { var e, i = void 0; if (this.isRange) { if ((i = t.axisRanges.template.grid).disabled) return; e = i.clone(); } else { if ((i = t.renderer.grid.template).disabled) return; e = t.renderer.grid.create(), this._disposers.push(new fs(function () { t.renderer.grid.removeValue(e); })); } this.grid = e, e.shouldClone = !1, this._disposers.push(e), e.axis = this.component; } } return this._grid; }, set: function set(t) { this._grid && this._grid != t && (St(this.sprites, this._grid), this._grid.dataItem = void 0), t && (t.dataItem && t.dataItem != this && (St(t.dataItem.sprites, t), t.dataItem.grid = void 0), this.addSprite(t)), this._grid = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tick", { get: function get() { if (!this._tick) { var t = this.component; if (t) { var e, i = void 0; if (this.isRange) { if ((i = t.axisRanges.template.tick).disabled) return; e = i.clone(); } else { if ((i = t.renderer.ticks.template).disabled) return; e = t.renderer.ticks.create(), this._disposers.push(new fs(function () { t.renderer.ticks.removeValue(e); })); } this.tick = e, e.axis = this.component, e.shouldClone = !1, this._disposers.push(e); } } return this._tick; }, set: function set(t) { this._tick && this._tick != t && (St(this.sprites, this._tick), this._tick.dataItem = void 0), t && (t.dataItem && t.dataItem != this && (St(t.dataItem.sprites, t), t.dataItem.tick = void 0), this.addSprite(t)), this._tick = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "label", { get: function get() { if (!this._label) { var t = this.component; if (t) { var e, i = void 0; if (this.isRange) { if ((i = t.axisRanges.template.label).disabled) return; e = i.clone(); } else { if ((i = t.renderer.labels.template).disabled) return; e = t.renderer.labels.create(), this._disposers.push(new fs(function () { t.renderer.labels.removeValue(e); })); } this._disposers.push(e), this.label = e, e.shouldClone = !1, e.axis = this.component, e.virtualParent = t; } } return this._label; }, set: function set(t) { this._label && this._label != t && (St(this.sprites, this._label), this._label.dataItem = void 0), t && (t.dataItem && t.dataItem != this && (St(t.dataItem.sprites, t), t.dataItem.label = void 0), this.addSprite(t)), this._label = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "axisFill", { get: function get() { if (!this._axisFill) { var t = this.component; if (t) { var e, i = void 0; if (this.isRange) { if (i = t.axisRanges.template.axisFill, !this.isTemplate && i.disabled) return; e = i.clone(); } else { if ((i = t.renderer.axisFills.template).disabled) return; e = t.renderer.axisFills.create(), this._disposers.push(new fs(function () { t.renderer.axisFills.removeValue(e); })); } this.axisFill = e, e.shouldClone = !1, this._disposers.push(e); } } return this._axisFill; }, set: function set(t) { this._axisFill && this._axisFill != t && (St(this.sprites, this._axisFill), this._axisFill.dataItem = void 0), t && (t.dataItem && t.dataItem != this && (St(t.dataItem.sprites, t), t.dataItem.axisFill = void 0), t.axis = this.component, this.addSprite(t)), this._axisFill = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "text", { get: function get() { return this._text; }, set: function set(t) { this._text = t, this._label && (this._label.text = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "mask", { get: function get() { return this._mask; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "contents", { get: function get() { if (!this._contents) { var t = new _a(); this.addSprite(t), t.isMeasured = !1, this._contents = t; var e = this.component; if (e) { var i = e.renderer.createFill(this.component); i.disabled = !1, i.axis = e, this.addSprite(i), this._mask = i, t.mask = i; } } return this._contents; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "axisBreak", { get: function get() { return this._axisBreak; }, set: function set(t) { this._axisBreak && this._axisBreak.dataItems.removeValue(this), t && t.dataItems.push(this), this._axisBreak = t; }, enumerable: !0, configurable: !0 }), e.prototype.validate = function () { this.component && this.component.validateDataElement(this); }, e.prototype.appendChildren = function () { this.component && this.component.appendDataItem(this); }, e.prototype.configOrder = function (t, e) { return t == e ? 0 : "language" == t ? -1 : "language" == e ? 1 : "component" == t ? -1 : "component" == e ? 1 : 0; }, e.prototype.hasProperty = function (e) { return "component" == e || t.prototype.hasProperty.call(this, e); }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.text = e.text, e.bullet && (this.bullet = e.bullet.clone()), this.minPosition = e.minPosition, this.maxPosition = e.maxPosition; }, e.prototype.setVisibility = function (e, i) { t.prototype.setVisibility.call(this, e, i), this._contents && (this._contents.visible = e); }, Object.defineProperty(e.prototype, "bullet", { get: function get() { return this._bullet; }, set: function set(t) { this._bullet && this._bullet != t && (St(this.sprites, this._bullet), this._bullet.dataItem = void 0), this._bullet = t, t && this.addSprite(t); }, enumerable: !0, configurable: !0 }), e; }(Va); !function (t) { t[t.Start = 0] = "Start", t[t.Middle = .5] = "Middle", t[t.End = 1] = "End"; }(Hl || (Hl = {})); var Xl = function (t) { function e() { var i = t.call(this) || this; if (i._gridCount = 10, i._series = new Ns(), i.autoDispose = !0, i.constructor === e) throw new Error("'Axis' cannot be instantiated directly. Please use a specific axis type."); i.className = "Axis", i.shouldClone = !1, i.setPropertyValue("cursorTooltipEnabled", !0), i.toggleZoomOutButton = !0; var n = new ta(); i.title = new Ma(), i.title.shouldClone = !1, i._disposers.push(i.title), i.setPropertyValue("startLocation", 0), i.setPropertyValue("endLocation", 1), i._dataItemsIterator = new Ss(i.dataItems, function () { return i.dataItems.create(); }), i._dataItemsIterator.createNewItems = !0; var r = new il(); i._disposers.push(r), r.label.padding(5, 10, 5, 10), r.background.pointerLength = 5, r.fitPointerToBounds = !0, r.background.filters.clear(), r.virtualParent = i; var s = r.background; return s.cornerRadius = 0, s.fill = n.getFor("alternativeBackground"), s.stroke = s.fill, s.strokeWidth = 1, s.fillOpacity = 1, r.label.fill = n.getFor("alternativeText"), i.tooltip = r, i.readerHidden = !0, i.applyTheme(), i; } return n(e, t), e.prototype.fillRule = function (t, e) { A(e) || (e = t.index), e / 2 == Math.round(e / 2) ? (t.axisFill.__disabled = !0, t.axisFill.opacity = 0) : (t.axisFill.opacity = 1, t.axisFill.__disabled = !1); }, e.prototype.resetFlags = function () {}, e.prototype.createDataItem = function () { return new Wl(); }, e.prototype.invalidateLayout = function () { t.prototype.invalidateLayout.call(this), pe(this.series.iterator(), function (t) { t.invalidateLayout(); }); }, e.prototype.invalidateSeries = function () { pe(this.series.iterator(), function (t) { t.invalidate(); }); }, e.prototype.validateDataElements = function () { this.ghostLabel && (this.renderer.updateLabelElement(this.ghostLabel, this.start, this.end), this.ghostLabel.validate()); }, e.prototype.updateGridCount = function () { this.renderer && (this._gridCount = this.axisLength / this.renderer.minGridDistance); }, e.prototype.validateLayout = function () { this.axisFullLength = this.axisLength / (this.end - this.start), t.prototype.validateLayout.call(this), this.updateGridCount(), this.renderer.updateAxisLine(), this.renderer.updateTooltip(), this.renderer.updateBaseGridElement(), this._prevLength != this.axisLength && (this.dispatchImmediately("lengthchanged"), this._prevLength = this.axisLength); }, e.prototype.initRenderer = function () {}, e.prototype.appendDataItem = function (t) { var e = this.renderer, i = t.tick; i && (i.above ? i.parent = e.bulletsContainer : i.parent = e.gridContainer), t.label && (t.label.parent = e); var n = t.axisFill; n && (n.above ? n.parent = e.bulletsContainer : n.parent = e.gridContainer); var r = t.grid; r && (r.above ? r.parent = e.bulletsContainer : r.parent = e.gridContainer), t.bullet && (t.bullet.parent = e.bulletsContainer); }, e.prototype.validate = function () { t.prototype.validate.call(this), this.validateLayout(), this.renderer.updateGridContainer(); }, e.prototype.validateAxisRanges = function () { var t = this; pe(this.axisRanges.iterator(), function (e) { t.appendDataItem(e), t.validateDataElement(e), e.grid && e.grid.validate(), e.tick && e.tick.validate(), e.axisFill && e.axisFill.validate(), e.label && e.label.validate(); }); }, e.prototype.validateBreaks = function () { this._axisBreaks && pe(this._axisBreaks.iterator(), function (t) { t.invalidate(); }); }, e.prototype.processBreak = function (t) { var e = t.newValue; e.parent = this.renderer.breakContainer, e.axis = this; }, e.prototype.registerSeries = function (t) { var e = this; return this.series.moveValue(t), new gs([new fs(function () { e.series.removeValue(t); }), this.events.on("lengthchanged", t.invalidate, t, !1), this.events.on("lengthchanged", t.createMask, t, !1), this.events.on("startchanged", t.invalidate, t, !1), this.events.on("endchanged", t.invalidate, t, !1)]); }, Object.defineProperty(e.prototype, "renderer", { get: function get() { return this._renderer; }, set: function set(t) { if (t != this._renderer) { this._renderer = t, t.chart = this.chart, t.axis = this, t.parent = this, this.title.parent = this, this.initRenderer(), this._disposers.push(t.gridContainer.events.on("maxsizechanged", this.invalidate, this, !1)); var e = this.renderer.labels.create(); this._disposers.push(e), e.dataItem = this.dataItems.template.clone(), e.text = "L", e.parent = this.renderer, e.shouldClone = !1, e.fillOpacity = 0, e.opacity = 0, e.strokeOpacity = 0, e.interactionsEnabled = !1, e.validate(), this.ghostLabel = e, this.events.on("beforedatavalidated", function () { e.text = "L"; }, void 0, !1); } }, enumerable: !0, configurable: !0 }), e.prototype.positionToAngle = function (t) { return this.renderer.positionToAngle(t); }, e.prototype.pointToPosition = function (t) { return this.renderer.pointToPosition(t); }, e.prototype.getAnyRangePath = function (t, e) { return this.renderer.getPositionRangePath(t, e); }, e.prototype.anyToPosition = function (t) { return 0; }, e.prototype.anyToPoint = function (t) { return { x: 0, y: 0, angle: 0 }; }, e.prototype.getPositionRangePath = function (t, e) { return this.renderer.getPositionRangePath(t, e); }, Object.defineProperty(e.prototype, "axisLength", { get: function get() { return this.renderer.axisLength; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cursorTooltipEnabled", { get: function get() { return this.getPropertyValue("cursorTooltipEnabled"); }, set: function set(t) { this.setPropertyValue("cursorTooltipEnabled", t) && (t && this.renderer ? this.renderer.updateTooltip() : this.tooltip.hide(0)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "toggleZoomOutButton", { get: function get() { return this.getPropertyValue("toggleZoomOutButton"); }, set: function set(t) { this.setPropertyValue("toggleZoomOutButton", t); }, enumerable: !0, configurable: !0 }), e.prototype.hideTooltip = function (e) { t.prototype.hideTooltip.call(this, e), this._tooltipPosition = void 0; }, e.prototype.showTooltipAtPosition = function (t, e) { var i = this._tooltip; if (!i || this.dataItems.length <= 0) this._tooltipPosition = void 0;else { if (e || (t = this.toAxisPosition(t)), !A(t) || t < 0 || t > 1) return i.hide(0), void (this._tooltipPosition = void 0); var n = this.renderer; i.parent || (i.parent = this.tooltipContainer); var r = n.tooltipLocation, s = this.getCellStartPosition(t), o = this.getCellEndPosition(t); if ("fixed" == this.tooltipPosition && (t = L(s + (o - s) * r, 4)), t = R(t, this.start, this.end), this._tooltipPosition != t) { this._tooltipPosition = t; var a = n.tooltipLocation2, l = n.positionToPoint(s, a), h = n.positionToPoint(o, a); this.currentItemStartPoint = l, this.currentItemEndPoint = h, n.fullWidthTooltip && (i.width = h.x - l.x, i.height = h.y - l.y); var u = Wi(n.positionToPoint(t, a), this.renderer.line); i.text = this.getTooltipText(t), i.text && (i.pointTo(u), i.show()); } this.cursorTooltipEnabled && !this.tooltip.disabled || i.hide(0); } }, e.prototype.toAxisPosition = function (t) { if (null != (t = this.renderer.toAxisPosition(t))) return t *= this.end - this.start, t = this.renderer.inversed ? this.end - t : this.start + t; }, e.prototype.toGlobalPosition = function (t) { return this.renderer.inversed ? t = this.end - t : t -= this.start, t / (this.end - this.start); }, e.prototype.getTooltipText = function (t) {}, e.prototype.updateTooltip = function (t, e) { var i = this._tooltip; i && (i.pointerOrientation = t, i.setBounds(zi(e, this.renderer.line))); }, e.prototype.roundPosition = function (t, e, i) { return t; }, e.prototype.getCellStartPosition = function (t) { return t; }, e.prototype.getCellEndPosition = function (t) { return t; }, Object.defineProperty(e.prototype, "axisRanges", { get: function get() { if (!this._axisRanges) { var t = this.createDataItem(); t.isRange = !0, t.axisFill = this.renderer.axisFills.template.clone(), t.grid = this.renderer.grid.template.clone(), t.tick = this.renderer.ticks.template.clone(), t.label = this.renderer.labels.template.clone(), t.isTemplate = !0, t.component = this, t.axisFill.disabled = !1, t.tick.disabled = !1, t.grid.disabled = !1, t.label.disabled = !1, this._axisRanges = new Hs(t), this._axisRanges.events.on("inserted", this.processAxisRange, this, !1), this._disposers.push(new Bs(this._axisRanges)), this._disposers.push(this._axisRanges.template); } return this._axisRanges; }, enumerable: !0, configurable: !0 }), e.prototype.processAxisRange = function (t) { var e = t.newValue; e.component = this, e.isRange = !0; }, Object.defineProperty(e.prototype, "axisBreaks", { get: function get() { return this._axisBreaks || (this._axisBreaks = new zs(this.createAxisBreak(), function (t, e) { return Ve(t.adjustedStartValue, e.adjustedStartValue); }), this._axisBreaks.events.on("inserted", this.processBreak, this, !1), this._disposers.push(new Bs(this._axisBreaks)), this._disposers.push(this._axisBreaks.template)), this._axisBreaks; }, enumerable: !0, configurable: !0 }), e.prototype.createAxisBreak = function () { return new Nl(); }, Object.defineProperty(e.prototype, "series", { get: function get() { return this._series || (this._series = new Ns()), this._series; }, enumerable: !0, configurable: !0 }), e.prototype.processSeriesDataItems = function () {}, e.prototype.processSeriesDataItem = function (t, e) {}, e.prototype.postProcessSeriesDataItems = function () {}, e.prototype.postProcessSeriesDataItem = function (t) {}, e.prototype.updateAxisBySeries = function () {}, e.prototype.hideUnusedDataItems = function () { var t = this, e = this._dataItemsIterator; e.createNewItems = !1, pe(e.iterator(), function (e) { t.validateDataElement(e), e.__disabled = !0; }), e.clear(), e.createNewItems = !0; }, e.prototype.getSeriesDataItem = function (t, e, i) {}, e.prototype.getAngle = function (t, e, i, n, r) {}, e.prototype.getX = function (t, e, i, n, r) {}, e.prototype.getPositionX = function (t, e, i, n, r) {}, e.prototype.getY = function (t, e, i, n, r) {}, e.prototype.getPositionY = function (t, e, i, n, r) {}, Object.defineProperty(e.prototype, "basePoint", { get: function get() { return { x: 0, y: 0 }; }, enumerable: !0, configurable: !0 }), e.prototype.dataChangeUpdate = function () {}, e.prototype.seriesDataChangeUpdate = function (t) {}, e.prototype.adjustDifference = function (t, e) { var i = e - t; if (A(i)) return this._axisBreaks && ue(this._axisBreaks.iterator(), function (n) { var r = n.adjustedStartValue, s = n.adjustedEndValue; if (A(r) && A(s)) { if (r > e) return !1; if (s >= t && A(r) && A(s)) { var o = n.breakSize, a = G({ start: r, end: s }, { start: t, end: e }); a && (i -= (a.end - a.start) * (1 - o)); } return !0; } }), i; }, e.prototype.isInBreak = function (t) { if (this._axisBreaks) return be(this._axisBreaks.iterator(), function (e) { return t >= e.adjustedStartValue && t <= e.adjustedEndValue; }); }, e.prototype.fixAxisBreaks = function () { var t = this; if (this._axisBreaks) { var e = this._axisBreaks; if (e.length > 0) { mt(he(e.iterator()), function (e) { var i = X(e.startValue, e.endValue), n = W(e.startValue, e.endValue); e.adjustedStartValue = i, e.adjustedEndValue = n, t._axisBreaks.update(e); }); var i = e.first, n = Math.min(i.startValue, i.endValue); pe(e.iterator(), function (t) { var e = t.adjustedStartValue, i = t.adjustedEndValue; e < n && (e = n, i < n && (i = n)), t.adjustedStartValue = e, t.adjustedEndValue = i; }); } } }, Object.defineProperty(e.prototype, "startIndex", { get: function get() { return 0; }, set: function set(t) {}, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endIndex", { get: function get() { return this.dataItems.length; }, set: function set(t) {}, enumerable: !0, configurable: !0 }), e.prototype.getPositionLabel = function (t) { return Math.round(100 * t) + "%x"; }, Object.defineProperty(e.prototype, "chart", { get: function get() { return this._chart; }, set: function set(t) { this._chart = t; }, enumerable: !0, configurable: !0 }), e.prototype.createSeriesRange = function (t) { var e = this.axisRanges.create(); return e.component = this, e.axisFill = this.renderer.axisFills.template.clone(), e.axisFill.disabled = !1, e.axisFill.fillOpacity = 0, e.grid = this.renderer.grid.template.clone(), e.grid.disabled = !0, e.tick = this.renderer.ticks.template.clone(), e.tick.disabled = !0, e.label = this.renderer.labels.template.clone(), e.label.disabled = !0, t.axisRanges.push(e), e; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.renderer ? this.renderer.copyFrom(e.renderer) : e.renderer && (this.renderer = e.renderer.clone(), this._disposers.push(this.renderer)), e.title && (this.title ? this.title.copyFrom(e.title) : (this.title = e.title.clone(), this.title.parent = this), this._disposers.push(this.title)); }, e.prototype.resetIterators = function () { this._dataItemsIterator.reset(); }, e.prototype.processConfig = function (e) { if (e && S(e.axisRanges) && F(e.axisRanges)) for (var i = 0, n = e.axisRanges.length; i < n; i++) { var r = e.axisRanges[i]; S(r.series) && T(r.series) && this.map.hasKey(r.series) && (e.axisRanges[i] = this.createSeriesRange(this.map.getKey(r.series)), delete r.series, e.axisRanges[i].config = r); } t.prototype.processConfig.call(this, e); }, Object.defineProperty(e.prototype, "startLocation", { get: function get() { return this.getPropertyValue("startLocation"); }, set: function set(t) { this.setPropertyValue("startLocation", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endLocation", { get: function get() { return this.getPropertyValue("endLocation"); }, set: function set(t) { this.setPropertyValue("endLocation", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.setDisabled = function (e) { var i = t.prototype.setDisabled.call(this, e); return this.renderer && (this.renderer.gridContainer.disabled = e), i; }, Object.defineProperty(e.prototype, "title", { get: function get() { return this._title; }, set: function set(t) { this._title && this._title != t && this._title.dispose(), t && (this._title = t, t.parent = this, t.shouldClone = !1); }, enumerable: !0, configurable: !0 }), e; }(Fa); Fs.registeredClasses.Axis = Xl, Fs.registeredClasses.AxisDataItem = Wl, Ta.push({ relevant: Aa.maybeXS, state: function state(t, e) { if (t instanceof Xl && t.tooltip) { var i = t.states.create(e); return i.properties.cursorTooltipEnabled = !1, i; } return null; } }); var Yl = function (t) { function e() { var e = t.call(this) || this; e.className = "AxisLine", e.element = e.paper.add("path"); var i = new ta(); return e.stroke = i.getFor("grid"), e.strokeOpacity = .15, e.pixelPerfect = !0, e.fill = Je(), e.applyTheme(), e.interactionsEnabled = !1, e; } return n(e, t), e; }(ba); Fs.registeredClasses.AxisLine = Yl; var zl = function (t) { function e(e) { var i = t.call(this) || this; i.axis = e, i.element = i.paper.add("path"), i.className = "AxisFill", i.isMeasured = !1, i.location = 0, i.above = !1; var n = new ta(); return i.fill = n.getFor("alternativeBackground"), i.fillOpacity = 0, i.applyTheme(), i; } return n(e, t), e.prototype.setDisabled = function (e) { var i = t.prototype.setDisabled.call(this, e); return this.axis && this.axis.invalidateDataItems(), i; }, e.prototype.draw = function () { t.prototype.draw.call(this), this.__disabled || this.disabled || this.axis && A(this.startPosition) && A(this.endPosition) && (this.fillPath = this.axis.getPositionRangePath(this.startPosition, this.endPosition), this.path = this.fillPath); }, Object.defineProperty(e.prototype, "startPosition", { get: function get() { return this.getPropertyValue("startPosition"); }, set: function set(t) { this.setPropertyValue("startPosition", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endPosition", { get: function get() { return this.getPropertyValue("endPosition"); }, set: function set(t) { this.setPropertyValue("endPosition", t), this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "location", { get: function get() { return this.getPropertyValue("location"); }, set: function set(t) { this.setPropertyValue("location", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.setPath = function (t) { return !!this.setPropertyValue("path", t) && (this.element.attr({ d: t }), !0); }, Object.defineProperty(e.prototype, "above", { get: function get() { return this.getPropertyValue("above"); }, set: function set(t) { this.setPropertyValue("above", t, !0); }, enumerable: !0, configurable: !0 }), e; }(ba); Fs.registeredClasses.AxisFill = zl; var Ul = function (t) { function e() { var e = t.call(this) || this; e.className = "Grid", e.element = e.paper.add("path"), e.location = .5, e.isMeasured = !1, e.above = !1; var i = new ta(); return e.stroke = i.getFor("grid"), e.pixelPerfect = !0, e.strokeOpacity = .15, e.fill = Je(), e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "location", { get: function get() { return this.getPropertyValue("location"); }, set: function set(t) { this.setPropertyValue("location", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "above", { get: function get() { return this.getPropertyValue("above"); }, set: function set(t) { this.setPropertyValue("above", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.setDisabled = function (e) { var i = t.prototype.setDisabled.call(this, e); return this.axis && this.axis.invalidateDataItems(), i; }, e; }(ba); Fs.registeredClasses.Grid = Ul, Ta.push({ relevant: Aa.maybeXS, state: function state(t, e) { if (t instanceof Ul) { var i = t.states.create(e); return i.properties.disabled = !0, i; } return null; } }); var Gl = function (t) { function e() { var e = t.call(this) || this; return e.className = "AxisLabel", e.isMeasured = !1, e.padding(10, 10, 10, 10), e.location = .5, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "location", { get: function get() { return this.getPropertyValue("location"); }, set: function set(t) { this.setPropertyValue("location", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "inside", { get: function get() { return this.getPropertyValue("inside"); }, set: function set(t) { this.setPropertyValue("inside", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.setDisabled = function (e) { var i = t.prototype.setDisabled.call(this, e); return this.axis && this.axis.invalidateDataItems(), i; }, e; }(Ma); Fs.registeredClasses.AxisLabel = Gl; var Kl = function (t) { function e() { var e = t.call(this) || this; e.className = "Tick"; var i = new ta(); return e.fillOpacity = 0, e.length = 6, e.strokeOpacity = .2, e.stroke = i.getFor("grid"), e.isMeasured = !1, e.nonScalingStroke = !0, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "length", { get: function get() { return this.disabled ? 0 : this.getPropertyValue("length"); }, set: function set(t) { this.setPropertyValue("length", t, !0); }, enumerable: !0, configurable: !0 }), e; }(ba); Fs.registeredClasses.Tick = Kl; var Zl = function (t) { function e() { var e = t.call(this) || this; return e.className = "AxisTick", e.element = e.paper.add("path"), e.location = .5, e.above = !1, e.isMeasured = !1, e.pixelPerfect = !0, e.strokeOpacity = 0, e.length = 5, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "location", { get: function get() { return this.getPropertyValue("location"); }, set: function set(t) { this.setPropertyValue("location", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "inside", { get: function get() { return this.getPropertyValue("inside"); }, set: function set(t) { this.setPropertyValue("inside", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "above", { get: function get() { return this.getPropertyValue("above"); }, set: function set(t) { this.setPropertyValue("above", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.setDisabled = function (e) { var i = t.prototype.setDisabled.call(this, e); return this.axis && this.axis.invalidateDataItems(), i; }, e; }(Kl); Fs.registeredClasses.AxisTick = Zl; var ql = function (t) { function e() { var e = t.call(this) || this; e._chart = new ys(), e.className = "AxisRenderer", e.minGridDistance = 50, e.inside = !1, e.inversed = !1, e.tooltipLocation = .5, e.fullWidthTooltip = !1, e.cellStartLocation = 0, e.cellEndLocation = 1, e.minLabelPosition = 0, e.maxLabelPosition = 1, e.shouldClone = !1; var i = e.createChild(_a); i.shouldClone = !1, i.layout = "none", i.virtualParent = e, i.width = h(100), i.height = h(100), e.gridContainer = i, i.events.on("maxsizechanged", function () { e.inited && e.invalidateAxisItems(); }, e, !1); var n = e.createChild(_a); n.shouldClone = !1, n.isMeasured = !1, n.layout = "none", n.width = h(100), n.height = h(100), e.breakContainer = n; var r = e.createChild(_a); r.shouldClone = !1, r.isMeasured = !1, r.layout = "none", r.width = h(100), r.height = h(100), e.bulletsContainer = r, e.line = e.createChild(Yl), e.line.shouldClone = !1, e.line.strokeOpacity = 0; var s = e.createChild(Ul); s.shouldClone = !1, e.baseGrid = s; var o = e._disposers; return o.push(s), o.push(e.line), o.push(i), o.push(n), o.push(r), o.push(e._chart), e.ticks.template.disabled = !0, e.axisFills.template.disabled = !0, e.axisFills.template.interactionsEnabled = !1, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "axis", { get: function get() { return this._axis; }, set: function set(t) { this.setAxis(t); }, enumerable: !0, configurable: !0 }), e.prototype.setAxis = function (t) { this._axis = t, this.baseGrid.parent = t, this.line.parent = t, this.gridContainer.bind("opacity", t); }, e.prototype.processRenderer = function () { this.events.on("sizechanged", this.updateTooltip, this, !1), this.events.on("positionchanged", this.updateTooltip, this, !1), this.labels.template.inside = this.inside, this.ticks.template.inside = this.inside; }, e.prototype.updateTooltip = function () {}, Object.defineProperty(e.prototype, "axisLength", { get: function get() { return 0; }, enumerable: !0, configurable: !0 }), e.prototype.positionItem = function (t, e) { t && t.moveTo(e); }, e.prototype.positionToPoint = function (t, e) { return { x: 0, y: 0 }; }, e.prototype.positionToAngle = function (t) { return 0; }, e.prototype.positionToCoordinate = function (t) { var e = this.axis, i = e.axisFullLength; return e.renderer.inversed ? (e.end - t) * i : (t - e.start) * i; }, e.prototype.updateGridContainer = function () {}, e.prototype.getHeight = function () { var t = this.axis; if (t && t.chart) { var e = this.axis.chart; if (e.plotContainer) return e.plotContainer.pixelHeight || 0; } return this.gridContainer.pixelHeight || 0; }, e.prototype.getWidth = function () { var t = this.axis; if (t && t.chart) { var e = this.axis.chart; if (e.plotContainer) return e.plotContainer.pixelWidth || 0; } return this.gridContainer.pixelWidth || 0; }, e.prototype.coordinateToPosition = function (t, e) { var i = this.axis, n = i.axisFullLength; return j(i.renderer.inversed ? i.end - t / n : t / n + i.start, 5); }, e.prototype.pointToPosition = function (t) { return 0; }, e.prototype.getPositionRangePath = function (t, e) { return ""; }, e.prototype.invalidateAxisItems = function () { var t = this.axis; t && t.invalidateDataItems(); }, e.prototype.updateGridElement = function (t, e, i) {}, e.prototype.updateTickElement = function (t, e, i) {}, e.prototype.updateBullet = function (t, e, i) {}, e.prototype.updateLabelElement = function (t, e, i, n) {}, e.prototype.updateFillElement = function (t, e, i) { t.startPosition = e, t.endPosition = i; }, e.prototype.updateAxisLine = function () {}, e.prototype.updateBaseGridElement = function () {}, e.prototype.updateBreakElement = function (t) { this.positionItem(t.startLine, t.startPoint), this.toggleVisibility(t.startLine, t.startPosition, 0, 1), this.positionItem(t.endLine, t.endPoint), this.toggleVisibility(t.endLine, t.endPosition, 0, 1); }, Object.defineProperty(e.prototype, "minGridDistance", { get: function get() { return this.getPropertyValue("minGridDistance"); }, set: function set(t) { this.setPropertyValue("minGridDistance", t) && this.axis && this.axis.invalidateLayout(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "chart", { get: function get() { return this._chart.get(); }, set: function set(t) { this._chart.set(t, null); }, enumerable: !0, configurable: !0 }), e.prototype.toggleVisibility = function (t, e, i, n) { var r = this.axis, s = t.dataItem; s && s instanceof Wl && (A(s.minPosition) && (i = s.minPosition), A(s.maxPosition) && (n = s.maxPosition)); var o = r.start + (r.end - r.start) * (i - 1e-4), a = r.start + (r.end - r.start) * (n + 1e-4); t.disabled || (t.__disabled = e < o || e > a); }, e.prototype.createBreakSprites = function (t) {}, Object.defineProperty(e.prototype, "axisFills", { get: function get() { if (!this._axisFills) { var t = this.createFill(this.axis); this._axisFills = new Hs(t), t.applyOnClones = !0, t.events.on("enabled", this.invalidateAxisItems, this, !1), this._disposers.push(new Bs(this._axisFills)), this._disposers.push(this._axisFills.template); } return this._axisFills; }, enumerable: !0, configurable: !0 }), e.prototype.createFill = function (t) { return new zl(t); }, Object.defineProperty(e.prototype, "grid", { get: function get() { if (!this._grid) { var t = this.createGrid(); this._grid = new Hs(t), t.applyOnClones = !0, t.events.on("enabled", this.invalidateAxisItems, this, !1), this._disposers.push(new Bs(this._grid)), this._disposers.push(this._grid.template); } return this._grid; }, enumerable: !0, configurable: !0 }), e.prototype.createGrid = function () { return new Ul(); }, Object.defineProperty(e.prototype, "ticks", { get: function get() { if (!this._ticks) { var t = this.createTick(); t.applyOnClones = !0, t.isMeasured = !1, t.events.on("enabled", this.invalidateAxisItems, this, !1), this._ticks = new Hs(t), this._disposers.push(new Bs(this._ticks)), this._disposers.push(this._ticks.template); } return this._ticks; }, enumerable: !0, configurable: !0 }), e.prototype.createTick = function () { return new Zl(); }, Object.defineProperty(e.prototype, "labels", { get: function get() { if (!this._labels) { var t = this.createLabel(); this._labels = new Hs(t), t.applyOnClones = !0, t.events.on("enabled", this.invalidateAxisItems, this, !1), this._disposers.push(new Bs(this._labels)), this._disposers.push(this._labels.template); } return this._labels; }, enumerable: !0, configurable: !0 }), e.prototype.createLabel = function () { return new Gl(); }, Object.defineProperty(e.prototype, "inside", { get: function get() { return this.getPropertyValue("inside"); }, set: function set(t) { this.setPropertyValue("inside", t) && this.axis && this.axis.invalidate(), t ? (this.width = 0, this.height = 0) : (this.width = void 0, this.height = void 0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "opposite", { get: function get() { return this.getPropertyValue("opposite"); }, set: function set(t) { this.setPropertyValue("opposite", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fullWidthTooltip", { get: function get() { return this.getPropertyValue("fullWidthTooltip"); }, set: function set(t) { this.setPropertyValue("fullWidthTooltip", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipLocation", { get: function get() { return this.getPropertyValue("tooltipLocation"); }, set: function set(t) { this.setPropertyValue("tooltipLocation", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipLocation2", { get: function get() { return this.getPropertyValue("tooltipLocation2"); }, set: function set(t) { this.setPropertyValue("tooltipLocation2", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cellStartLocation", { get: function get() { return this.getPropertyValue("cellStartLocation"); }, set: function set(t) { this.setPropertyValue("cellStartLocation", t) && this.axis && this.axis.invalidateSeries(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cellEndLocation", { get: function get() { return this.getPropertyValue("cellEndLocation"); }, set: function set(t) { this.setPropertyValue("cellEndLocation", t) && this.axis && this.axis.invalidateSeries(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "inversed", { get: function get() { return this.getPropertyValue("inversed"); }, set: function set(t) { this.setPropertyValue("inversed", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "minLabelPosition", { get: function get() { return this.getPropertyValue("minLabelPosition"); }, set: function set(t) { this.setPropertyValue("minLabelPosition", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxLabelPosition", { get: function get() { return this.getPropertyValue("maxLabelPosition"); }, set: function set(t) { this.setPropertyValue("maxLabelPosition", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.grid.template.copyFrom(e.grid.template), this.ticks.template.copyFrom(e.ticks.template), this.labels.template.copyFrom(e.labels.template), this.axisFills.template.copyFrom(e.axisFills.template), this.line.copyFrom(e.line), this.baseGrid.copyFrom(e.baseGrid); }, e.prototype.toAxisPosition = function (t) { return t; }, e.prototype.setVisibility = function (e) { t.prototype.setVisibility.call(this, e), this.bulletsContainer.visible = e; }, e; }(_a); Fs.registeredClasses.AxisRenderer = ql; var $l = function (t) { function e() { var e = t.call(this) || this; return e.className = "AxisBullet", e.location = .5, e.isMeasured = !1, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "location", { get: function get() { return this.getPropertyValue("location"); }, set: function set(t) { this.setPropertyValue("location", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.setDisabled = function (e) { var i = t.prototype.setDisabled.call(this, e); return this.axis && this.axis.invalidateDataItems(), i; }, e; }(_a); Fs.registeredClasses.AxisBullet = $l; var Jl = function (t) { function e() { var e = t.call(this) || this; return e.className = "AxisRendererY", e.minGridDistance = 40, e.opposite = !1, e.height = h(100), e.labels.template.verticalCenter = "middle", e.applyTheme(), e; } return n(e, t), e.prototype.setAxis = function (e) { t.prototype.setAxis.call(this, e), e.layout = "horizontal"; }, e.prototype.updateGridContainer = function () { var t = this.axis; if (t) { var e = this.gridContainer; e.y = t.pixelY, e.height = t.axisLength; } }, e.prototype.toAxisPosition = function (t) { var e = 1 - t, i = this.axis, n = i.parent; return i && n ? 1 - (e - i.pixelY / n.innerHeight) / (i.axisLength / n.innerHeight) : t; }, e.prototype.processRenderer = function () { t.prototype.processRenderer.call(this); var e = this.axis; if (e) { var i = e.title; i.valign = "middle", e.height instanceof hs || (e.height = h(100)), this.opposite ? (i.rotation = 90, this.line.toBack(), i.toFront()) : (i.rotation = -90, i.toBack(), this.line.toFront()); } }, e.prototype.updateTooltip = function () { if (this.axis) { var t = 0, e = 2e3, i = this.axisLength; this.opposite ? this.inside && (t = -2e3, e = 2e3) : this.inside || (t = -2e3, e = 2e3), this.axis.updateTooltip("horizontal", { x: t, y: 0, width: e, height: i }); } }, Object.defineProperty(e.prototype, "axisLength", { get: function get() { var t = this.axis; return t.measuredHeight - t.pixelPaddingTop - t.pixelPaddingBottom || 0; }, enumerable: !0, configurable: !0 }), e.prototype.positionToPoint = function (t, e) { return { x: 0, y: this.positionToCoordinate(t) }; }, e.prototype.pointToPosition = function (t) { return this.coordinateToPosition(t.y, t.x); }, e.prototype.getPositionRangePath = function (t, e) { var i = R(this.positionToCoordinate(t), 0, this.axisLength), n = R(this.positionToCoordinate(e), 0, this.axisLength), r = Math.abs(n - i), s = this.getWidth(); return kr({ x: 0, y: Math.min(i, n), width: s, height: r }, !0); }, e.prototype.updateGridElement = function (t, e, i) { e += (i - e) * t.location; var n = this.positionToPoint(e); t.path = xr({ x: 0, y: 0 }) + _r({ x: this.getWidth(), y: 0 }), this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateTickElement = function (t, e, i) { e += (i - e) * t.location; var n = this.positionToPoint(e), r = t.length; try { this.axis.title.measuredWidth; } catch (t) {} n.x = Xi({ x: this.line.pixelX, y: 0 }, this.line.parent, this.gridContainer).x, this.opposite ? r *= t.inside ? -1 : 1 : r *= t.inside ? 1 : -1, t.path = xr({ x: 0, y: 0 }) + _r({ x: r, y: 0 }), this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateAxisLine = function () { this.line.path = xr({ x: 0, y: 0 }) + _r({ x: 0, y: this.axisLength }); }, e.prototype.updateBaseGridElement = function () { t.prototype.updateBaseGridElement.call(this); var e = this.axis, i = this.getWidth(), n = this.axisLength, r = e.basePoint.y, s = this.baseGrid; if (r < -.2 || r > n + .2) s.hide(0);else { var o = Xi({ x: 0, y: 0 }, this.gridContainer, s.parent).x; s.path = xr({ x: 0, y: 0 }) + _r({ x: i, y: 0 }), s.moveTo({ x: o, y: r }), s.show(0); } }, e.prototype.updateLabelElement = function (t, e, i, n) { S(n) || (n = t.location), e += (i - e) * n, t.isMeasured = !t.inside; var r, s = this.positionToPoint(e), o = 0, a = this.gridContainer.maxWidth; this.opposite ? (t.inside ? (r = "right", "left" == t.align && (o = -a, r = "left"), "center" == t.align && (o = -a / 2, r = "middle")) : r = "left", s.x = 0 + o) : (t.inside ? (r = "left", "right" == t.align && (o = a, r = "right"), "center" == t.align && (o = a / 2, r = "middle")) : r = "right", s.x = this.measuredWidth + o), 0 == t.rotation && (t.horizontalCenter = r), this.positionItem(t, s), this.toggleVisibility(t, e, this.minLabelPosition, this.maxLabelPosition); }, e.prototype.updateBreakElement = function (e) { t.prototype.updateBreakElement.call(this, e); var i = e.startLine, n = e.endLine, r = e.fillShape, s = e.startPoint, o = e.endPoint, a = e.pixelMarginLeft, l = this.getWidth() - e.pixelMarginLeft - e.pixelMarginRight; s.y = R(s.y, -1, this.axisLength + 1), o.y = R(o.y, -1, this.axisLength + 1), s.y == o.y && (s.y < 0 || s.y > this.axisLength) ? e.fillShape.__disabled = !0 : e.fillShape.__disabled = !1; var h = Math.abs(l - a); i.x = a, i.height = 0, i.width = h, n.x = a, n.height = 0, n.width = h, r.width = h, r.height = Math.abs(o.y - s.y), r.x = a, r.y = o.y; }, e.prototype.createBreakSprites = function (t) { t.startLine = new ll(), t.endLine = new ll(); var e = new hl(); e.setWavedSides(!0, !1, !0, !1), t.fillShape = e; }, e.prototype.positionToCoordinate = function (t) { var e = this.axis, i = e.axisFullLength; return j(e.renderer.inversed ? (t - e.start) * i : (e.end - t) * i, 1); }, e.prototype.updateBullet = function (t, e, i) { var n = .5; t instanceof $l && (n = t.location), e += (i - e) * n; var r = this.positionToPoint(e); r.x = Xi({ x: this.line.pixelX, y: 0 }, this.line.parent, this.gridContainer).x, this.positionItem(t, r), this.toggleVisibility(t, e, 0, 1); }, e; }(ql); Fs.registeredClasses.AxisRendererY = Jl, Ta.push({ relevant: Aa.widthS, state: function state(t, e) { if (t instanceof Jl) { var i = t.states.create(e); return i.properties.inside = !0, i.properties.maxLabelPosition = .9, i.properties.minLabelPosition = .1, i; } return null; } }), Ta.push({ relevant: Aa.widthXS, state: function state(t, e) { if (t instanceof Jl) { var i = t.states.create(e); return i.properties.disabled = !0, i; } return null; } }); var Ql = function (t) { function e() { var e = t.call(this) || this; return e.className = "ValueAxisBreak", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "startPosition", { get: function get() { if (this.axis) return this.axis.valueToPosition(this.adjustedStartValue); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endPosition", { get: function get() { if (this.axis) return this.axis.valueToPosition(this.adjustedEndValue); }, enumerable: !0, configurable: !0 }), e; }(Nl); Fs.registeredClasses.ValueAxisBreak = Ql; var th = function (t) { function e() { var e = t.call(this) || this; return e.className = "ValueAxisDataItem", e.values.value = {}, e.values.endValue = {}, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "value", { get: function get() { return this.values.value.value; }, set: function set(t) { this.setValue("value", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endValue", { get: function get() { return this.values.endValue.value; }, set: function set(t) { this.setValue("endValue", t); }, enumerable: !0, configurable: !0 }), e; }(Wl), eh = function (t) { function e() { var e = t.call(this) || this; return e._stepDecimalPlaces = 0, e._baseValue = 0, e._adjustedStart = 0, e._adjustedEnd = 1, e._extremesChanged = !1, e._deltaMinMax = 1, e.calculateTotals = !1, e.className = "ValueAxis", e.axisFieldName = "value", e.setPropertyValue("maxZoomFactor", 1e3), e.setPropertyValue("extraMin", 0), e.setPropertyValue("extraMax", 0), e.setPropertyValue("strictMinMax", !1), e.setPropertyValue("maxPrecision", Number.MAX_VALUE), e.keepSelection = !1, e.includeRangesInMinMax = !1, e.applyTheme(), e; } return n(e, t), e.prototype.fillRule = function (t) { var e = t.value, i = t.component; t.axisFill.disabled || (j(e / i.step / 2, 5) == Math.round(e / i.step / 2) ? t.axisFill.__disabled = !0 : t.axisFill.__disabled = !1); }, e.prototype.createDataItem = function () { return new th(); }, e.prototype.createAxisBreak = function () { return new Ql(); }, e.prototype.dataChangeUpdate = function () { this.keepSelection ? (0 != this._start && this.dispatchImmediately("startchanged"), 1 != this._end && this.dispatchImmediately("endchanged"), 0 == this._start && 1 == this._end || this.dispatchImmediately("startendchanged")) : 0 == this._start && 1 == this._end || (this._start = 0, this._end = 1, this.dispatchImmediately("startendchanged")), this._maxZoomed = this._maxDefined, this._minZoomed = this._minDefined, this._maxAdjusted = this._maxDefined, this._minAdjusted = this._minDefined; }, e.prototype.processSeriesDataItems = function () { if (this.calculateTotals) { var t = this.series.getIndex(0), e = t.startIndex; if (t.dataItems.length > 0) { e > 0 && e--; var i = t.endIndex; i < t.dataItems.length && i++; for (var n = this, r = e; r < i; ++r) !function (t) { var e = {}; n.series.each(function (i) { if (!i.excludeFromTotal) { var n = i.dataItems.getIndex(t); n && Qt(n.values, function (t) { var i = n.values[t].workingValue; A(i) && (A(e[t]) ? e[t] += Math.abs(i) : e[t] = Math.abs(i)); }); } }), n.series.each(function (i) { if (!i.excludeFromTotal) { var n = i.dataItems.getIndex(t); n && Qt(n.values, function (t) { var i = n.values[t].workingValue; A(i) && (n.setCalculatedValue(t, e[t], "total"), n.setCalculatedValue(t, 100 * i / e[t], "totalPercent")); }); } }); }(r); } } }, e.prototype.validate = function () { this.axisLength <= 0 || (t.prototype.validate.call(this), this.getMinMax(), this.fixAxisBreaks(), this.calculateZoom(), this.validateAxisElements(), this.validateAxisRanges(), this.validateBreaks(), this.hideUnusedDataItems(), this.renderer.invalidateLayout()); }, e.prototype.calculateZoom = function () { if (A(this.min) && A(this.max)) { var t = this.positionToValue(this.start), e = this.positionToValue(this.end), i = this.adjustDifference(t, e), n = this.adjustMinMax(t, e, i, this._gridCount, !0); t = n.min, e = n.max, this._adjustedStart = j((t - this.min) / (this.max - this.min), 5), this._adjustedEnd = j((e - this.min) / (this.max - this.min), 5), this._step = n.step, this._stepDecimalPlaces = Ji(this._step), this._minZoomed == t && this._maxZoomed == e || (this._minZoomed = t, this._maxZoomed = e, this.dispatchImmediately("selectionextremeschanged")); } else this._adjustedStart = this.start, this._adjustedEnd = this.end; }, e.prototype.validateAxisElements = function () { var t = this; if (A(this.max) && A(this.min)) { var e = this.minZoomed - 2 * this._step; this.logarithmic ? Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E > 1 ? e = Math.pow(10, Math.log(this.min) * Math.LOG10E) : 0 == (e = Math.floor(this.minZoomed / this._step) * this._step) && (e = this.minZoomed) : e = Math.floor(e / this._step) * this._step; var i = this._maxZoomed + this._step; this.resetIterators(); for (var n = this._dataItemsIterator, r = 0; e <= i;) { if (!this.isInBreak(e)) { var s = n.find(function (t) { return t.value === e; }); s.__disabled && (s.__disabled = !1), this.appendDataItem(s), s.axisBreak = void 0, s.value != e && (s.value = e, s.text = this.formatLabel(e), s.label && s.label.invalid && s.label.validate(), s.value >= this.min && s.value <= this.max && s.label && ("Y" == this.axisLetter && s.label.measuredWidth > this.ghostLabel.measuredWidth || "X" == this.axisLetter && s.label.measuredHeight > this.ghostLabel.measuredHeight) && (this.ghostLabel.text = s.label.currentText, this.ghostLabel.validate())), this.validateDataElement(s); } r++, this.logarithmic && Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E > 1 ? e = Math.pow(10, Math.log(this.min) * Math.LOG10E + r) : e += this._step; var o = Math.pow(10, Math.floor(Math.log(Math.abs(this._step)) * Math.LOG10E)); if (o < 1) { var a = Math.round(Math.abs(Math.log(Math.abs(o)) * Math.LOG10E)) + 2; e = j(e, a); } } var l = this._axisBreaks; if (l) { var h = this.renderer; pe(l.iterator(), function (e) { if (e.breakSize > 0 && K(e.startPoint, e.endPoint) > h.minGridDistance) for (var i = e.adjustedMin; i <= e.adjustedMax;) { if (i >= e.adjustedStartValue && i <= e.adjustedEndValue) { var r = n.find(function (t) { return t.value === i; }); r.__disabled && (r.__disabled = !1), t.appendDataItem(r), r.axisBreak = e, r.value != i && (r.value = i, r.text = t.formatLabel(i), r.label && r.label.invalid && r.label.validate()), t.validateDataElement(r); } i += e.adjustedStep; } }); } } }, e.prototype.validateDataElement = function (e) { t.prototype.validateDataElement.call(this, e); var i = this.renderer, n = e.value, r = e.endValue, s = this.valueToPosition(n); e.position = s; var o = s, a = this.valueToPosition(n + this._step); A(r) && (a = o = this.valueToPosition(r)), e.point = i.positionToPoint(s); var l = e.tick; l && !l.disabled && i.updateTickElement(l, s, o); var h = e.grid; h && !h.disabled && i.updateGridElement(h, s, o); var u = e.label; u && !u.disabled && i.updateLabelElement(u, s, o); var p = e.axisFill; p && !p.disabled && (i.updateFillElement(p, s, a), e.isRange || this.fillRule(e)), e.bullet && i.updateBullet(e.bullet, s, o); var c = e.mask; c && i.updateFillElement(c, s, a); }, e.prototype.formatLabel = function (t) { return this.numberFormatter.format(t); }, Object.defineProperty(e.prototype, "basePoint", { get: function get() { var t = this.baseValue, e = this.valueToPosition(t); return this.renderer.positionToPoint(e); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "baseValue", { get: function get() { return this.logarithmic ? this.min : this._baseValue; }, set: function set(t) { this._baseValue = t, this.invalidateLayout(), this.invalidateSeries(); }, enumerable: !0, configurable: !0 }), e.prototype.anyToPosition = function (t) { return this.valueToPosition(t); }, e.prototype.valueToPoint = function (t) { var e = this.valueToPosition(t), i = this.renderer.positionToPoint(e), n = this.renderer.positionToAngle(e); return { x: i.x, y: i.y, angle: n }; }, e.prototype.anyToPoint = function (t) { return this.valueToPoint(t); }, e.prototype.valueToPosition = function (t) { if (A(t)) { var e = this.min, i = this.max; if (A(e) && A(i)) { var n = this._difference, r = this._axisBreaks; return r && r.length > 0 && ue(r.iterator(), function (n) { var r = n.adjustedStartValue, s = n.adjustedEndValue; if (A(r) && A(s)) { if (t < r) return !1; if (z({ start: r, end: s }, { start: e, end: i })) { r = Math.max(r, e), s = Math.min(s, i); var o = n.breakSize; t > s ? e += (s - r) * (1 - o) : t < r || (t = r + (t - r) * o); } } return !0; }), this.logarithmic ? (Math.log(t) * Math.LOG10E - Math.log(this.min) * Math.LOG10E) / (Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E) : (t - e) / n; } } return 0; }, e.prototype.positionToValue = function (t) { t = j(t, 10); var e = this.min, i = this.max; if (A(e) && A(i)) { var n = i - e, r = null, s = this._axisBreaks; return s && s.length > 0 && ue(s.iterator(), function (s) { var o = s.startPosition, a = s.endPosition, l = s.adjustedStartValue, h = s.adjustedEndValue; if (A(l) && A(h)) { if (l > i) return !1; if (z({ start: l, end: h }, { start: e, end: i })) { l = W(l, e), h = X(h, i); var u = s.breakSize; if (n -= (h - l) * (1 - u), t > a) e += (h - l) * (1 - u);else if (!(t < o)) return r = l + (t - o) / (a - o) * (h - l), !1; } return !0; } }), A(r) || (r = this.logarithmic ? Math.pow(Math.E, (t * (Math.log(this.max) * Math.LOG10E - Math.log(this.min) * Math.LOG10E) + Math.log(this.min) * Math.LOG10E) / Math.LOG10E) : t * n + e), r; } }, e.prototype.xToValue = function (t) { return this.positionToValue(this.pointToPosition({ x: t, y: 0 })); }, e.prototype.yToValue = function (t) { return this.positionToValue(this.pointToPosition({ x: 0, y: t })); }, e.prototype.pointToPosition = function (t) { return this.renderer instanceof Jl ? 1 - this.renderer.pointToPosition(t) : this.renderer.pointToPosition(t); }, e.prototype.getMinMax = function () { var t = this; this.updateGridCount(); var e = Number.POSITIVE_INFINITY, i = Number.NEGATIVE_INFINITY; if (A(this._minDefined) && A(this._maxDefined) || (this.series.each(function (n) { if (!n.ignoreMinMax) { var r = n.min(t); A(r) && r < e && (e = r); var s = n.max(t); A(s) && s > i && (i = s); } }), this.includeRangesInMinMax && this.axisRanges.each(function (t) { if (!t.ignoreMinMax) { var n = X(t.value, t.endValue), r = W(t.value, t.endValue); (n < e || !A(e)) && (e = n), (r > i || !A(i)) && (i = r); } })), this.logarithmic && e <= 0) throw Error("Logarithmic value axis can not have vales <= 0."); if (0 == e && 0 == i && (i = .9, e = -.9), A(this._minDefined) && (e = this._minDefined), A(this._maxDefined) && (i = this._maxDefined), A(e) && A(i)) { this._minReal = e, this._maxReal = i, e == Number.POSITIVE_INFINITY && (e = void 0), i == Number.NEGATIVE_INFINITY && (i = void 0); var n = this.adjustDifference(e, i); if (e = this.fixMin(e), (i = this.fixMax(i)) - e <= 1 / Math.pow(10, 15)) { if (i - e != 0) this._deltaMinMax = (i - e) / 2;else { var r = Math.log(Math.abs(i)) * Math.LOG10E, s = Math.pow(10, Math.floor(r)); s /= 10, this._deltaMinMax = s; } e -= this._deltaMinMax, i += this._deltaMinMax; } e -= (i - e) * this.extraMin, i += (i - e) * this.extraMax; var o = this.strictMinMax; A(this._maxDefined) && (o = !0); var a = this.adjustMinMax(e, i, n, this._gridCount, o); if (e = a.min, n = (i = a.max) - e, a = this.adjustMinMax(e, i, i - e, this._gridCount, !0), e = a.min, i = a.max, this.strictMinMax && (e = A(this._minDefined) ? this._minDefined : this._minReal, (i = A(this._maxDefined) ? this._maxDefined : this._maxReal) - e <= 1e-8 && (e -= this._deltaMinMax, i += this._deltaMinMax), e -= (i - e) * this.extraMin, i += (i - e) * this.extraMax), (this._minAdjusted != e || this._maxAdjusted != i) && A(e) && A(i)) { var l = this._minMaxAnimation; if (this._extremesChanged && A(this._minAdjusted) && A(this._maxAdjusted) && this.inited) { if (l && !l.isFinished() && this._finalMax == i && this._finalMin == e) return; this._finalMin = e, this._finalMax = i, (l = this.animate([{ property: "_minAdjusted", from: this._minAdjusted, to: e }, { property: "_maxAdjusted", from: this._maxAdjusted, to: i }], this.rangeChangeDuration)) && !l.isFinished() ? (l.events.on("animationprogress", this.validateDataItems, this), l.events.on("animationended", function () { t.series.each(function (t) { t.validate(); }), t.validateDataItems(), t.handleSelectionExtremesChange(); }), this._minMaxAnimation = l) : this.series.each(function (t) { t.validate(); }), this.validateDataItems(), this.dispatchImmediately("extremeschanged"), this.handleSelectionExtremesChange(); } else { if (l && !l.isFinished() && this._finalMax == i && this._finalMin == e) return; this._minAdjusted = e, this._maxAdjusted = i, this._finalMin = e, this._finalMax = i, this.invalidateDataItems(), this.dispatchImmediately("extremeschanged"); } } this._extremesChanged = !1, this._difference = this.adjustDifference(e, i); } }, e.prototype.fixMin = function (t) { return t; }, e.prototype.fixMax = function (t) { return t; }, e.prototype.adjustMinMax = function (t, e, i, n, r) { n <= 1 && (n = 1), n = Math.round(n); var s = t, o = e; 0 === i && (i = Math.abs(e)); var a = Math.log(Math.abs(i)) * Math.LOG10E, l = Math.pow(10, Math.floor(a)), h = l /= 10; r && (h = 0), this.logarithmic ? (t <= 0 && (t = this.baseValue), t == 1 / 0 && (t = 1), e == -1 / 0 && (e = 10), t = Math.pow(10, Math.floor(Math.log(Math.abs(t)) * Math.LOG10E)), e = Math.pow(10, Math.ceil(Math.log(Math.abs(e)) * Math.LOG10E))) : (r ? (t = Math.floor(t / l) * l, e = Math.ceil(e / l) * l) : (t = Math.ceil(t / l) * l - h, e = Math.floor(e / l) * l + h), t < 0 && s >= 0 && (t = 0), e > 0 && o <= 0 && (e = 0)), a = Math.log(Math.abs(i)) * Math.LOG10E, l = Math.pow(10, Math.floor(a)), l /= 10; var u = Math.ceil(i / n / l) * l, p = Math.pow(10, Math.floor(Math.log(Math.abs(u)) * Math.LOG10E)), c = Math.ceil(u / p); c > 5 ? c = 10 : c <= 5 && c > 2 && (c = 5), u = Math.ceil(u / (p * c)) * p * c, this.maxPrecision < Number.MAX_VALUE && u != L(u, this.maxPrecision) && (u = L(u, this.maxPrecision)); var d = 0; if (p < 1 && (u = j(u, d = Math.round(Math.abs(Math.log(Math.abs(p)) * Math.LOG10E)) + 1)), !this.logarithmic) { var f = Math.floor(t / u); t = j(u * f, d); var g = void 0; (g = r ? Math.floor(e / u) : Math.ceil(e / u)) == f && g++, (e = j(u * g, d)) < o && (e += u), t > s && (t -= u); } return { min: t, max: e, step: u }; }, Object.defineProperty(e.prototype, "min", { get: function get() { var t = this._minAdjusted; return A(t) || (t = this._minDefined), t; }, set: function set(t) { this._minDefined != t && (this._minDefined = t, this.invalidate()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "minDefined", { get: function get() { return this._minDefined; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxDefined", { get: function get() { return this._maxDefined; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "extraMin", { get: function get() { return this.getPropertyValue("extraMin"); }, set: function set(t) { this.setPropertyValue("extraMin", t) && this.invalidateDataItems(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "extraMax", { get: function get() { return this.getPropertyValue("extraMax"); }, set: function set(t) { this.setPropertyValue("extraMax", t) && this.invalidateDataItems(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "step", { get: function get() { return this._step; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "max", { get: function get() { var t = this._maxAdjusted; return A(t) || (t = this._maxDefined), t; }, set: function set(t) { this._maxDefined != t && (this._maxDefined = t, this.invalidate()); }, enumerable: !0, configurable: !0 }), e.prototype.registerSeries = function (e) { return new gs([t.prototype.registerSeries.call(this, e), e.events.on("extremeschanged", this.handleExtremesChange, this, !1), e.events.on("selectionextremeschanged", this.handleSelectionExtremesChange, this, !1), this.events.on("extremeschanged", e.invalidate, e, !1)]); }, e.prototype.handleSelectionExtremesChange = function () { var t, e, i = this, n = !0; if (pe(this.series.iterator(), function (r) { if (!r.ignoreMinMax && !r.isHidden) { r.visible && !r.isHiding && (n = !1); var s = r.selectionMin(i), o = r.selectionMax(i); A(s) && (!A(t) || s < t) && (t = s), A(o) && (!A(e) || o > e) && (e = o); } }), this.includeRangesInMinMax && this.axisRanges.each(function (t) { if (!t.ignoreMinMax) { var i = X(t.value, t.endValue), n = W(t.value, t.endValue); i < e && (e = i), n > e && (e = n); } }), A(this._minDefined) ? t = this.strictMinMax ? this._minDefined : this.min : this.strictMinMax && (t = this._minReal), A(this._maxDefined) ? e = this.strictMinMax ? this._maxDefined : this.max : this.strictMinMax && (e = this._maxReal), t == e) { t -= this._deltaMinMax, e += this._deltaMinMax; var r = this.adjustMinMax(t, e, 0, this._gridCount, this.strictMinMax); t = r.min, e = r.max; } var s = this.adjustDifference(t, e), o = this.adjustMinMax(t, e, s, this._gridCount); t = o.min, e = o.max, t -= (e - t) * this.extraMin, e += (e - t) * this.extraMax, t = R(t, this.min, this.max), e = R(e, this.min, this.max), s = this.adjustDifference(t, e), o = this.adjustMinMax(t, e, s, this._gridCount, !0), t = o.min, e = o.max, this.strictMinMax && (t = W(t, this._minDefined), e = X(e, this._maxDefined)), this._minZoomed = t, this._maxZoomed = e, this._step = o.step; var a = this.valueToPosition(t), l = this.valueToPosition(e); n && (a = 0, l = 1), this.keepSelection || this.zoom({ start: a, end: l }, !1, !1, 0); }, Object.defineProperty(e.prototype, "strictMinMax", { get: function get() { return this.getPropertyValue("strictMinMax"); }, set: function set(t) { this.setPropertyValue("strictMinMax", t) && this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "logarithmic", { get: function get() { return this.getPropertyValue("logarithmic"); }, set: function set(t) { this.setPropertyValue("logarithmic", t) && this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "keepSelection", { get: function get() { return this.getPropertyValue("keepSelection"); }, set: function set(t) { this.setPropertyValue("keepSelection", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "includeRangesInMinMax", { get: function get() { return this.getPropertyValue("includeRangesInMinMax"); }, set: function set(t) { this.setPropertyValue("includeRangesInMinMax", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxPrecision", { get: function get() { return this.getPropertyValue("maxPrecision"); }, set: function set(t) { this.setPropertyValue("maxPrecision", t) && this.invalidate(); }, enumerable: !0, configurable: !0 }), e.prototype.handleExtremesChange = function () { var t = this; this._extremesChanged = !0, this.getMinMax(), this.ghostLabel && this.dataItems.each(function (e) { e.label && e.label.pixelWidth > 0 && (t.ghostLabel.text = e.label.currentText); }); }, e.prototype.getX = function (t, e, i, n, r) { return this.renderer.positionToPoint(this.getPositionX(t, e, i, n, r)).x; }, e.prototype.getPositionX = function (t, e, i, n, r) { var s = t.getWorkingValue(e); S(n) || (n = "valueX"); var o = t.getValue(n, "stack"); A(s) || (s = this.baseValue, this.logarithmic && o > 0 && (s = 0)); var a = this.valueToPosition(s + o); return r && (a = R(a, r.start, r.end)), a; }, e.prototype.getY = function (t, e, i, n, r) { return this.renderer.positionToPoint(this.getPositionY(t, e, i, n, r)).y; }, e.prototype.getPositionY = function (t, e, i, n, r) { var s = t.getWorkingValue(e); S(n) || (n = "valueY"); var o = t.getValue(n, "stack"); A(s) || (s = this.baseValue, this.logarithmic && o > 0 && (s = 0)); var a = this.valueToPosition(s + o); return r && (a = R(a, r.start, r.end)), a; }, e.prototype.getAngle = function (t, e, i, n, r) { var s = t.getWorkingValue(e), o = t.getValue(n, "stack"); A(s) || (s = this.baseValue); var a = this.valueToPosition(s + o); return r && (a = R(a, r.start, r.end)), this.positionToAngle(a); }, e.prototype.getAnyRangePath = function (t, e, i) { var n = this.valueToPosition(t), r = this.valueToPosition(e); return this.getPositionRangePath(n, r); }, e.prototype.getTooltipText = function (t) { var e = j(this.positionToValue(t), this._stepDecimalPlaces), i = this.tooltip.numberFormatter.format(e); return this._adapterO ? this._adapterO.apply("getTooltipText", i) : i; }, e.prototype.zoomToValues = function (t, e, i, n) { var r = (t - this.min) / (this.max - this.min), s = (e - this.min) / (this.max - this.min); this.zoom({ start: r, end: s }, i, n); }, Object.defineProperty(e.prototype, "minZoomed", { get: function get() { return W(this.min, this._minZoomed); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxZoomed", { get: function get() { return X(this.max, this._maxZoomed); }, enumerable: !0, configurable: !0 }), e.prototype.fixAxisBreaks = function () { var e = this; t.prototype.fixAxisBreaks.call(this); var i = this._axisBreaks; i && i.length > 0 && i.each(function (t) { var i = t.adjustedStartValue, n = t.adjustedEndValue, r = n - i, s = Math.ceil(r * t.breakSize) * e._gridCount / (e.max - e.min), o = e.adjustMinMax(i, n, r, s, !0); t.adjustedStep = o.step, t.adjustedMin = o.min, t.adjustedMax = o.max; }), this._difference = this.adjustDifference(this.min, this.max); }, e.prototype.getPositionLabel = function (t) { var e = this.positionToValue(t); return this.numberFormatter.format(e); }, e.prototype.showTooltipAt = function (t) { this.showTooltipAtPosition(this.valueToPosition(t)); }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.min = e.min, this.max = e.max, this.calculateTotals = e.calculateTotals, this._baseValue = e.baseValue; }, e; }(Xl); Fs.registeredClasses.ValueAxis = eh, Fs.registeredClasses.ValueAxisDataItem = th; var ih = function (t) { function e() { var e = t.call(this) || this; return e.className = "DateAxisBreak", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "startDate", { get: function get() { return this.getPropertyValue("startDate"); }, set: function set(t) { this.setPropertyValue("startDate", t) && (this.startValue = t.getTime(), this.axis && (this.axis.invalidate(), this.axis.invalidateSeries())); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endDate", { get: function get() { return this.getPropertyValue("endDate"); }, set: function set(t) { this.setPropertyValue("endDate", t) && (this.endValue = t.getTime(), this.axis && (this.axis.invalidate(), this.axis.invalidateSeries())); }, enumerable: !0, configurable: !0 }), e; }(Ql); Fs.registeredClasses.DateAxisBreak = ih; var nh = function (t) { function e() { var e = t.call(this) || this; return e.className = "DateAxisDataItem", e.applyTheme(), e.values.date = {}, e.values.endDate = {}, e; } return n(e, t), Object.defineProperty(e.prototype, "date", { get: function get() { return this.dates.date; }, set: function set(t) { this.setDate("date", t), this.value = t.getTime(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endDate", { get: function get() { return this.dates.endDate; }, set: function set(t) { this.setDate("endDate", t), this.endValue = t.getTime(); }, enumerable: !0, configurable: !0 }), e; }(th), rh = function (t) { function e() { var e = t.call(this) || this; return e.gridIntervals = new Ns(), e.groupIntervals = new Ns(), e.dateFormats = new Ds(), e.periodChangeDateFormats = new Ds(), e._baseIntervalReal = { timeUnit: "day", count: 1 }, e._minDifference = {}, e._firstWeekDay = 1, e._dataGrouped = !1, e.groupMin = {}, e.groupMax = {}, e.className = "DateAxis", e.setPropertyValue("markUnitChange", !0), e.snapTooltip = !0, e.tooltipPosition = "pointer", e.groupData = !1, e.groupCount = 200, e.events.on("parentset", e.getDFFormatter, e, !1), e.gridIntervals.pushAll([{ timeUnit: "millisecond", count: 1 }, { timeUnit: "millisecond", count: 5 }, { timeUnit: "millisecond", count: 10 }, { timeUnit: "millisecond", count: 50 }, { timeUnit: "millisecond", count: 100 }, { timeUnit: "millisecond", count: 500 }, { timeUnit: "second", count: 1 }, { timeUnit: "second", count: 5 }, { timeUnit: "second", count: 10 }, { timeUnit: "second", count: 30 }, { timeUnit: "minute", count: 1 }, { timeUnit: "minute", count: 5 }, { timeUnit: "minute", count: 10 }, { timeUnit: "minute", count: 15 }, { timeUnit: "minute", count: 30 }, { timeUnit: "hour", count: 1 }, { timeUnit: "hour", count: 3 }, { timeUnit: "hour", count: 6 }, { timeUnit: "hour", count: 12 }, { timeUnit: "day", count: 1 }, { timeUnit: "day", count: 2 }, { timeUnit: "day", count: 3 }, { timeUnit: "day", count: 4 }, { timeUnit: "day", count: 5 }, { timeUnit: "week", count: 1 }, { timeUnit: "month", count: 1 }, { timeUnit: "month", count: 2 }, { timeUnit: "month", count: 3 }, { timeUnit: "month", count: 6 }, { timeUnit: "year", count: 1 }, { timeUnit: "year", count: 2 }, { timeUnit: "year", count: 5 }, { timeUnit: "year", count: 10 }, { timeUnit: "year", count: 50 }, { timeUnit: "year", count: 100 }, { timeUnit: "year", count: 200 }, { timeUnit: "year", count: 500 }, { timeUnit: "year", count: 1e3 }, { timeUnit: "year", count: 2e3 }, { timeUnit: "year", count: 5e3 }, { timeUnit: "year", count: 1e4 }, { timeUnit: "year", count: 1e5 }]), e.groupIntervals.pushAll([{ timeUnit: "millisecond", count: 1 }, { timeUnit: "millisecond", count: 10 }, { timeUnit: "millisecond", count: 100 }, { timeUnit: "second", count: 1 }, { timeUnit: "second", count: 10 }, { timeUnit: "minute", count: 1 }, { timeUnit: "minute", count: 10 }, { timeUnit: "hour", count: 1 }, { timeUnit: "day", count: 1 }, { timeUnit: "week", count: 1 }, { timeUnit: "month", count: 1 }, { timeUnit: "year", count: 1 }]), e.axisFieldName = "date", e.applyTheme(), e; } return n(e, t), e.prototype.fillRule = function (t) { var e = t.value, i = t.component, n = i._gridInterval, r = rr(n.timeUnit, n.count); Math.round((e - i.min) / r) / 2 == Math.round(Math.round((e - i.min) / r) / 2) ? t.axisFill.__disabled = !0 : t.axisFill.__disabled = !1; }, e.prototype.resetFlags = function () { var t = this; this.groupData && (this._dataGrouped = !1, this.series.each(function (e) { e.baseAxis == t && e.setDataSet(""); })); }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), this.dateFormats.hasKey("millisecond") || this.dateFormats.setKey("millisecond", this.language.translate("_date_millisecond")), this.dateFormats.hasKey("second") || this.dateFormats.setKey("second", this.language.translate("_date_second")), this.dateFormats.hasKey("minute") || this.dateFormats.setKey("minute", this.language.translate("_date_minute")), this.dateFormats.hasKey("hour") || this.dateFormats.setKey("hour", this.language.translate("_date_hour")), this.dateFormats.hasKey("day") || this.dateFormats.setKey("day", this.language.translate("_date_day")), this.dateFormats.hasKey("week") || this.dateFormats.setKey("week", this.language.translate("_date_day")), this.dateFormats.hasKey("month") || this.dateFormats.setKey("month", this.language.translate("_date_month")), this.dateFormats.hasKey("year") || this.dateFormats.setKey("year", this.language.translate("_date_year")), this.periodChangeDateFormats.hasKey("millisecond") || this.periodChangeDateFormats.setKey("millisecond", this.language.translate("_date_millisecond")), this.periodChangeDateFormats.hasKey("second") || this.periodChangeDateFormats.setKey("second", this.language.translate("_date_second")), this.periodChangeDateFormats.hasKey("minute") || this.periodChangeDateFormats.setKey("minute", this.language.translate("_date_minute")), this.periodChangeDateFormats.hasKey("hour") || this.periodChangeDateFormats.setKey("hour", this.language.translate("_date_hour")), this.periodChangeDateFormats.hasKey("day") || this.periodChangeDateFormats.setKey("day", this.language.translate("_date_day")), this.periodChangeDateFormats.hasKey("week") || this.periodChangeDateFormats.setKey("week", this.language.translate("_date_day")), this.periodChangeDateFormats.hasKey("month") || this.periodChangeDateFormats.setKey("month", this.language.translate("_date_month") + " " + this.language.translate("_date_year")); }, e.prototype.createDataItem = function () { return new nh(); }, e.prototype.createAxisBreak = function () { return new ih(); }, e.prototype.validateDataItems = function () { var e = this.start, i = this.end, n = this.baseDuration, r = (this.max - this.min) / n; this._firstWeekDay = this.getFirstWeekDay(), this.getDFFormatter(), t.prototype.validateDataItems.call(this); var s = rr(this.mainBaseInterval.timeUnit, this.mainBaseInterval.count); this.maxZoomFactor = (this.max - this.min) / s, this._deltaMinMax = this.baseDuration / 2, e += (i - e) * (1 - r / ((this.max - this.min) / n)), this.zoom({ start: e, end: i }, !1, !0); }, e.prototype.handleSelectionExtremesChange = function () {}, e.prototype.calculateZoom = function () { var e = this; t.prototype.calculateZoom.call(this); var i = this.adjustDifference(this._minZoomed, this._maxZoomed); if (this.groupData && S(i)) { var n = this.mainBaseInterval, r = this.chooseInterval(0, i, this.groupCount, this.groupIntervals); (r.timeUnit == n.timeUnit && r.count < n.count || rr(r.timeUnit, 1) < rr(n.timeUnit, 1)) && (r = _ls({}, n)), this._groupInterval = r, this.series.each(function (t) { t.baseAxis == e && t.setDataSet(r.timeUnit + r.count); }); } var s = this.chooseInterval(0, i, this._gridCount); rr(s.timeUnit, s.count) < this.baseDuration && (s = _ls({}, this.baseInterval)), this._gridInterval = s, this._nextGridUnit = nr(s.timeUnit), this._intervalDuration = rr(s.timeUnit, s.count), this._gridDate = ur(new Date(this.minZoomed - rr(s.timeUnit, s.count)), s.timeUnit, s.count, this._firstWeekDay, this._df.utc, new Date(this.min)), pe(this.series.iterator(), function (t) { if (t.baseAxis == e) { var i = t.getAxisField(e), n = ur(new Date(e._minZoomed), e.baseInterval.timeUnit, e.baseInterval.count).getTime(), r = n.toString(), s = t.dataItemsByAxis.getKey(e.uid).getKey(r + t.currentDataSetId), o = 0; 0 != e.start && (o = s ? (s = e.findFirst(s, n, i)).index : t.dataItems.findClosestIndex(e._minZoomed, function (t) { return t[i]; }, "left")); var a = e.baseInterval, l = hr(ur(new Date(e._maxZoomed), a.timeUnit, a.count, e._firstWeekDay, e._df.utc), a.timeUnit, a.count, e._df.utc).getTime(), h = l.toString(), u = t.dataItemsByAxis.getKey(e.uid).getKey(h + t.currentDataSetId), p = t.dataItems.length; 1 != e.end && (u ? p = u.index : (l -= 1, (p = t.dataItems.findClosestIndex(l, function (t) { return t[i]; }, "right")) > 0 && p++)), t.startIndex = o, t.endIndex = p, t.dataRangeInvalid && t.validateDataRange(); } }); }, e.prototype.findFirst = function (t, e, i) { var n = t.index; if (n > 0) { var r = t.component.dataItems.getIndex(n - 1), s = r[i]; return !s || s.getTime() < e ? t : this.findFirst(r, e, i); } return t; }, e.prototype.validateData = function () { t.prototype.validateData.call(this), A(this.baseInterval.count) || (this.baseInterval.count = 1); }, Object.defineProperty(e.prototype, "minDifference", { get: function get() { var t = this, e = Number.MAX_VALUE; return this.series.each(function (i) { e > t._minDifference[i.uid] && (e = t._minDifference[i.uid]); }), e != Number.MAX_VALUE && 0 != e || (e = rr("day")), e; }, enumerable: !0, configurable: !0 }), e.prototype.seriesDataChangeUpdate = function (t) { this._minDifference[t.uid] = Number.MAX_VALUE; }, e.prototype.postProcessSeriesDataItems = function () { var t = this; this.series.each(function (e) { JSON.stringify(e._baseInterval[t.uid]) != JSON.stringify(t.mainBaseInterval) && (e.mainDataSet.each(function (e) { t.postProcessSeriesDataItem(e); }), e._baseInterval[t.uid] = t.mainBaseInterval); }), this.addEmptyUnitsBreaks(), this.groupSeriesData(); }, e.prototype.groupSeriesData = function () { var t = this; if (this.groupData && !this._dataGrouped) { this._dataGrouped = !0; var e = [], i = this.mainBaseInterval, n = rr(i.timeUnit, i.count); this.groupIntervals.each(function (i) { var r = rr(i.timeUnit, i.count); r > n && r < t.max - t.min && e.push(i); }), this.series.each(function (t) { t._dataSets = void 0; }), mt(e, function (e) { var i = "date" + t.axisLetter; t.series.each(function (n) { if (n.baseAxis == t) { var r = e.timeUnit + e.count, s = new Ys(n.mainDataSet.template.clone()), o = n.dataSets.getKey(r); o && o.clear(), n.dataSets.setKey(r, s); var a, l = n.mainDataSet, h = Number.NEGATIVE_INFINITY, u = 0, p = []; Qt(n.dataFields, function (t, e) { var n = t; n != i && -1 == n.indexOf("Show") && p.push(n); }), l.each(function (r) { var o = r.getDate(i); if (o) { var l = o.getTime(), c = ur(new Date(l), e.timeUnit, e.count, t._df.firstDayOfWeek, t._df.utc), d = c.getTime(); h < c.getTime() ? ((a = s.create()).component = n, a.setDate(i, c), a._index = u, u++, mt(p, function (t) { var e = r.values[t].value; if (A(e)) { var i = a.values[t]; i.value = e, i.workingValue = e, i.open = e, i.close = e, i.low = e, i.high = e, i.sum = e, i.average = e, i.count = 1; } }), t.postProcessSeriesDataItem(a, e), Qt(n.propertyFields, function (t, e) { var i = t, n = r.properties[t]; S(n) && (a.hasProperties = !0, a.setProperty(i, n)); }), a.groupDataItems = [r], h = d) : a && (mt(p, function (t) { var e = n.groupFields[t], i = r.values[t].value; if (A(i)) { var s = a.values[t]; A(s.open) || (s.open = i), s.close = i, (s.low > i || !A(s.low)) && (s.low = i), (s.high < i || !A(s.high)) && (s.high = i), A(s.sum) ? s.sum += i : s.sum = i, s.count++, s.average = s.sum / s.count, s.value = s[e], s.workingValue = s.value; } }), ni(r.properties, a.properties), Qt(n.propertyFields, function (t, e) { var i = t, n = r.properties[t]; S(n) && (a.hasProperties = !0, a.setProperty(i, n)); }), a.groupDataItems.push(r)); } }); } }); }); } }, e.prototype.getDFFormatter = function () { this._df = this.dateFormatter; }, e.prototype.postProcessSeriesDataItem = function (t, e) { var i = this, n = ""; e ? n = e.timeUnit + e.count : e = this.mainBaseInterval; var r = t.component.dataItemsByAxis.getKey(this.uid); Qt(t.dates, function (s) { var o = t.getDate(s).getTime(), a = ur(new Date(o), e.timeUnit, e.count, i._firstWeekDay, i._df.utc).getTime(), l = hr(new Date(a), e.timeUnit, e.count, i._df.utc); t.setCalculatedValue(s, a, "open"), t.setCalculatedValue(s, l.getTime(), "close"), r.setKey(a + n, t); }); }, e.prototype.addEmptyUnitsBreaks = function () { var t = this; if (this.skipEmptyPeriods && A(this.min) && A(this.max)) { var e = this.baseInterval.timeUnit, i = this.baseInterval.count; this._axisBreaks && this._axisBreaks.clear(); for (var n = ur(new Date(this.min), e, i, this._firstWeekDay, this._df.utc), r = void 0, s = this; n.getTime() < this.max - this.baseDuration;) !function () { hr(n, e, i, s._df.utc); var o = n.getTime(), a = o.toString(); _e(s.series.iterator(), function (e) { return !!e.dataItemsByAxis.getKey(t.uid).getKey(a + e.currentDataSetId); }) ? r && (r.endDate = new Date(o - 1), r = void 0) : r || ((r = s.axisBreaks.create()).startDate = new Date(o)); }(); } }, e.prototype.fixAxisBreaks = function () { var e = this; t.prototype.fixAxisBreaks.call(this); var i = this._axisBreaks; i && i.length > 0 && i.each(function (t) { var i = Math.ceil(e._gridCount * (Math.min(e.end, t.endPosition) - Math.max(e.start, t.startPosition)) / (e.end - e.start)); t.gridInterval = e.chooseInterval(0, t.adjustedEndValue - t.adjustedStartValue, i); var n = ur(new Date(t.adjustedStartValue), t.gridInterval.timeUnit, t.gridInterval.count, e._firstWeekDay, e._df.utc); n.getTime() > t.startDate.getTime() && hr(n, t.gridInterval.timeUnit, t.gridInterval.count, e._df.utc), t.gridDate = n; }); }, e.prototype.getFirstWeekDay = function () { return this._df ? this._df.firstDayOfWeek : 1; }, e.prototype.getGridDate = function (t, e) { var i = this._gridInterval.timeUnit, n = this._gridInterval.count; ur(t, i, 1, this._firstWeekDay, this._df.utc); var r = t.getTime(), s = ar(t), o = hr(s, i, e, this._df.utc).getTime(), a = this.isInBreak(o); a && a.endDate && (ur(s = new Date(a.endDate.getTime()), i, n, this._firstWeekDay, this._df.utc), s.getTime() < a.endDate.getTime() && hr(s, i, n, this._df.utc), o = s.getTime()); var l = this.adjustDifference(r, o); return Math.round(l / rr(i)) < n ? this.getGridDate(t, e + n) : s; }, e.prototype.getBreaklessDate = function (t, e, i) { var n = new Date(t.endValue); ur(n, e, i, this._firstWeekDay, this._df.utc), hr(n, e, i, this._df.utc); var r = n.getTime(); return (t = this.isInBreak(r)) ? this.getBreaklessDate(t, e, i) : n; }, e.prototype.validateAxisElements = function () { var t = this; if (A(this.max) && A(this.min)) { this.calculateZoom(); var e = this._gridDate.getTime(), i = this._gridInterval.timeUnit, n = this._gridInterval.count, r = ar(this._gridDate), s = this._dataItemsIterator; this.resetIterators(); for (var o = this; e <= this._maxZoomed;) !function () { var t = o.getGridDate(ar(r), n); e = t.getTime(); var a = ar(t); a = hr(a, i, n, o._df.utc); var l = o.dateFormats.getKey(i); o.markUnitChange && r && lr(t, r, o._nextGridUnit, o._df.utc) && "year" !== i && (l = o.periodChangeDateFormats.getKey(i)); var h = o._df.format(t, l), u = s.find(function (t) { return t.text === h; }); u.__disabled && (u.__disabled = !1), o.appendDataItem(u), u.axisBreak = void 0, u.date = t, u.endDate = a, u.text = h, o.validateDataElement(u), r = t; }(); var a = this.renderer; this._axisBreaks && pe(this._axisBreaks.iterator(), function (e) { if (e.breakSize > 0) { var i = e.gridInterval.timeUnit, n = e.gridInterval.count; if (K(e.startPoint, e.endPoint) > 4 * a.minGridDistance) for (var r, o = e.gridDate.getTime(), l = 0; o <= e.adjustedMax;) !function () { var a = ar(e.gridDate); if (o = hr(a, i, n * l, t._df.utc).getTime(), l++, o > e.adjustedStartValue && o < e.adjustedEndValue) { var h = ar(a); h = hr(h, i, n, t._df.utc); var u = t.dateFormats.getKey(i); t.markUnitChange && r && lr(a, r, t._nextGridUnit, t._df.utc) && "year" !== i && (u = t.periodChangeDateFormats.getKey(i)); var p = t._df.format(a, u), c = s.find(function (t) { return t.text === p; }); c.__disabled && (c.__disabled = !1), t.appendDataItem(c), c.axisBreak = e, e.dataItems.moveValue(c), c.date = a, c.endDate = h, c.text = p, r = a, t.validateDataElement(c); } }(); } }); } }, e.prototype.validateDataElement = function (t) { if (A(this.max) && A(this.min)) { var e = this.renderer, i = t.value, n = t.endValue; A(n) || (n = i); var r = this.valueToPosition(i), s = this.valueToPosition(n), o = s; !t.isRange && this._gridInterval.count > this.baseInterval.count && (s = r + (s - r) / (this._gridInterval.count / this.baseInterval.count)), t.position = r; var a = t.tick; a && !a.disabled && e.updateTickElement(a, r, s); var l = t.grid; l && !l.disabled && e.updateGridElement(l, r, s); var h = t.axisFill; h && !h.disabled && (e.updateFillElement(h, r, o), t.isRange || this.fillRule(t)); var u = t.mask; u && e.updateFillElement(u, r, s), t.bullet && e.updateBullet(t.bullet, r, s); var p = t.label; if (p && !p.disabled) { var c = p.location; 0 == c && (c = 1 != this._gridInterval.count || "week" == this._gridInterval.timeUnit || t.isRange ? 0 : .5), e.updateLabelElement(p, r, s, c); } } }, Object.defineProperty(e.prototype, "baseDuration", { get: function get() { return rr(this.baseInterval.timeUnit, this.baseInterval.count); }, enumerable: !0, configurable: !0 }), e.prototype.adjustMinMax = function (t, e) { return { min: t, max: e, step: this.baseDuration }; }, e.prototype.fixMin = function (t) { var e = this.baseInterval, i = ur(new Date(t), e.timeUnit, e.count, this._firstWeekDay, this._df.utc).getTime(); return i + (hr(new Date(i), e.timeUnit, e.count, this._df.utc).getTime() - i) * this.startLocation; }, e.prototype.fixMax = function (t) { var e = this.baseInterval, i = ur(new Date(t), e.timeUnit, e.count, this._firstWeekDay, this._df.utc).getTime(); return i + (hr(new Date(i), e.timeUnit, e.count, this._df.utc).getTime() - i) * this.endLocation; }, e.prototype.chooseInterval = function (t, e, i, n) { n || (n = this.gridIntervals); var r = n.getIndex(t), s = rr(r.timeUnit, r.count), o = n.length - 1; if (t >= o) return _ls({}, n.getIndex(o)); var a = Math.ceil(e / s); return e < s && t > 0 ? _ls({}, n.getIndex(t - 1)) : a <= i ? _ls({}, n.getIndex(t)) : t + 1 < n.length ? this.chooseInterval(t + 1, e, i, n) : _ls({}, n.getIndex(t)); }, e.prototype.formatLabel = function (t) { return this._df.format(t); }, e.prototype.dateToPosition = function (t) { return this.valueToPosition(t.getTime()); }, e.prototype.anyToPosition = function (t) { return t instanceof Date ? this.dateToPosition(t) : this.valueToPosition(t); }, e.prototype.dateToPoint = function (t) { var e = this.dateToPosition(t), i = this.renderer.positionToPoint(e), n = this.renderer.positionToAngle(e); return { x: i.x, y: i.y, angle: n }; }, e.prototype.anyToPoint = function (t) { return t instanceof Date ? this.dateToPoint(t) : this.valueToPoint(t); }, e.prototype.positionToDate = function (t) { return new Date(this.positionToValue(t)); }, e.prototype.getPositionX = function (t, e, i, n, r) { var s = this.getTimeByLocation(t, e, i); A(s) || (s = this.baseValue); var o = this.valueToPosition(s); return r && (o = R(o, r.start, r.end)), o; }, e.prototype.getPositionY = function (t, e, i, n, r) { var s = this.getTimeByLocation(t, e, i), o = t.getValue("valueX", "stack"); A(s) || (s = this.baseValue); var a = this.valueToPosition(s + o); return r && (a = R(a, r.start, r.end)), a; }, e.prototype.getAngle = function (t, e, i, n, r) { var s = this.getTimeByLocation(t, e, i), o = t.getValue(n, "stack"); A(s) || (s = this.baseValue); var a = this.valueToPosition(s + o); return r && (a = R(a, r.start, r.end)), this.positionToAngle(a); }, e.prototype.getTimeByLocation = function (t, e, i) { if (S(e)) { A(i) || A(i = t.workingLocations[e]) || (i = 0); var n = t.values[e].open, r = t.values[e].close, s = t.values[e].workingValue, o = t.values[e].value - s; return r -= o, A(n -= o) && A(r) ? n + (r - n) * i : void 0; } }, e.prototype.processSeriesDataItem = function (t, e) { var i, n = t.component, r = t["date" + e]; if (r) { i = r.getTime(); var s, o = t["openDate" + e], a = this._prevSeriesTime; if (o && (s = o.getTime()), A(s)) { var l = Math.abs(i - s); this._minDifference[n.uid] > l && (this._minDifference[n.uid] = l); } var h = i - a; h > 0 && this._minDifference[n.uid] > h && (this._minDifference[n.uid] = h), this._prevSeriesTime = i, n._baseInterval[this.uid] ? this.postProcessSeriesDataItem(t) : this._baseInterval && (n._baseInterval[this.uid] = this._baseInterval, this.postProcessSeriesDataItem(t)); } }, e.prototype.updateAxisBySeries = function () { t.prototype.updateAxisBySeries.call(this); var e = this.chooseInterval(0, this.minDifference, 1); this.minDifference >= rr("day", 27) && "week" == e.timeUnit && (e.timeUnit = "month", e.count = 1), "month" == e.timeUnit && (this.minDifference >= rr("day", 58) && 1 == e.count && (e.count = 2), this.minDifference >= rr("day", 87) && 2 == e.count && (e.count = 3), this.minDifference >= rr("day", 174) && 5 == e.count && (e.count = 6)), this.minDifference >= rr("hour", 23) && "hour" == e.timeUnit && (e.timeUnit = "day", e.count = 1), this.minDifference >= rr("week", 1) - rr("hour", 1) && "day" == e.timeUnit && (e.timeUnit = "week", e.count = 1), this.minDifference >= rr("year", 1) - rr("day", 1.01) && "month" == e.timeUnit && (e.timeUnit = "year", e.count = 1), this._baseIntervalReal = e, this._mainBaseInterval = e; }, Object.defineProperty(e.prototype, "baseInterval", { get: function get() { return this._groupInterval ? this._groupInterval : this._baseInterval ? this._baseInterval : this._baseIntervalReal; }, set: function set(t) { JSON.stringify(this._baseInterval) != JSON.stringify(t) && (this._baseInterval = t, this._mainBaseInterval = t, A(t.count) || (t.count = 1), this.invalidate(), this.postProcessSeriesDataItems()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "mainBaseInterval", { get: function get() { return this._baseInterval ? this._baseInterval : this._mainBaseInterval ? this._mainBaseInterval : this._baseIntervalReal; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "skipEmptyPeriods", { get: function get() { return this.getPropertyValue("skipEmptyPeriods"); }, set: function set(t) { if (this.setPropertyValue("skipEmptyPeriods", t) && this.invalidateData(), t) { var e = this.axisBreaks.template; e.startLine.disabled = !0, e.endLine.disabled = !0, e.fillShape.disabled = !0, e.breakSize = 0; } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipDateFormat", { get: function get() { return this.getPropertyValue("tooltipDateFormat"); }, set: function set(t) { this.setPropertyValue("tooltipDateFormat", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "markUnitChange", { get: function get() { return this.getPropertyValue("markUnitChange"); }, set: function set(t) { this.setPropertyValue("markUnitChange", t) && this.invalidateData(); }, enumerable: !0, configurable: !0 }), e.prototype.getTooltipText = function (t) { var e, i = this.positionToDate(t); if (i = ur(i, this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc, new Date(this.min)), S(this.tooltipDateFormat)) e = this._df.format(i, this.tooltipDateFormat);else { var n = this.dateFormats.getKey(this.baseInterval.timeUnit); e = n ? this._df.format(i, n) : this.getPositionLabel(t); } return this._adapterO ? this._adapterO.apply("getTooltipText", e) : e; }, e.prototype.roundPosition = function (t, e, i) { var n = this.baseInterval, r = n.timeUnit, s = n.count, o = this.positionToDate(t); if (ur(o, r, s, this._firstWeekDay, this._df.utc), e > 0 && hr(o, r, e * s, this._df.utc), i > 0 && i < 1 && o.setTime(o.getTime() + this.baseDuration * i), this.isInBreak(o.getTime())) for (; o.getTime() < this.max && (hr(o, r, s, this._df.utc), this.isInBreak(o.getTime()));); return this.dateToPosition(o); }, e.prototype.getCellStartPosition = function (t) { return this.roundPosition(t, 0); }, e.prototype.getCellEndPosition = function (t) { return this.roundPosition(t, 1); }, e.prototype.getSeriesDataItem = function (t, e, i) { var n, r = this.positionToValue(e), s = ur(new Date(r), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc), o = t.dataItemsByAxis.getKey(this.uid).getKey(s.getTime().toString()); return !o && i && (n = "Y" == this.axisLetter ? "dateY" : "dateX", o = t.dataItems.getIndex(t.dataItems.findClosestIndex(s.getTime(), function (t) { return t[n] ? t[n].getTime() : -1 / 0; }, "any"))), o; }, e.prototype.getPositionLabel = function (t) { var e = this.positionToDate(t); return this._df.format(e, this.getCurrentLabelFormat()); }, e.prototype.getCurrentLabelFormat = function () { return this.dateFormats.getKey(this._gridInterval ? this._gridInterval.timeUnit : "day"); }, e.prototype.initRenderer = function () { t.prototype.initRenderer.call(this); var e = this.renderer; e && (e.ticks.template.location = 0, e.grid.template.location = 0, e.labels.template.location = 0, e.baseGrid.disabled = !0); }, Object.defineProperty(e.prototype, "basePoint", { get: function get() { return { x: 0, y: 0 }; }, enumerable: !0, configurable: !0 }), e.prototype.handleExtremesChange = function () { if (t.prototype.handleExtremesChange.call(this), this.groupData) { var e = this.baseInterval.timeUnit + this.baseInterval.count; this.groupMin[e] = this.min, this.groupMax[e] = this.max; } }, e.prototype.zoomToDates = function (t, e, i, n, r) { t = this._df.parse(t), e = this._df.parse(e), this.zoomToValues(t.getTime(), e.getTime(), i, n, r); }, e.prototype.zoomToValues = function (t, e, i, n, r) { var s = this; if (this.groupData) { var o = this.adjustDifference(t, e), a = !1; e == this.max && (a = !0); var l = !1; if (t == this.min && (l = !0), S(o)) { var h = this.mainBaseInterval, u = this.chooseInterval(0, o, this.groupCount, this.groupIntervals); (u.timeUnit == h.timeUnit && u.count < h.count || rr(u.timeUnit, 1) < rr(h.timeUnit, 1)) && (u = _ls({}, h)); var p = u.timeUnit + u.count, c = this.groupMin[p], d = this.groupMax[p]; A(c) && A(d) || (c = Number.POSITIVE_INFINITY, d = Number.NEGATIVE_INFINITY, this.series.each(function (t) { var e = t.min(s), i = t.max(s); e < c && (c = e), i < d && (d = i); }), this.groupMin[p] = c, this.groupMax[p] = d), t = R(t, c, d), e = R(e, c, d), r && (a && (t = e - o, console.log("adjust"), t = R(t, c, d)), l && (e = R(e = t + o, c, d))), f = (t - c) / (d - c), g = (e - c) / (d - c), this.zoom({ start: f, end: g }, i, n); } } else { var f = (t - this.min) / (this.max - this.min), g = (e - this.min) / (this.max - this.min); this.zoom({ start: f, end: g }, i, n); } }, e.prototype.asIs = function (e) { return "baseInterval" == e || t.prototype.asIs.call(this, e); }, e.prototype.copyFrom = function (e) { var i = this; t.prototype.copyFrom.call(this, e), this.dateFormats = e.dateFormats, this.periodChangeDateFormats = e.periodChangeDateFormats, this.groupIntervals.clear(), e.groupIntervals.each(function (t) { i.groupIntervals.push(_ls({}, t)); }), this.gridIntervals.clear(), e.gridIntervals.each(function (t) { i.gridIntervals.push(_ls({}, t)); }), e._baseInterval && (this.baseInterval = e._baseInterval); }, e.prototype.showTooltipAtPosition = function (e, i) { var n = this; if (i || (e = this.toAxisPosition(e)), this.snapTooltip) { var r, s = this.positionToDate(e).getTime(); if (this.series.each(function (t) { if (t.baseAxis == n) { var i = n.getSeriesDataItem(t, e, !0); if (i) { var o = void 0; t.xAxis == n && (o = i.dateX), t.yAxis == n && (o = i.dateY), r ? Math.abs(r.getTime() - s) > Math.abs(o.getTime() - s) && (r = o) : r = o; } } }), r) { var o = r.getTime(); r = ur(new Date(o), this.baseInterval.timeUnit, this.baseInterval.count, this._firstWeekDay, this._df.utc), o = r.getTime(); var a = this.renderer.tooltipLocation; 0 == a && (a = 1e-4), r = new Date(r.getTime() + this.baseDuration * a), e = this.dateToPosition(r), this.series.each(function (t) { var e = t.dataItemsByAxis.getKey(n.uid).getKey(o + t.currentDataSetId), i = t.showTooltipAtDataItem(e); i ? n.chart._seriesPoints.push({ series: t, point: i }) : (t.tooltipText || t.tooltipHTML) && t.hideTooltip(); }); } } t.prototype.showTooltipAtPosition.call(this, e, !0); }, Object.defineProperty(e.prototype, "snapTooltip", { get: function get() { return this.getPropertyValue("snapTooltip"); }, set: function set(t) { this.setPropertyValue("snapTooltip", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "groupData", { get: function get() { return this.getPropertyValue("groupData"); }, set: function set(t) { this.setPropertyValue("groupData", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "groupCount", { get: function get() { return this.getPropertyValue("groupCount"); }, set: function set(t) { this.setPropertyValue("groupCount", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "gridInterval", { get: function get() { return this._gridInterval; }, enumerable: !0, configurable: !0 }), e.prototype.makeGap = function (t, e) { var i = t.component; return !!(t && e && !i.connect && A(i.autoGapCount) && i.baseAxis == this && t.dates["date" + this.axisLetter].getTime() - e.dates["date" + this.axisLetter].getTime() > i.autoGapCount * this.baseDuration); }, Object.defineProperty(e.prototype, "baseValue", { get: function get() { return this.min; }, enumerable: !0, configurable: !0 }), e; }(eh); Fs.registeredClasses.DateAxis = rh, Fs.registeredClasses.DateAxisDataItem = nh; var sh = function (t) { function e() { var e = t.call(this) || this; return e.className = "AxisRendererX", e.minGridDistance = 120, e.opposite = !1, e.rotation = 0, e.width = h(100), e.labels.template.horizontalCenter = "middle", e.applyTheme(), e; } return n(e, t), e.prototype.setAxis = function (e) { t.prototype.setAxis.call(this, e), e.layout = "vertical"; }, e.prototype.updateGridContainer = function () { var t = this.axis; if (t) { var e = this.gridContainer; e.x = t.pixelX, e.width = t.axisLength; } }, e.prototype.processRenderer = function () { t.prototype.processRenderer.call(this); var e = this.axis; if (e) { e.width instanceof hs || (e.width = h(100)), this.line; var i = e.title; i.rotation = 0, i.align = "center", this.opposite ? (this.line.toFront(), i.toBack()) : (i.toFront(), this.toBack(), this.line.toBack()); } }, e.prototype.updateTooltip = function () { if (this.axis) { var t = this.line.pixelX, e = this.line.pixelY, i = this.axisLength, n = 1e3; this.opposite ? this.inside || (e = -1e3, n = 1e3) : this.inside && (e = -1e3, n = 1e3), this.axis.updateTooltip("vertical", { x: t, y: e, width: i, height: n }); } }, e.prototype.updateLabelElement = function (t, e, i, n) { S(n) || (n = t.location), e += (i - e) * n; var r = this.positionToPoint(e); t.isMeasured = !t.inside; var s, o = 0, a = this.gridContainer.maxHeight; this.opposite ? (t.inside ? (s = "top", "bottom" == t.valign && (o = a, s = "bottom"), "middle" == t.valign && (o = a / 2, s = "middle")) : s = "bottom", r.y = o) : (t.inside ? (s = "bottom", "top" == t.valign && (o = -a, s = "top"), "middle" == t.valign && (o = -a / 2, s = "middle")) : s = "top", r.y += o), 0 == t.rotation && (t.verticalCenter = s), this.positionItem(t, r), this.toggleVisibility(t, e, this.minLabelPosition, this.maxLabelPosition); }, Object.defineProperty(e.prototype, "axisLength", { get: function get() { var t = this.axis; return t.measuredWidth - t.pixelPaddingRight - t.pixelPaddingLeft || 0; }, enumerable: !0, configurable: !0 }), e.prototype.positionToPoint = function (t, e) { return { x: this.positionToCoordinate(t), y: 0 }; }, e.prototype.pointToPosition = function (t) { return this.coordinateToPosition(t.x, t.y); }, e.prototype.getPositionRangePath = function (t, e) { var i = R(this.positionToCoordinate(t), 0, this.axisLength), n = R(this.positionToCoordinate(e), 0, this.axisLength), r = Math.abs(n - i), s = this.getHeight(); return kr({ x: Math.min(i, n), y: 0, width: r, height: s }, !0); }, e.prototype.updateBreakElement = function (e) { t.prototype.updateBreakElement.call(this, e); var i = e.startLine, n = e.endLine, r = e.fillShape, s = e.startPoint, o = e.endPoint, a = e.pixelMarginLeft, l = this.getHeight() - e.pixelMarginTop - e.pixelMarginBottom; s.x = R(s.x, -1, this.axisLength + 1), o.x = R(o.x, -1, this.axisLength + 1), s.x == o.x && (s.x < 0 || s.x > this.axisLength) ? e.fillShape.__disabled = !0 : e.fillShape.__disabled = !1, i.y = a, i.width = 0, i.height = l, n.y = a, n.width = 0, n.height = l, r.height = l, r.width = Math.abs(o.x - s.x), r.y = a, r.x = s.x; }, e.prototype.updateGridElement = function (t, e, i) { e += (i - e) * t.location; var n = this.positionToPoint(e); t.path = xr({ x: 0, y: 0 }) + _r({ x: 0, y: this.getHeight() }), this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateTickElement = function (t, e, i) { e += (i - e) * t.location; var n = this.positionToPoint(e), r = t.length; n.y = Xi({ x: 0, y: this.line.pixelY }, this.line.parent, this.gridContainer).y, this.opposite ? r *= t.inside ? 1 : -1 : r *= t.inside ? -1 : 1, t.path = xr({ x: 0, y: 0 }) + _r({ x: 0, y: r }), this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateAxisLine = function () { this.line.path = xr({ x: 0, y: 0 }) + _r({ x: this.axisLength, y: 0 }); }, e.prototype.updateBaseGridElement = function () { t.prototype.updateBaseGridElement.call(this); var e = this.axis, i = this.getHeight(), n = this.axisLength, r = this.baseGrid, s = e.basePoint.x; if (s < -.2 || s > n + .2) r.hide(0);else { var o = Xi({ x: 0, y: 0 }, this.gridContainer, r.parent).y; r.path = xr({ x: 0, y: 0 }) + _r({ x: 0, y: i }), r.moveTo({ x: s, y: o }), r.show(0); } }, e.prototype.createBreakSprites = function (t) { t.startLine = new ll(), t.endLine = new ll(); var e = new hl(); e.setWavedSides(!1, !0, !1, !0), t.fillShape = e; }, e.prototype.toAxisPosition = function (t) { var e = t, i = this.axis, n = i.parent; return i && n ? (e - i.pixelX / n.innerWidth) / (i.axisLength / n.innerWidth) : t; }, e.prototype.updateBullet = function (t, e, i) { var n = .5; t instanceof $l && (n = t.location), e += (i - e) * n; var r = this.positionToPoint(e); r.y = Xi({ x: 0, y: this.line.pixelY }, this.line.parent, this.gridContainer).y, this.positionItem(t, r), this.toggleVisibility(t, e, 0, 1); }, e; }(ql); Fs.registeredClasses.AxisRendererX = sh, Ta.push({ relevant: Aa.heightXS, state: function state(t, e) { if (t instanceof sh) { var i = t.states.create(e); return i.properties.inside = !0, i.properties.maxLabelPosition = .9, i.properties.minLabelPosition = .1, i; } return null; } }), Ta.push({ relevant: Aa.heightXXS, state: function state(t, e) { if (t instanceof sh) { var i = t.states.create(e); return i.properties.disabled = !0, i; } return null; } }); var oh = function (t) { function e() { var e = t.call(this) || this; return e.className = "CategoryAxisBreak", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "startPosition", { get: function get() { if (this.axis) return this.axis.indexToPosition(this.adjustedStartValue); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endPosition", { get: function get() { if (this.axis) return this.axis.indexToPosition(this.adjustedEndValue); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startCategory", { get: function get() { return this.getPropertyValue("startCategory"); }, set: function set(t) { this.setPropertyValue("startCategory", t) && this.axis && (this.axis.invalidateDataItems(), this.axis.invalidateSeries()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endCategory", { get: function get() { return this.getPropertyValue("endCategory"); }, set: function set(t) { this.setPropertyValue("endCategory", t) && this.axis && (this.axis.invalidateDataItems(), this.axis.invalidateSeries()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startValue", { get: function get() { var t = this.getPropertyValue("startCategory"); return t ? this.axis.categoryToIndex(t) : this.getPropertyValue("startValue"); }, set: function set(t) { this.setPropertyValue("startValue", t) && this.axis && (this.axis.invalidateDataItems(), this.axis.invalidateSeries()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endValue", { get: function get() { var t = this.getPropertyValue("endCategory"); return t ? this.axis.categoryToIndex(t) : this.getPropertyValue("endValue"); }, set: function set(t) { this.setPropertyValue("endValue", t) && this.axis && (this.axis.invalidateDataItems(), this.axis.invalidateSeries()); }, enumerable: !0, configurable: !0 }), e; }(Nl); Fs.registeredClasses.CategoryAxisBreak = oh; var ah = function (t) { function e() { var e = t.call(this) || this; return e.seriesDataItems = {}, e.className = "CategoryAxisDataItem", e.text = "{category}", e.locations.category = 0, e.locations.endCategory = 1, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "adapter", { get: function get() { return this._adapterO || (this._adapterO = new Ks(this)), this._adapterO; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "category", { get: function get() { return this._adapterO && this._adapterO.isEnabled("category") ? this._adapterO.apply("category", this.properties.category) : this.properties.category; }, set: function set(t) { this.setProperty("category", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endCategory", { get: function get() { return this.properties.endCategory; }, set: function set(t) { this.setProperty("endCategory", t); }, enumerable: !0, configurable: !0 }), e; }(Wl), lh = function (t) { function e() { var e = t.call(this) || this; return e.dataItemsByCategory = new Ds(), e.className = "CategoryAxis", e.axisFieldName = "category", e._lastDataItem = e.createDataItem(), e._lastDataItem.component = e, e._disposers.push(e._lastDataItem), e.applyTheme(), e; } return n(e, t), e.prototype.createDataItem = function () { return new ah(); }, e.prototype.createAxisBreak = function () { return new oh(); }, e.prototype.processSeriesDataItem = function (e, i) { t.prototype.processSeriesDataItem.call(this, e, i); var n = e["category" + this.axisLetter]; if (S(n)) { var r = this.dataItemsByCategory.getKey(n); if (r) { var s = e.component.uid, o = r.seriesDataItems[s]; o || (o = [], r.seriesDataItems[s] = o), o.push(e); } } else e.component.dataItems.remove(e); }, e.prototype.validateDataRange = function () { var i = this; t.prototype.validateDataRange.call(this), pe(this._series.iterator(), function (t) { if (t.xAxis instanceof e && t.yAxis instanceof e) t.invalidateDataRange();else { var n = i.positionToIndex(i.start), r = i.positionToIndex(i.end); r >= i.dataItems.length && r--; for (var s = t.uid, o = void 0, a = void 0, l = n; l <= r; l++) { var h = i.dataItems.getIndex(l); if (h) { var u = h.seriesDataItems[s]; if (u) for (var p = 0; p < u.length; p++) { var c = u[p]; if (c) { var d = c.index; (!A(o) || d < o) && (o = d), (!A(a) || d > a) && (a = d); } } } } A(o) ? t.startIndex = o : t.start = i.start, A(a) ? t.endIndex = a + 1 : t.end = i.end, i._axisBreaks && i._axisBreaks.length > 0 && t.invalidateDataRange(); } }); }, e.prototype.validate = function () { var e = this; t.prototype.validate.call(this); var i = this.dataItems.length, n = R(Math.floor(this.start * i - 1), 0, i), r = R(Math.ceil(this.end * i), 0, i); this.renderer.invalid && this.renderer.validate(); var s = this.renderer.axisLength / this.renderer.minGridDistance, o = Math.min(this.dataItems.length, Math.ceil((r - n) / s)); if (this._startIndex = Math.floor(n / o) * o, this._endIndex = Math.ceil(this.end * i), this.fixAxisBreaks(), this._startIndex == this._endIndex && this._endIndex++, this._frequency = o, !(this.axisLength <= 0)) { this.maxZoomFactor = this.dataItems.length, this.dataItems.length <= 0 && (this.maxZoomFactor = 1), this.resetIterators(), n = W(0, this._startIndex - this._frequency), r = X(this.dataItems.length, this._endIndex + this._frequency); for (var a = 0, l = 0; l < n; l++) (u = this.dataItems.getIndex(l)).__disabled = !0; l = r; for (var h = this.dataItems.length; l < h; l++) (u = this.dataItems.getIndex(l)).__disabled = !0; for (l = n; l < r; l++) if (l < this.dataItems.length) { var u = this.dataItems.getIndex(l); l / this._frequency == Math.round(l / this._frequency) ? (this.isInBreak(l) || (this.appendDataItem(u), this.validateDataElement(u, a)), a++) : u.__disabled = !0; } this.appendDataItem(this._lastDataItem), this.validateDataElement(this._lastDataItem, a + 1, this.dataItems.length), this._axisBreaks && this._axisBreaks.each(function (t) { var i = t.adjustedStartValue, n = t.adjustedEndValue; if (z({ start: i, end: n }, { start: e._startIndex, end: e._endIndex })) for (var r = R(Math.ceil(e._frequency / t.breakSize), 1, n - i), s = 0, o = i; o <= n; o += r) { var a = e.dataItems.getIndex(o); e.appendDataItem(a), e.validateDataElement(a, s), s++; } }), this.validateBreaks(), this.validateAxisRanges(), this.ghostLabel.invalidate(), this.renderer.invalidateLayout(); } }, e.prototype.validateDataElement = function (e, i, n) { t.prototype.validateDataElement.call(this, e); var r = this.renderer; A(n) || (n = this.categoryToIndex(e.category)); var s = this.categoryToIndex(e.endCategory); A(s) || (s = n); var o, a, l, h = this.indexToPosition(n, e.locations.category), u = this.indexToPosition(s, e.locations.endCategory); e.position = h, e.isRange && (o = s, a = this.indexToPosition(n, e.locations.category), l = this.indexToPosition(o, e.locations.endCategory)), e.point = r.positionToPoint(h); var p = e.tick; p && !p.disabled && r.updateTickElement(p, h, u); var c = e.grid; c && !c.disabled && r.updateGridElement(c, h, u); var d = e.label; d && !d.disabled && (e.isRange && null != d.text || (e.text = e.text), r.updateLabelElement(d, h, u), (r instanceof Jl && e.label.measuredWidth > this.ghostLabel.measuredWidth || r instanceof sh && e.label.measuredHeight > this.ghostLabel.measuredHeight) && (e.label.html ? this.ghostLabel.html = e.label.currentText : this.ghostLabel.text = e.label.currentText)); var f = e.axisFill; f && !f.disabled && (e.isRange || (o = n + this._frequency, a = this.indexToPosition(n, f.location), l = this.indexToPosition(o, f.location)), r.updateFillElement(f, a, l), e.isRange || this.fillRule(e, i)), e.bullet && r.updateBullet(e.bullet, h, u); var g = e.mask; g && r.updateFillElement(g, a, l); }, e.prototype.disposeData = function () { this.dataItemsByCategory.clear(), t.prototype.disposeData.call(this); }, e.prototype.processDataItem = function (e, i) { e && (t.prototype.processDataItem.call(this, e, i), S(e.category) && this.dataItemsByCategory.setKey(e.category, e)); }, e.prototype.getDataItem = function (t) { var e = t[this.dataFields.category]; if (S(e)) { return this.dataItemsByCategory.getKey(e) || this.dataItems.create(); } }, e.prototype.indexToPosition = function (t, e) { A(e) || (e = .5); var i = this.startIndex, n = this.endIndex, r = this.adjustDifference(i, n), s = this.startLocation; return r -= s, r -= 1 - this.endLocation, this._axisBreaks && ue(this._axisBreaks.iterator(), function (e) { var r = e.adjustedStartValue, s = e.adjustedEndValue; if (t < i) return !1; if (z({ start: r, end: s }, { start: i, end: n })) { r = Math.max(i, r), s = Math.min(n, s); var o = e.breakSize; t > s ? i += (s - r) * (1 - o) : t < r || (t = r + (t - r) * o); } return !0; }), j((t + e - s - i) / r, 5); }, e.prototype.categoryToPosition = function (t, e) { var i = this.categoryToIndex(t); return this.indexToPosition(i, e); }, e.prototype.categoryToPoint = function (t, e) { var i = this.categoryToPosition(t, e), n = this.renderer.positionToPoint(i), r = this.renderer.positionToAngle(i); return { x: n.x, y: n.y, angle: r }; }, e.prototype.anyToPoint = function (t, e) { return this.categoryToPoint(t, e); }, e.prototype.anyToPosition = function (t, e) { return this.categoryToPosition(t, e); }, e.prototype.categoryToIndex = function (t) { if (S(t)) { var e = this.dataItemsByCategory.getKey(t); if (e) return e.index; } }, e.prototype.zoomToCategories = function (t, e) { this.zoomToIndexes(this.categoryToIndex(t), this.categoryToIndex(e) + 1); }, e.prototype.getAnyRangePath = function (t, e, i, n) { var r = this.categoryToPosition(t, i), s = this.categoryToPosition(e, n); return this.getPositionRangePath(r, s); }, e.prototype.roundPosition = function (t, e) { var i = this.positionToIndex(t); return this.indexToPosition(i, e); }, e.prototype.getFirstSeriesDataItem = function (t, e) { for (var i = 0; i < t.dataItems.length; i++) { var n = t.dataItems.getIndex(i); if (t.xAxis == this && n.categoryX == e) return n; if (t.yAxis == this && n.categoryY == e) return n; } }, e.prototype.getLastSeriesDataItem = function (t, e) { for (var i = t.dataItems.length - 1; i >= 0; i--) { var n = t.dataItems.getIndex(i); if (t.xAxis == this && n.categoryX == e) return n; if (t.yAxis == this && n.categoryY == e) return n; } }, e.prototype.getSeriesDataItem = function (t, e, i) { var n = this; if (A(e)) { var r = this.positionToIndex(e); r >= this.dataItems.length && r--; var s = this.dataItems.getIndex(r); if (s) { var o, a = s.category, l = t.dataItems.getIndex(r); if (l) { if (t.xAxis == this && l.categoryX == a) return l; if (t.yAxis == this && l.categoryY == a) return l; } return t.dataItems.each(function (e) { t.xAxis == n && e.categoryX == a && (o || (o = e), Math.abs(r - o.index) > Math.abs(r - e.index) && (o = e)), t.yAxis == n && e.categoryY == a && (o || (o = e), Math.abs(r - o.index) > Math.abs(r - e.index) && (o = e)); }), o; } } }, e.prototype.getX = function (t, e, i, n, r) { var s = this.getPositionX(t, e, i, n, r); return p(s) ? this.basePoint.x : this.renderer.positionToPoint(s).x; }, e.prototype.getPositionX = function (t, e, i, n, r) { var s; return S(e) && (s = this.categoryToPosition(t.categories[e], i)), r && (s = R(s, r.start, r.end)), s; }, e.prototype.getY = function (t, e, i, n, r) { var s = this.getPositionY(t, e, i, n, r); return p(s) ? this.basePoint.y : this.renderer.positionToPoint(s).y; }, e.prototype.getPositionY = function (t, e, i, n, r) { var s; return S(e) && (s = this.categoryToPosition(t.categories[e], i)), r && (s = R(s, r.start, r.end)), s; }, e.prototype.getAngle = function (t, e, i, n, r) { var s = this.categoryToPosition(t.categories[e], i); return r && (s = R(s, r.start, r.end)), this.positionToAngle(s); }, e.prototype.getCellStartPosition = function (t) { return this.roundPosition(t, 0); }, e.prototype.getCellEndPosition = function (t) { return this.roundPosition(t, 1); }, e.prototype.getTooltipText = function (t) { var e = this.dataItems.getIndex(this.positionToIndex(t)); if (e) return this._adapterO ? this._adapterO.apply("getTooltipText", e.category) : e.category; }, e.prototype.positionToIndex = function (t) { (t = j(t, 10)) < 0 && (t = 0), t > 1 && (t = 1); var e = this.startIndex, i = this.endIndex, n = i - e - this.startLocation - (1 - this.endLocation); t += 1 / n * this.startLocation; var r = null; return this._axisBreaks && ue(this._axisBreaks.iterator(), function (s) { var o = s.startPosition, a = s.endPosition, l = s.adjustedStartValue, h = s.adjustedEndValue; l = W(l, e), h = X(h, i); var u = s.breakSize; if (n -= (h - l) * (1 - u), t > a) e += (h - l) * (1 - u);else if (!(t < o)) { var p = (t - o) / (a - o); return r = l + Math.round(p * (h - l)), !1; } return !0; }), A(r) || (r = Math.floor(t * n + e)), r >= this.dataItems.length && (r = this.dataItems.length - 1), r; }, e.prototype.positionToCategory = function (t) { return this.getPositionLabel(t); }, e.prototype.getPositionLabel = function (t) { var e = this.dataItems.getIndex(this.positionToIndex(t)); if (e) return e.category; }, Object.defineProperty(e.prototype, "basePoint", { get: function get() { return this.renderer.positionToPoint(1); }, enumerable: !0, configurable: !0 }), e.prototype.initRenderer = function () { t.prototype.initRenderer.call(this), this.renderer.baseGrid.disabled = !0; }, Object.defineProperty(e.prototype, "frequency", { get: function get() { return this._frequency; }, enumerable: !0, configurable: !0 }), e; }(Xl); Fs.registeredClasses.CategoryAxis = lh, Fs.registeredClasses.CategoryAxisDataItem = ah; var hh = function (t) { function e() { var e = t.call(this) || this; return e.className = "XYSeriesDataItem", e.values.valueX = { stack: 0 }, e.values.valueY = { stack: 0 }, e.values.openValueX = {}, e.values.openValueY = {}, e.values.dateX = {}, e.values.dateY = {}, e.values.openDateX = {}, e.values.openDateY = {}, e.setLocation("dateX", .5, 0), e.setLocation("dateY", .5, 0), e.setLocation("categoryX", .5, 0), e.setLocation("categoryY", .5, 0), e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "valueX", { get: function get() { return this.values.valueX.value; }, set: function set(t) { this.setValue("valueX", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "valueY", { get: function get() { return this.values.valueY.value; }, set: function set(t) { this.setValue("valueY", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dateX", { get: function get() { return this.getDate("dateX"); }, set: function set(t) { this.setDate("dateX", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dateY", { get: function get() { return this.getDate("dateY"); }, set: function set(t) { this.setDate("dateY", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "categoryX", { get: function get() { return this.categories.categoryX; }, set: function set(t) { this.setCategory("categoryX", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "categoryY", { get: function get() { return this.categories.categoryY; }, set: function set(t) { this.setCategory("categoryY", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "openValueX", { get: function get() { return this.values.openValueX.value; }, set: function set(t) { this.setValue("openValueX", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "openValueY", { get: function get() { return this.values.openValueY.value; }, set: function set(t) { this.setValue("openValueY", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "openDateX", { get: function get() { return this.getDate("openDateX"); }, set: function set(t) { this.setDate("openDateX", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "openDateY", { get: function get() { return this.getDate("openDateY"); }, set: function set(t) { this.setDate("openDateY", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "openCategoryX", { get: function get() { return this.categories.openCategoryX; }, set: function set(t) { this.setCategory("openCategoryX", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "openCategoryY", { get: function get() { return this.categories.openCategoryY; }, set: function set(t) { this.setCategory("openCategoryY", t); }, enumerable: !0, configurable: !0 }), e.prototype.getMin = function (t, e, i) { var n, r = this; return A(i) || (i = 0), mt(t, function (t) { var s; s = e ? r.getWorkingValue(t) : r.getValue(t), ((s += i) < n || !A(n)) && (n = s); }), n; }, e.prototype.getMax = function (t, e, i) { var n, r = this; return A(i) || (i = 0), mt(t, function (t) { var s; s = e ? r.getWorkingValue(t) : r.getValue(t), ((s += i) > n || !A(n)) && (n = s); }), n; }, e; }(Ll), uh = function (t) { function e() { var e = t.call(this) || this; return e.groupFields = {}, e._xAxis = new ys(), e._yAxis = new ys(), e._xValueFields = [], e._yValueFields = [], e._baseInterval = {}, e.className = "XYSeries", e.isMeasured = !1, e.groupFields.valueX = "close", e.groupFields.valueY = "close", e.groupFields.openValueX = "open", e.groupFields.openValueY = "open", e.cursorTooltipEnabled = !0, e.cursorHoverEnabled = !0, e.excludeFromTotal = !1, e.mainContainer.mask = new ba(), e.mainContainer.mask.setElement(e.paper.add("path")), e.stacked = !1, e.snapTooltip = !1, e.tooltip.pointerOrientation = "horizontal", e.tooltip.events.on("hidden", function () { e.returnBulletDefaultState(); }, void 0, !1), e._disposers.push(e._xAxis), e._disposers.push(e._yAxis), e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("X/Y Series")); }, e.prototype.createDataItem = function () { return new hh(); }, e.prototype.dataChangeUpdate = function () { this._tmin.clear(), this._tmax.clear(), this._smin.clear(), this._smax.clear(), this.xAxis && this.xAxis.seriesDataChangeUpdate(this), this.yAxis && this.yAxis.seriesDataChangeUpdate(this); }, e.prototype.validateData = function () { if (this.defineFields(), this.data.length > 0 && this.dataChangeUpdate(), t.prototype.validateData.call(this), this.updateItemReaderText(), !S(this.dataFields[this._xField]) || !S(this.dataFields[this._yField])) throw Error('Data fields for series "' + (this.name ? this.name : this.uid) + '" are not properly defined.'); }, e.prototype.processDataItem = function (e, i) { try { t.prototype.processDataItem.call(this, e, i), this.xAxis.processSeriesDataItem(e, "X"), this.yAxis.processSeriesDataItem(e, "Y"), this.setInitialWorkingValues(e); } catch (t) { this._chart.raiseCriticalError(t); } }, e.prototype.updateDataItem = function (e) { t.prototype.updateDataItem.call(this, e), this.xAxis.processSeriesDataItem(e, "X"), this.yAxis.processSeriesDataItem(e, "Y"); }, e.prototype.setInitialWorkingValues = function (t) {}, e.prototype.disposeData = function () { if (t.prototype.disposeData.call(this), this.xAxis) { var e = this.dataItemsByAxis.getKey(this.xAxis.uid); e && e.clear(), this.xAxis instanceof lh && this.clearCatAxis(this.xAxis); } if (this.yAxis) { var i = this.dataItemsByAxis.getKey(this.yAxis.uid); i && i.clear(), this.yAxis instanceof lh && this.clearCatAxis(this.yAxis); } }, e.prototype.clearCatAxis = function (t) { var e = this.uid; t.dataItems.each(function (t) { t.seriesDataItems[e] && (t.seriesDataItems[e] = []); }); }, e.prototype.defineFields = function () { var t = this.xAxis, e = this.yAxis, i = t.axisFieldName, n = i + "X", r = "open" + fi(i) + "X", s = e.axisFieldName, o = s + "Y", a = "open" + fi(s) + "Y"; this._xField = n, this._yField = o, this.dataFields[r] && (this._xOpenField = r), this.dataFields[a] && (this._yOpenField = a), this.dataFields[a] || this.baseAxis != this.yAxis || (this._yOpenField = o), this.dataFields[r] || this.baseAxis != this.xAxis || (this._xOpenField = n), this.stacked && this.baseAxis == this.xAxis && (this._xOpenField = n), this.stacked && this.baseAxis == this.yAxis && (this._yOpenField = o), this.xAxis instanceof lh && this.yAxis instanceof lh && (this._yOpenField || (this._yOpenField = o)), this._xValueFields = [], this._yValueFields = [], this.addValueField(this.xAxis, this._xValueFields, this._xField), this.addValueField(this.xAxis, this._xValueFields, this._xOpenField), this.addValueField(this.yAxis, this._yValueFields, this._yField), this.addValueField(this.yAxis, this._yValueFields, this._yOpenField); }, e.prototype.addValueField = function (t, e, i) { t instanceof eh && S(this.dataFields[i]) && -1 == e.indexOf(i) && e.push(i); }, e.prototype.setCategoryAxisField = function (t, e) { S(this.dataFields[t]) || (this.dataFields[t] = e.dataFields.category); }, e.prototype.setDateAxisField = function (t, e) { S(this.dataFields[t]) || (this.dataFields[t] = e.dataFields.date); }, e.prototype.afterDraw = function () { t.prototype.afterDraw.call(this), this.createMask(); }, e.prototype.createMask = function () { if (this.mainContainer.mask) { var t = this.getMaskPath(); pe(this.axisRanges.iterator(), function (e) { e.axisFill.fillPath && (e.axisFill.validate(), t += e.axisFill.fillPath); }), this.mainContainer.mask.path = t; } }, e.prototype.getMaskPath = function () { return kr({ x: 0, y: 0, width: this.xAxis.axisLength, height: this.yAxis.axisLength }); }, e.prototype.getAxisField = function (t) { return t == this.xAxis ? this.xField : t == this.yAxis ? this.yField : void 0; }, e.prototype.validateDataItems = function () { this.xAxis.updateAxisBySeries(), this.yAxis.updateAxisBySeries(), t.prototype.validateDataItems.call(this), this.xAxis.postProcessSeriesDataItems(), this.yAxis.postProcessSeriesDataItems(); }, e.prototype.validateDataRange = function () { this.xAxis.dataRangeInvalid && this.xAxis.validateDataRange(), this.yAxis.dataRangeInvalid && this.yAxis.validateDataRange(), t.prototype.validateDataRange.call(this); }, e.prototype.validate = function () { this.xAxis.invalid && this.xAxis.validate(), this.yAxis.invalid && this.yAxis.validate(), this.y = this.yAxis.pixelY, this.x = this.xAxis.pixelX, this._showBullets = !0; var e = this.minBulletDistance; A(e) && this.baseAxis.axisLength / (this.endIndex - this.startIndex) < e && (this._showBullets = !1), t.prototype.validate.call(this); }, Object.defineProperty(e.prototype, "xAxis", { get: function get() { if (this.chart) { if (!this._xAxis.get()) { var t = this.chart.xAxes.getIndex(0); if (!t) throw Error("There are no X axes on chart."); this.xAxis = t; } return this._xAxis.get(); } }, set: function set(t) { this.setXAxis(t); }, enumerable: !0, configurable: !0 }), e.prototype.setXAxis = function (t) { var e = this._xAxis.get(); e != t && (e && (this.dataItemsByAxis.removeKey(e.uid), this._xAxis.dispose(), e.series.removeValue(this)), this._xAxis.set(t, t.registerSeries(this)), this.dataItemsByAxis.setKey(t.uid, new Ds()), this.invalidateData(), this.events.on("beforedatavalidated", function () { t.resetFlags(); }, this, !1)); }, Object.defineProperty(e.prototype, "yAxis", { get: function get() { if (this.chart) { if (!this._yAxis.get()) { var t = this.chart.yAxes.getIndex(0); if (!t) throw Error("There are no Y axes on chart."); this.yAxis = t; } return this._yAxis.get(); } }, set: function set(t) { this.setYAxis(t); }, enumerable: !0, configurable: !0 }), e.prototype.setYAxis = function (t) { var e = this._yAxis.get(); e != t && (e && (this.dataItemsByAxis.removeKey(e.uid), this._yAxis.dispose(), e.series.removeValue(this)), this._yAxis.set(t, t.registerSeries(this)), this.events.on("beforedatavalidated", function () { t.resetFlags(); }, this, !1), this.dataItemsByAxis.setKey(t.uid, new Ds()), this.invalidateData()); }, Object.defineProperty(e.prototype, "baseAxis", { get: function get() { return this._baseAxis || (this.yAxis instanceof rh && (this._baseAxis = this.yAxis), this.xAxis instanceof rh && (this._baseAxis = this.xAxis), this.yAxis instanceof lh && (this._baseAxis = this.yAxis), this.xAxis instanceof lh && (this._baseAxis = this.xAxis), this._baseAxis || (this._baseAxis = this.xAxis)), this._baseAxis; }, set: function set(t) { this._baseAxis != t && (this._baseAxis = t, this.invalidate()); }, enumerable: !0, configurable: !0 }), e.prototype.processValues = function (e) { t.prototype.processValues.call(this, e); var i = this.dataItems, n = 1 / 0, r = -1 / 0, s = 1 / 0, o = -1 / 0, a = this.startIndex, l = this.endIndex, h = a, u = l; e || (a = 0, l = this.dataItems.length); for (var p = a; p < l; p++) { var c = i.getIndex(p); this.getStackValue(c, e); var d = c.getValue("valueX", "stack"), f = c.getValue("valueY", "stack"); n = X(c.getMin(this._xValueFields, e, d), n), s = X(c.getMin(this._yValueFields, e, f), s), r = W(c.getMax(this._xValueFields, e, d), r), o = W(c.getMax(this._yValueFields, e, f), o), this.stacked && (this.baseAxis == this.xAxis && (f < s && (s = f), f > o && (o = f)), this.baseAxis == this.yAxis && (d < n && (n = d), d > r && (r = d))); } this.xAxis.processSeriesDataItems(), this.yAxis.processSeriesDataItems(); var g = this.xAxis.uid, y = this.yAxis.uid; if (!e && (this._tmin.getKey(g) != n || this._tmax.getKey(g) != r || this._tmin.getKey(y) != s || this._tmax.getKey(y) != o)) { this._tmin.setKey(g, n), this._tmax.setKey(g, r), this._tmin.setKey(y, s), this._tmax.setKey(y, o); var m = this.stackedSeries; m && (m.isDisposed() ? this.stackedSeries = void 0 : m.processValues(!1)), this.dispatchImmediately("extremeschanged"); } if (a != h || l != u) for (n = 1 / 0, r = -1 / 0, s = 1 / 0, o = -1 / 0, p = h; p < u; p++) c = i.getIndex(p), this.getStackValue(c, e), d = c.getValue("valueX", "stack"), f = c.getValue("valueY", "stack"), n = X(c.getMin(this._xValueFields, e, d), n), s = X(c.getMin(this._yValueFields, e, f), s), r = W(c.getMax(this._xValueFields, e, d), r), o = W(c.getMax(this._yValueFields, e, f), o), this.stacked && (this.baseAxis == this.xAxis && (f < s && (s = f), f > o && (o = f)), this.baseAxis == this.yAxis && (d < n && (n = d), d > r && (r = d))); if ((this._smin.getKey(g) != n || this._smax.getKey(g) != r || this._smin.getKey(y) != s || this._smax.getKey(y) != o) && (this._smin.setKey(g, n), this._smax.setKey(g, r), this._smin.setKey(y, s), this._smax.setKey(y, o), this.appeared || 0 != this.start || 1 != this.end || this.dataItems != this.mainDataSet)) { var v = !1; this.yAxis instanceof eh && !(this.yAxis instanceof rh) && (s < this._tmin.getKey(y) && (this._tmin.setKey(y, s), v = !0), o > this._tmin.getKey(y) && (this._tmax.setKey(y, o), v = !0)), this.xAxis instanceof eh && !(this.xAxis instanceof rh) && (n < this._tmin.getKey(g) && (this._tmin.setKey(g, n), v = !0), r > this._tmax.getKey(g) && (this._tmax.setKey(g, r), v = !0)), this.dispatchImmediately("selectionextremeschanged"), v && this.dispatchImmediately("extremeschanged"); } !e && this.stacked && this.processValues(!0); }, e.prototype.hideTooltip = function () { t.prototype.hideTooltip.call(this), this.returnBulletDefaultState(), this._prevTooltipDataItem = void 0; }, e.prototype.showTooltipAtPosition = function (t, e) { var i; if (this.visible && !this.isHiding && !this.isShowing) { var n = this._xAxis.get(), r = this._yAxis.get(); n == this.baseAxis && (i = n.getSeriesDataItem(this, n.toAxisPosition(t), this.snapTooltip)), r == this.baseAxis && (i = r.getSeriesDataItem(this, r.toAxisPosition(e), this.snapTooltip)); var s = this.showTooltipAtDataItem(i); if (s) return s; if (!this.tooltipText) return; } this.hideTooltip(); }, e.prototype.getAdjustedXLocation = function (t, e) { return t.locations[e]; }, e.prototype.getAdjustedYLocation = function (t, e) { return t.locations[e]; }, e.prototype.showTooltipAtDataItem = function (t) { var e, i, n = this.chart.cursor; if (n && n.hideSeriesTooltipsOnSelection && n.selection.visible && n.downPoint) this.hideTooltip();else if (this.returnBulletDefaultState(t), t && t.visible) { if (this.updateLegendValue(t), this.cursorTooltipEnabled) { this.tooltipDataItem = t; var r = this.tooltipXField, s = this.tooltipYField; if (S(t[r]) && S(t[s])) { var a = this.getPoint(t, r, s, this.getAdjustedXLocation(t, r), this.getAdjustedYLocation(t, s)); if (a) { if (this.tooltipX = a.x, this.tooltipY = a.y, this._prevTooltipDataItem != t && (this.dispatchImmediately("tooltipshownat", { type: "tooltipshownat", target: this, dataItem: t }), this._prevTooltipDataItem = t), this.cursorHoverEnabled) try { for (var l = o(t.sprites), h = l.next(); !h.done; h = l.next()) { var u = h.value; !u.parent.visible || u.isHidden || u.__disabled || u.disabled || u.isHiding || (u.isHover = !0); } } catch (t) { e = { error: t }; } finally { try { h && !h.done && (i = l["return"]) && i.call(l); } finally { if (e) throw e.error; } } return this.showTooltip() ? Wi({ x: a.x, y: a.y }, this) : void 0; } } } } else this.updateLegendValue(t, !0); }, e.prototype.returnBulletDefaultState = function (t) { if (this._prevTooltipDataItem && this._prevTooltipDataItem != t) try { for (var e = o(this._prevTooltipDataItem.sprites), i = e.next(); !i.done; i = e.next()) { var n = i.value; n.isDisposed() ? this._prevTooltipDataItem = void 0 : n.isHover = !1; } } catch (t) { r = { error: t }; } finally { try { i && !i.done && (s = e["return"]) && s.call(e); } finally { if (r) throw r.error; } } var r, s; }, e.prototype.shouldCreateBullet = function (t, e) { var i = e.xField; S(i) || (i = this.xField); var n = e.yField; if (S(n) || (n = this.yField), this.xAxis instanceof eh && !t.hasValue([i]) || this.yAxis instanceof eh && !t.hasValue([n])) return !1; if (e.disabled) { var r = e.propertyFields.disabled, s = t.dataContext; return !(!s || !1 !== s[r]); } return !0; }, e.prototype.positionBullet = function (e) { t.prototype.positionBullet.call(this, e); var i = e.dataItem, n = e.xField; S(n) || (n = this.xField); var r = e.yField; if (S(r) || (r = this.yField), this.xAxis instanceof eh && !i.hasValue([n]) || this.yAxis instanceof eh && !i.hasValue([r])) e.visible = !1;else { var s = this.getBulletLocationX(e, n), o = this.getBulletLocationY(e, r); if (this.getPoint(i, n, r, s, o)) { var a = this.xOpenField, l = this.yOpenField, h = this.xAxis, u = this.yAxis, p = void 0, c = void 0; if (h instanceof rh) { A(s) || (s = 0); var d = void 0, f = i.getWorkingValue(n); if (a ? d = i.getWorkingValue(a) : h == this.baseAxis && (d = h.baseValue), A(d) || (d = f), (d += x = i.getValue("valueX", "stack")) == (f += x)) { var g = h.baseInterval; d = ur(new Date(d), g.timeUnit, g.count, h.dateFormatter.firstDayOfWeek).getTime(), f = hr(new Date(d), g.timeUnit, g.count).getTime(); } var y = void 0; y = h == this.baseAxis ? d + (f - d) * s : d + (f - d) * (1 - s), p = h.valueToPosition(y); } else if (h instanceof eh) A(s) || (s = 0), d = void 0, f = i.getWorkingValue(n), d = a ? i.getWorkingValue(a) : h.baseValue, y = (d += x = i.getValue("valueX", "stack")) + ((f += x) - d) * (1 - s), p = h.valueToPosition(y);else if (h instanceof lh) { var m = this.getAdjustedXLocation(i, n), v = this.getAdjustedXLocation(i, a); p = h.categoryToPosition(i[n], m); var b = void 0; a && (b = h.categoryToPosition(i[a], v)), A(b) || (b = 1), p = b + (p - b) * s; } if (u instanceof rh) A(o) || (o = 0), d = void 0, f = i.getWorkingValue(r), l ? d = i.getWorkingValue(l) : u == this.baseAxis && (d = u.baseValue), A(d) || (d = f), (d += x = i.getValue("valueY", "stack")) == (f += x) && (g = u.baseInterval, d = ur(new Date(d), g.timeUnit, g.count, u.dateFormatter.firstDayOfWeek).getTime(), f = hr(new Date(d), g.timeUnit, g.count).getTime()), y = void 0, y = u == this.baseAxis ? d + (f - d) * o : d + (f - d) * (1 - o), c = u.valueToPosition(y);else if (u instanceof eh) { A(o) || (o = 0); var x; d = void 0, f = i.getWorkingValue(r), d = l ? i.getWorkingValue(l) : u.baseValue, y = (d += x = i.getValue("valueY", "stack")) + ((f += x) - d) * (1 - o), c = u.valueToPosition(y); } else if (u instanceof lh) { c = u.categoryToPosition(i[r], o); var _ = this.getAdjustedYLocation(i, r), P = this.getAdjustedYLocation(i, l); c = u.categoryToPosition(i[r], _); var w = void 0; l && (w = u.categoryToPosition(i[l], P)), A(w) || (w = 1), c = w + (c - w) * o; } e.visible = !0, this.positionBulletReal(e, p, c); } else e.visible = !1; } }, e.prototype.positionBulletReal = function (t, e, i) { t.x = this.xAxis.renderer.positionToPoint(e, i).x, t.y = this.yAxis.renderer.positionToPoint(i, e).y; }, e.prototype.getBulletLocationX = function (t, e) { var i = t.locationX, n = t.dataItem; return A(i) || (i = n.workingLocations[e]), i; }, e.prototype.getBulletLocationY = function (t, e) { var i = t.locationY, n = t.dataItem; return A(i) || (i = n.workingLocations[e]), i; }, Object.defineProperty(e.prototype, "stacked", { get: function get() { return this.getPropertyValue("stacked"); }, set: function set(t) { this.setPropertyValue("stacked", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "snapTooltip", { get: function get() { return this.getPropertyValue("snapTooltip"); }, set: function set(t) { this.setPropertyValue("snapTooltip", t); }, enumerable: !0, configurable: !0 }), e.prototype.show = function (e) { var i, n = this; this.xAxis instanceof eh && this.xAxis != this.baseAxis && (i = this._xValueFields), this.yAxis instanceof eh && this.yAxis != this.baseAxis && (i = this._yValueFields); var r, s = this.startIndex, o = this.endIndex, a = 0, l = this.defaultState.transitionDuration; A(e) && (l = e), pe(me(this.dataItems.iterator()), function (t) { var e = t[0], h = t[1]; n.sequencedInterpolation && l > 0 && (a = n.sequencedInterpolationDelay * e + l * (e - s) / (o - s)), r = h.show(l, a, i); }), this.dataSets.each(function (t, e) { e != n.dataItems && e.each(function (t) { t.events.disable(), t.show(0, 0, i), t.events.enable(); }); }), this.mainDataSet != this.dataItems && this.mainDataSet.each(function (t) { t.events.disable(), t.show(0, 0, i), t.events.enable(); }); var h = t.prototype.show.call(this, e); return r && !r.isFinished() && (h = r), h; }, e.prototype.hide = function (e) { var i, n, r = this, s = this.xAxis; s instanceof eh && s != this.baseAxis && (i = this._xValueFields, n = this.stacked || s.minZoomed < s.baseValue && s.maxZoomed > s.baseValue || this.stackedSeries ? s.baseValue : s.min); var o = this.yAxis; o instanceof eh && o != this.baseAxis && (i = this._yValueFields, n = this.stacked || o.minZoomed < o.baseValue && o.maxZoomed > o.baseValue || this.stackedSeries ? o.baseValue : o.min); var a = this.startIndex, l = this.endIndex, h = this.hiddenState.transitionDuration; A(e) && (h = e); var u, p = 0; pe(me(this.dataItems.iterator()), function (t) { var e = t[0], s = t[1]; 0 == h ? s.hide(0, 0, n, i) : (r.sequencedInterpolation && h > 0 && (p = r.sequencedInterpolationDelay * e + h * (e - a) / (l - a)), u = s.hide(h, p, n, i)); }); var c = t.prototype.hide.call(this, h); return c && !c.isFinished() && c.delay(p), u && !u.isFinished() && (c = u), this.validateDataElements(), c; }, e.prototype.handleDataItemWorkingValueChange = function (e, i) { t.prototype.handleDataItemWorkingValueChange.call(this, e, i), pe(this.baseAxis.series.iterator(), function (t) { t.stacked && t.invalidateProcessedData(); }); }, e.prototype.getStackValue = function (t, e) { var i = this; if (this.stacked) { var n, r = this.chart, s = r.series.indexOf(this); this.xAxis != this.baseAxis && this.xAxis instanceof eh && (n = this.xField), this.yAxis != this.baseAxis && this.yAxis instanceof eh && (n = this.yField), n && (t.setCalculatedValue(n, 0, "stack"), ue(r.series.range(0, s).backwards().iterator(), function (r) { if (r.xAxis == i.xAxis && r.yAxis == i.yAxis) { r.stackedSeries = i; var s = r.dataItems.getIndex(t.index); if (s && s.hasValue(i._xValueFields) && s.hasValue(i._yValueFields)) { var o = t.getValue(n), a = void 0, l = s.getValue(n) + s.getValue(n, "stack"); if (a = e ? s.getWorkingValue(n) + s.getValue(n, "stack") : s.getValue(n) + s.getValue(n, "stack"), o >= 0 && l >= 0 || o < 0 && l < 0) return t.setCalculatedValue(n, a, "stack"), !1; } else if (!r.stacked) return !1; } return !0; })); } }, Object.defineProperty(e.prototype, "xField", { get: function get() { return this._xField; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "yField", { get: function get() { return this._yField; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "xOpenField", { get: function get() { return this._xOpenField; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "yOpenField", { get: function get() { return this._yOpenField; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipXField", { get: function get() { return this._tooltipXField ? this._tooltipXField : this._xField; }, set: function set(t) { this._tooltipXField = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipYField", { get: function get() { return this._tooltipYField ? this._tooltipYField : this._yField; }, set: function set(t) { this._tooltipYField = t; }, enumerable: !0, configurable: !0 }), e.prototype.min = function (t) { return this._tmin.getKey(t.uid); }, e.prototype.max = function (t) { return this._tmax.getKey(t.uid); }, e.prototype.selectionMin = function (t) { var e = this._smin.getKey(t.uid); return A(e) || (e = this.min(t)), e; }, e.prototype.selectionMax = function (t) { var e = this._smax.getKey(t.uid); return A(e) || (e = this.max(t)), e; }, e.prototype.processConfig = function (e) { if (e) { if (S(e.baseAxis) && T(e.baseAxis) && (this.map.hasKey(e.baseAxis) ? e.baseAxis = this.map.getKey(e.baseAxis) : (this.processingErrors.push("[XYSeries (" + (this.name || "unnamed") + ')] No axis with id "' + e.baseAxis + '" found for `baseAxis`.'), delete e.baseAxis)), S(e.xAxis) && T(e.xAxis) && (this.map.hasKey(e.xAxis) ? e.xAxis = this.map.getKey(e.xAxis) : (this.processingErrors.push("[XYSeries (" + (this.name || "unnamed") + ')] No axis with id "' + e.xAxis + '" found for `xAxis`.'), delete e.xAxis)), S(e.yAxis) && T(e.yAxis) && (this.map.hasKey(e.yAxis) ? e.yAxis = this.map.getKey(e.yAxis) : (this.processingErrors.push("[XYSeries (" + (this.name || "unnamed") + ')] No axis with id "' + e.yAxis + '" found for `yAxis`.'), delete e.yAxis)), S(e.axisRanges) && F(e.axisRanges)) for (var i = 0, n = e.axisRanges.length; i < n; i++) { var r = e.axisRanges[i]; S(r.type) || (r.type = "AxisDataItem"), S(r.axis) && T(r.axis) && this.map.hasKey(r.axis) ? r.component = this.map.getKey(r.axis) : S(r.component) && T(r.component) && this.map.hasKey(r.component) && (r.component = this.map.getKey(r.component)); } S(e.dataFields) && V(e.dataFields) || this.processingErrors.push("`dataFields` is not set for series [" + (this.name || "unnamed") + "]"); } t.prototype.processConfig.call(this, e); }, e.prototype.getPoint = function (t, e, i, n, r, s, o) { var a = this.xAxis.getX(t, e, n), l = this.yAxis.getY(t, i, r); return { x: a = R(a, -1e5, 1e5), y: l = R(l, -1e5, 1e5) }; }, e.prototype.updateItemReaderText = function () { if (!this._itemReaderTextChanged) { var t = ""; Qt(this.dataFields, function (e, i) { t += "{" + e + "} "; }), this.itemReaderText = t, this._itemReaderTextChanged = !1; } }, Object.defineProperty(e.prototype, "cursorTooltipEnabled", { get: function get() { return this.getPropertyValue("cursorTooltipEnabled"); }, set: function set(t) { this.setPropertyValue("cursorTooltipEnabled", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cursorHoverEnabled", { get: function get() { return this.getPropertyValue("cursorHoverEnabled"); }, set: function set(t) { this.setPropertyValue("cursorHoverEnabled", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "excludeFromTotal", { get: function get() { return this.getPropertyValue("excludeFromTotal"); }, set: function set(t) { this.setPropertyValue("excludeFromTotal", t); }, enumerable: !0, configurable: !0 }), e; }(El); Fs.registeredClasses.XYSeries = uh, Fs.registeredClasses.XYSeriesDataItem = hh; var ph = function (t) { function e() { var e = t.call(this) || this; e._chart = new ys(), e.className = "XYChartScrollbar"; var i = new ta(); e.padding(0, 0, 0, 0); var n = e.createChild(dh); n.shouldClone = !1, n.margin(0, 0, 0, 0), n.padding(0, 0, 0, 0), n.interactionsEnabled = !1, e._scrollbarChart = n, e._disposers.push(e._scrollbarChart), e.minHeight = 60, e.minWidth = 60; var r = e.createChild(ba); r.shouldClone = !1, r.setElement(e.paper.add("path")), r.fill = i.getFor("background"), r.fillOpacity = .8, r.interactionsEnabled = !1, r.isMeasured = !1, r.toBack(), e._unselectedOverlay = r, e._disposers.push(e._unselectedOverlay), n.toBack(), e.background.cornerRadius(0, 0, 0, 0); var s = e.thumb.background; s.cornerRadius(0, 0, 0, 0), s.fillOpacity = 0, s.fill = i.getFor("background"); var o = s.states.getKey("hover"); o && (o.properties.fillOpacity = .2); var a = s.states.getKey("down"); return a && (a.properties.fillOpacity = .4), e._disposers.push(e._chart), e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "series", { get: function get() { return this._series || (this._series = new Ns(), this._disposers.push(this._series.events.on("inserted", this.handleSeriesAdded, this, !1)), this._disposers.push(this._series.events.on("removed", this.handleSeriesRemoved, this, !1))), this._series; }, enumerable: !0, configurable: !0 }), e.prototype.handleSeriesAdded = function (t) { var e = t.newValue, i = this.scrollbarChart; i.zoomOutButton.disabled = !0, this.chart = e.chart; var n = !0, r = !0; pe(this.series.iterator(), function (t) { t != e && (t.xAxis == e.xAxis && (n = !1), t.yAxis == e.yAxis && (r = !1)); }); var s = new ta(), o = e.clone(); if (n) { var a = e.xAxis.clone(); if (i.xAxes.moveValue(a), a.title.disabled = !0, a.rangeChangeDuration = 0, a.id = e.uid, (c = a.renderer).ticks.template.disabled = !0, c.inside = !0, c.labels.template.inside = !0, c.line.strokeOpacity = 0, c.minLabelPosition = .02, c.maxLabelPosition = .98, c.line.disabled = !0, c.axisFills.template.disabled = !0, c.baseGrid.disabled = !0, c.grid.template.strokeOpacity = .05, c.minWidth = void 0, c.minHeight = void 0, c.padding(0, 0, 0, 0), c.chart = i, c.margin(0, 0, 0, 0), a.width = h(100), c.labels.template.fillOpacity = .5, a instanceof rh) { var l = a, u = e.xAxis; a.groupCount = 5 * u.groupCount, this._disposers.push(l.clonedFrom.events.on("extremeschanged", function () { A(l.clonedFrom.minDefined) && (l.min = l.clonedFrom.minDefined), A(l.clonedFrom.maxDefined) && (l.max = l.clonedFrom.maxDefined); }, void 0, !1)); } else if (a instanceof eh) { var p = a; this._disposers.push(p.clonedFrom.events.on("extremeschanged", function () { A(p.clonedFrom.minDefined) && (p.min = p.clonedFrom.min), A(p.clonedFrom.maxDefined) && (p.max = p.clonedFrom.max); }, void 0, !1)); } o.xAxis = a; } else this.scrollbarChart.xAxes.each(function (t) { t.clonedFrom == e.xAxis && (o.xAxis = t); }); if (r) { var c, d = e.yAxis.clone(); if (i.yAxes.moveValue(d), d.title.disabled = !0, d.rangeChangeDuration = 0, (c = d.renderer).ticks.template.disabled = !0, c.inside = !0, c.labels.template.inside = !0, c.line.strokeOpacity = 0, c.minLabelPosition = .02, c.maxLabelPosition = .98, c.line.disabled = !0, c.axisFills.template.disabled = !0, c.grid.template.stroke = s.getFor("background"), c.baseGrid.disabled = !0, c.grid.template.strokeOpacity = .05, c.minWidth = void 0, c.minHeight = void 0, c.chart = i, c.padding(0, 0, 0, 0), c.margin(0, 0, 0, 0), d.height = h(100), c.labels.template.fillOpacity = .5, o.yAxis = d, d instanceof rh) { var f = d; u = e.yAxis, d.groupCount = 5 * u.groupCount, this._disposers.push(f.clonedFrom.events.on("extremeschanged", function () { A(f.clonedFrom.minDefined) && (f.min = f.clonedFrom.minDefined), A(f.clonedFrom.maxDefined) && (f.max = f.clonedFrom.maxDefined); })); } else if (d instanceof eh) { var g = d; this._disposers.push(g.clonedFrom.events.on("extremeschanged", function () { A(g.clonedFrom.minDefined) && (g.min = g.clonedFrom.minDefined), A(g.clonedFrom.maxDefined) && (g.max = g.clonedFrom.maxDefined); })); } } else this.scrollbarChart.yAxes.each(function (t) { t.clonedFrom == e.yAxis && (o.yAxis = t); }); o.rangeChangeDuration = 0, o.interpolationDuration = 0, o.defaultState.transitionDuration = 0, o.showOnInit = !1, this._disposers.push(o.events.on("validated", this.zoomOutAxes, this, !1)), this._disposers.push(e.events.on("datavalidated", function () { o.data != e.data && (o.data = e.data); }, void 0, !1)), o.defaultState.properties.visible = !0, o.filters.push(new wl()), i.series.push(o), this.updateByOrientation(); }, e.prototype.updateByOrientation = function () { var t = this; this._scrollbarChart && (pe(this._scrollbarChart.xAxes.iterator(), function (e) { var i = e.renderer; "vertical" == t.orientation ? (i.grid.template.disabled = !0, i.labels.template.disabled = !0, i.minGridDistance = 10) : (i.grid.template.disabled = !1, i.labels.template.disabled = !1, i.minGridDistance = e.clonedFrom.renderer.minGridDistance); }), pe(this._scrollbarChart.yAxes.iterator(), function (e) { var i = e.renderer; "horizontal" == t.orientation ? (i.grid.template.disabled = !0, i.labels.template.disabled = !0, i.minGridDistance = 10) : (i.grid.template.disabled = !1, i.labels.template.disabled = !1, i.minGridDistance = e.clonedFrom.renderer.minGridDistance); })); }, e.prototype.handleSeriesRemoved = function (t) { t.oldValue.events.off("validated", this.zoomOutAxes, this); }, Object.defineProperty(e.prototype, "scrollbarChart", { get: function get() { return this._scrollbarChart; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "chart", { get: function get() { return this._chart.get(); }, set: function set(t) { this._chart.get() !== t && (this._chart.set(t, t.events.on("datavalidated", this.handleDataChanged, this, !1)), this.handleDataChanged(), this._scrollbarChart.dataProvider = t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "unselectedOverlay", { get: function get() { return this._unselectedOverlay; }, enumerable: !0, configurable: !0 }), e.prototype.handleDataChanged = function () { this.chart.data != this.scrollbarChart.data && (this.scrollbarChart.data = this.chart.data); }, e.prototype.zoomOutAxes = function () { var t = this.scrollbarChart; pe(t.xAxes.iterator(), function (t) { t.zoom({ start: 0, end: 1 }, !0, !0); }), pe(t.yAxes.iterator(), function (t) { t.zoom({ start: 0, end: 1 }, !0, !0); }); }, e.prototype.updateThumb = function () { if (t.prototype.updateThumb.call(this), this._unselectedOverlay) { var e = this.thumb, i = e.pixelX || 0, n = e.pixelY || 0, r = e.pixelWidth || 0, s = e.pixelHeight || 0, o = ""; "horizontal" == this.orientation ? (o = kr({ x: -1, y: 0, width: i, height: s }), o += kr({ x: i + r, y: 0, width: (this.pixelWidth || 0) - i - r, height: s })) : (o = kr({ x: 0, y: 0, width: r, height: n }), o += kr({ x: 0, y: n + s, width: r, height: (this.pixelHeight || 0) - n - s })), this._unselectedOverlay.path = o; } }, e.prototype.processConfig = function (e) { if (e && S(e.series) && F(e.series)) for (var i = 0, n = e.series.length; i < n; i++) { var r = e.series[i]; if (S(r) && T(r)) { if (!this.map.hasKey(r)) throw Error("XYChartScrollbar error: Series with id `" + r + "` does not exist."); e.series[i] = this.map.getKey(r); } } t.prototype.processConfig.call(this, e); }, e; }($a); Fs.registeredClasses.XYChartScrollbar = ph; var ch = function (t) { function e() { var e = t.call(this) || this; return e.className = "XYChartDataItem", e.applyTheme(), e; } return n(e, t), e; }(Rl), dh = function (t) { function e() { var e = t.call(this) || this; e._axisRendererX = sh, e._axisRendererY = Jl, e._seriesPoints = [], e.className = "XYChart", e.maskBullets = !0, e.arrangeTooltips = !0; var i = e.chartContainer; i.layout = "vertical", e.padding(15, 15, 15, 15); var n = i.createChild(_a); n.shouldClone = !1, n.layout = "vertical", n.width = h(100), n.zIndex = 1, e.topAxesContainer = n; var r = i.createChild(_a); r.shouldClone = !1, r.layout = "horizontal", r.width = h(100), r.height = h(100), r.zIndex = 0, e.yAxesAndPlotContainer = r; var s = i.createChild(_a); s.shouldClone = !1, s.width = h(100), s.layout = "vertical", s.zIndex = 1, e.bottomAxesContainer = s; var o = r.createChild(_a); o.shouldClone = !1, o.layout = "horizontal", o.height = h(100), o.contentAlign = "right", o.events.on("transformed", e.updateXAxesMargins, e, !1), o.zIndex = 1, e.leftAxesContainer = o; var a = r.createChild(_a); a.shouldClone = !1, a.height = h(100), a.width = h(100), a.background.fillOpacity = 0, e.plotContainer = a, e.mouseWheelBehavior = "none", e._cursorContainer = a; var l = r.createChild(_a); l.shouldClone = !1, l.layout = "horizontal", l.height = h(100), l.zIndex = 1, l.events.on("transformed", e.updateXAxesMargins, e, !1), e.rightAxesContainer = l, e.seriesContainer.parent = a, e.bulletsContainer.parent = a; var u = a.createChild(ul); u.shouldClone = !1, u.align = "right", u.valign = "top", u.zIndex = Number.MAX_SAFE_INTEGER, u.marginTop = 5, u.marginRight = 5, u.hide(0), e.zoomOutButton = u; var p = e.plotContainer.createChild(_a); return p.shouldClone = !1, p.width = h(100), p.height = h(100), p.isMeasured = !1, p.zIndex = 4, p.layout = "none", e.axisBulletsContainer = p, e._bulletMask = e.plotContainer, e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), this.zoomOutButton.exportable = !1, S(this.readerTitle) || (this.readerTitle = this.language.translate("X/Y chart")); }, e.prototype.draw = function () { t.prototype.draw.call(this), this.seriesContainer.toFront(), this.bulletsContainer.toFront(), this.maskBullets && (this.bulletsContainer.mask = this._bulletMask), this.updateSeriesLegend(); }, e.prototype.updatePlotElements = function () { pe(this.series.iterator(), function (t) { t.invalidate(); }); }, e.prototype.validateData = function () { 0 == this._parseDataFrom && (pe(this.xAxes.iterator(), function (t) { t.dataChangeUpdate(); }), pe(this.yAxes.iterator(), function (t) { t.dataChangeUpdate(); }), pe(this.series.iterator(), function (t) { t.dataChangeUpdate(); })), t.prototype.validateData.call(this); }, e.prototype.updateXAxesMargins = function () { var t = this.leftAxesContainer.measuredWidth, e = this.rightAxesContainer.measuredWidth, i = this.bottomAxesContainer; i.paddingLeft == t && i.paddingRight == e || (i.paddingLeft = t, i.paddingRight = e); var n = this.topAxesContainer; n.paddingLeft == t && n.paddingRight == e || (n.paddingLeft = t, n.paddingRight = e); }, e.prototype.reinit = function () { t.prototype.reinit.call(this), this.series.each(function (t) { t.appeared = !1; }); }, e.prototype.handleXAxisChange = function (t) { this.updateXAxis(t.target); }, e.prototype.handleYAxisChange = function (t) { this.updateYAxis(t.target); }, e.prototype.processXAxis = function (t) { var e = t.newValue; e.chart = this, e.renderer || (e.renderer = new this._axisRendererX(), e.renderer.observe(["opposite", "inside", "inversed", "minGridDistance"], this.handleXAxisChange, this, !1)), e.axisLetter = "X", e.events.on("startendchanged", this.handleXAxisRangeChange, this, !1), e.dataProvider = this, this.events.on("beforedatavalidated", function () { e.resetFlags(); }, this, !1), this.updateXAxis(e.renderer), this.processAxis(e); }, e.prototype.processYAxis = function (t) { var e = t.newValue; e.chart = this, e.renderer || (e.renderer = new this._axisRendererY(), e.renderer.observe(["opposite", "inside", "inversed", "minGridDistance"], this.handleYAxisChange, this, !1)), e.axisLetter = "Y", e.events.on("startendchanged", this.handleYAxisRangeChange, this, !1), e.dataProvider = this, this.events.on("beforedatavalidated", function () { e.resetFlags(); }), this.updateYAxis(e.renderer), this.processAxis(e); }, e.prototype.handleXAxisRangeChange = function () { var t = this.getCommonAxisRange(this.xAxes); this.scrollbarX && this.zoomAxes(this.xAxes, t, !0), this.toggleZoomOutButton(), this.updateScrollbar(this.scrollbarX, t); }, e.prototype.toggleZoomOutButton = function () { if (this.zoomOutButton) { var t = !1; ue(this.xAxes.iterator(), function (e) { if (e.toggleZoomOutButton) if (e.maxZoomCount > 0) { var i = e.maxZoomFactor / e.maxZoomCount; if (j(e.end - e.start, 3) < 1 / i) return t = !0, !1; } else if (0 != j(e.start, 3) || 1 != j(e.end, 3)) return t = !0, !1; return !0; }), ue(this.yAxes.iterator(), function (e) { if (e.toggleZoomOutButton) { if (e.maxZoomCount > 0) { var i = e.maxZoomFactor / e.maxZoomCount; if (j(e.end - e.start, 3) < 1 / i) return t = !0, !1; } else if (0 != j(e.start, 3) || 1 != j(e.end, 3)) return t = !0, !1; return !0; } }), this.seriesAppeared || (t = !1), t ? this.zoomOutButton.show() : this.zoomOutButton.hide(); } }, e.prototype.seriesAppeared = function () { var t = !1; return pe(this.series.iterator(), function (e) { if (!e.appeared) return t = !1, !1; }), t; }, e.prototype.handleYAxisRangeChange = function () { var t = this.getCommonAxisRange(this.yAxes); this.scrollbarY && this.zoomAxes(this.yAxes, t, !0), this.toggleZoomOutButton(), this.updateScrollbar(this.scrollbarY, t); }, e.prototype.updateScrollbar = function (t, e) { t && (t.skipRangeEvents(), t.start = e.start, t.end = e.end); }, e.prototype.getCommonAxisRange = function (t) { var e, i; return pe(t.iterator(), function (t) { var n = t.start, r = t.end; t.renderer.inversed && (n = 1 - t.end, r = 1 - t.start), (!A(e) || n < e) && (e = n), (!A(i) || r > i) && (i = r); }), { start: e, end: i }; }, e.prototype.updateXAxis = function (t) { var e = t.axis; t.opposite ? (e.parent = this.topAxesContainer, e.toFront()) : (e.parent = this.bottomAxesContainer, e.toBack()), e.renderer && e.renderer.processRenderer(); }, e.prototype.updateYAxis = function (t) { var e = t.axis; t.opposite ? (e.parent = this.rightAxesContainer, e.toBack()) : (e.parent = this.leftAxesContainer, e.toFront()), e.renderer && e.renderer.processRenderer(); }, e.prototype.processAxis = function (t) { var e = this; t instanceof lh && this._dataUsers.moveValue(t); var i = t.renderer; i.gridContainer.parent = this.plotContainer, i.gridContainer.toBack(), i.breakContainer.parent = this.plotContainer, i.breakContainer.toFront(), i.breakContainer.zIndex = 10, t.addDisposer(new fs(function () { e.dataUsers.removeValue(t); })), i.bulletsContainer.parent = this.axisBulletsContainer, this.plotContainer.events.on("maxsizechanged", function () { e.inited && (t.invalidateDataItems(), e.updateSeriesMasks()); }, t, !1); }, e.prototype.updateSeriesMasks = function () { rn() && this.series.each(function (t) { var e = t.mainContainer.mask; t.mainContainer.mask = void 0, t.mainContainer.mask = e; }); }, Object.defineProperty(e.prototype, "xAxes", { get: function get() { return this._xAxes || (this._xAxes = new Ns(), this._xAxes.events.on("inserted", this.processXAxis, this, !1), this._xAxes.events.on("removed", this.handleAxisRemoval, this, !1)), this._xAxes; }, enumerable: !0, configurable: !0 }), e.prototype.handleAxisRemoval = function (t) { var e = t.oldValue; this.dataUsers.removeValue(e), e.autoDispose && e.dispose(); }, Object.defineProperty(e.prototype, "yAxes", { get: function get() { return this._yAxes || (this._yAxes = new Ns(), this._yAxes.events.on("inserted", this.processYAxis, this, !1), this._yAxes.events.on("removed", this.handleAxisRemoval, this, !1)), this._yAxes; }, enumerable: !0, configurable: !0 }), e.prototype.handleSeriesAdded = function (e) { try { t.prototype.handleSeriesAdded.call(this, e); var i = e.newValue; 0 != this.xAxes.length && 0 != this.yAxes.length || (Fs.removeFromInvalidComponents(i), i.dataInvalid = !1), i.xAxis, i.yAxis, null == i.fill && (i.fill = this.colors.next()), null == i.stroke && (i.stroke = i.fill); } catch (t) { this.raiseCriticalError(t); } }, Object.defineProperty(e.prototype, "cursor", { get: function get() { return this._cursor; }, set: function set(t) { this._cursor != t && (this._cursor && this.removeDispose(this._cursor), this._cursor = t, t && (this._disposers.push(t), t.chart = this, t.shouldClone = !1, t.parent = this._cursorContainer, t.events.on("cursorpositionchanged", this.handleCursorPositionChange, this, !1), t.events.on("zoomstarted", this.handleCursorZoomStart, this, !1), t.events.on("zoomended", this.handleCursorZoomEnd, this, !1), t.events.on("panstarted", this.handleCursorPanStart, this, !1), t.events.on("panning", this.handleCursorPanning, this, !1), t.events.on("panended", this.handleCursorPanEnd, this, !1), t.events.on("behaviorcanceled", this.handleCursorCanceled, this, !1), t.events.on("hidden", this.handleHideCursor, this, !1), t.zIndex = Number.MAX_SAFE_INTEGER - 1, this.tapToActivate && this.setTapToActivate(this.tapToActivate))); }, enumerable: !0, configurable: !0 }), e.prototype.handleCursorPositionChange = function () { var t = this.cursor; if (t.visible && !t.isHiding) { var e = this.cursor.xPosition, i = this.cursor.yPosition; this.showSeriesTooltip({ x: e, y: i }); var n = void 0, r = t.snapToSeries; if (r) { r.baseAxis == r.xAxis && (n = r.yAxis), r.baseAxis == r.yAxis && (n = r.xAxis); var s = r.xAxis, o = r.yAxis; if (s instanceof eh && !(s instanceof rh) && o instanceof eh && !(o instanceof rh)) { var a, l = 1 / 0; r.dataItems.each(function (t) { var n = s.toGlobalPosition(s.getPositionX(t, "valueX")) * s.axisFullLength, r = o.toGlobalPosition(o.getPositionY(t, "valueY")) * o.axisFullLength, h = Math.sqrt(Math.pow(e * s.axisFullLength - n, 2) + Math.pow(i * o.axisFullLength - r, 2)); h < l && (l = h, a = t); }), a && r.showTooltipAtDataItem(a); } } this._seriesPoints = [], this._cursorXPosition != e && this.showAxisTooltip(this.xAxes, e, n), this._cursorYPosition != i && this.showAxisTooltip(this.yAxes, i, n), this.sortSeriesTooltips(this._seriesPoints); } }, e.prototype.handleHideCursor = function () { this.hideObjectTooltip(this.xAxes), this.hideObjectTooltip(this.yAxes), this.hideObjectTooltip(this.series), this._cursorXPosition = void 0, this._cursorYPosition = void 0, this.updateSeriesLegend(); }, e.prototype.updateSeriesLegend = function () { pe(this.series.iterator(), function (t) { t.updateLegendValue(); }); }, e.prototype.hideObjectTooltip = function (t) { pe(t.iterator(), function (t) { t.hideTooltip(0); }); }, e.prototype.showSeriesTooltip = function (t) { var e = this; if (t) { var i = []; this.series.each(function (n) { if (n.xAxis instanceof rh && n.xAxis.snapTooltip || n.yAxis instanceof rh && n.yAxis.snapTooltip) ;else { var r = n.showTooltipAtPosition(t.x, t.y); r && (n.tooltip.setBounds({ x: 0, y: 0, width: e.pixelWidth, height: e.pixelHeight }), i.push({ series: n, point: r })); } }), this.arrangeTooltips && this.sortSeriesTooltips(i); } else this.series.each(function (t) { t.hideTooltip(); }); }, e.prototype.sortSeriesTooltips = function (t) { var e = Wi({ x: -.5, y: -.5 }, this.plotContainer), i = Wi({ x: this.plotContainer.pixelWidth + .5, y: this.plotContainer.pixelHeight + .5 }, this.plotContainer), n = 0, r = []; mt(t, function (t) { var s = t.point; s && ct(s, { x: e.x, y: e.y, width: i.x - e.x, height: i.y - e.y }) && (r.push({ point: s, series: t.series }), n += s.y); }), (t = r).sort(function (t, e) { return t.point.y > e.point.y ? 1 : t.point.y < e.point.y ? -1 : 0; }); var s = n / t.length, o = Gi({ x: 0, y: 0 }, this.svgContainer.SVGContainer).y; if (t.length > 0) { var a = e.y, l = i.y; Zi({ x: 0, y: a }, this); var h = !1; if (s > a + (l - a) / 2) for (var u = l, p = t.length - 1; p >= 0; p--) { var c = (y = t[p].series).tooltip, d = t[p].point.y; if (c.setBounds({ x: 0, y: -o, width: this.pixelWidth, height: u + o }), c.invalid && c.validate(), c.toBack(), (u = Wi({ x: 0, y: c.label.pixelY - c.pixelY + d - c.pixelMarginTop }, c).y) < -o) { h = !0; break; } } if (s <= a + (l - a) / 2 || h) for (var f = a, g = (p = 0, t.length); p < g; p++) { var y = t[p].series; d = t[p].point.y, (c = y.tooltip).setBounds({ x: 0, y: f, width: this.pixelWidth, height: l }), c.invalid && c.validate(), c.toBack(), f = Wi({ x: 0, y: c.label.pixelY + c.label.measuredHeight - c.pixelY + d + c.pixelMarginBottom }, c).y; } } }, e.prototype.showAxisTooltip = function (t, e, i) { var n = this; pe(t.iterator(), function (t) { t != i && (n.dataItems.length > 0 || t.dataItems.length > 0) && t.showTooltipAtPosition(e); }); }, e.prototype.getUpdatedRange = function (t, e) { if (t) { var i, n, r = t.renderer.inversed; t.renderer instanceof Jl && (e = U(e)), r ? (U(e), i = 1 - t.end, n = 1 - t.start) : (i = t.start, n = t.end); var s = n - i; return { start: i + e.start * s, end: i + e.end * s }; } }, e.prototype.handleCursorZoomEnd = function (t) { var e = this.cursor, i = e.behavior; if ("zoomX" == i || "zoomXY" == i) { var n = e.xRange; n && this.xAxes.length > 0 && ((n = this.getUpdatedRange(this.xAxes.getIndex(0), n)).priority = "start", this.zoomAxes(this.xAxes, n)); } if ("zoomY" == i || "zoomXY" == i) { var r = e.yRange; r && this.yAxes.length > 0 && ((r = this.getUpdatedRange(this.yAxes.getIndex(0), r)).priority = "start", this.zoomAxes(this.yAxes, r)); } this.handleHideCursor(); }, e.prototype.handleCursorPanStart = function (t) { var e = this.xAxes.getIndex(0); e && (this._panStartXRange = { start: e.start, end: e.end }); var i = this.yAxes.getIndex(0); i && (this._panStartYRange = { start: i.start, end: i.end }); }, e.prototype.handleCursorPanEnd = function (t) { var e = this.cursor.behavior; if (this._panEndXRange && ("panX" == e || "panXY" == e)) { var i = 0; (n = this._panEndXRange).start < 0 && (i = n.start), n.end > 1 && (i = n.end - 1), this.zoomAxes(this.xAxes, { start: n.start - i, end: n.end - i }, !1, !0), this._panEndXRange = void 0, this._panStartXRange = void 0; } if (this._panEndYRange && ("panY" == e || "panXY" == e)) { var n; i = 0, (n = this._panEndYRange).start < 0 && (i = n.start), n.end > 1 && (i = n.end - 1), this.zoomAxes(this.yAxes, { start: n.start - i, end: n.end - i }, !1, !0), this._panEndYRange = void 0, this._panStartYRange = void 0; } }, e.prototype.handleCursorCanceled = function () { this._panEndXRange = void 0, this._panStartXRange = void 0; }, e.prototype.handleCursorPanning = function (t) { var e = this.cursor, i = e.behavior, n = e.maxPanOut; if (this._panStartXRange && ("panX" == i || "panXY" == i)) { var r = this._panStartXRange, s = e.xRange, o = this.getCommonAxisRange(this.xAxes), a = r.end - r.start, l = s.start * (o.end - o.start), h = Math.max(-n, l + r.start), u = Math.min(l + r.end, 1 + n); h <= 0 && (u = h + a), u >= 1 && (h = u - a); var p = { start: h, end: u }; this._panEndXRange = p, this.zoomAxes(this.xAxes, p, !1, !1, e.maxPanOut); } !this._panStartYRange || "panY" != i && "panXY" != i || (r = this._panStartYRange, s = e.yRange, o = this.getCommonAxisRange(this.yAxes), a = r.end - r.start, l = s.start * (o.end - o.start), h = Math.max(-n, l + r.start), u = Math.min(l + r.end, 1 + n), h <= 0 && (u = h + a), u >= 1 && (h = u - a), p = { start: h, end: u }, this._panEndYRange = p, this.zoomAxes(this.yAxes, p, !1, !1, e.maxPanOut)), this.handleHideCursor(); }, e.prototype.handleCursorZoomStart = function (t) {}, Object.defineProperty(e.prototype, "scrollbarX", { get: function get() { return this._scrollbarX; }, set: function set(t) { var e = this; this._scrollbarX && this.removeDispose(this._scrollbarX), this._scrollbarX = t, t && (this._disposers.push(t), t.parent = this.topAxesContainer, t.shouldClone = !1, t.startGrip.exportable = !1, t.endGrip.exportable = !1, t.toBack(), t.orientation = "horizontal", t.events.on("rangechanged", this.handleXScrollbarChange, this, !1), t.adapter.add("positionValue", function (t) { var i = e.xAxes.getIndex(0); return i && (t.value = i.getPositionLabel(t.position)), t; })); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "scrollbarY", { get: function get() { return this._scrollbarY; }, set: function set(t) { var e = this; this._scrollbarY && this.removeDispose(this._scrollbarY), this._scrollbarY = t, t && (this._disposers.push(t), t.parent = this.rightAxesContainer, t.startGrip.exportable = !1, t.shouldClone = !1, t.endGrip.exportable = !1, t.toFront(), t.orientation = "vertical", t.events.on("rangechanged", this.handleYScrollbarChange, this, !1), t.adapter.add("positionValue", function (t) { var i = e.yAxes.getIndex(0); return i && (t.value = i.getPositionLabel(t.position)), t; })); }, enumerable: !0, configurable: !0 }), e.prototype.handleXScrollbarChange = function (t) { if (this.inited) { var e = t.target, i = e.range; 0 == i.start && (i.priority = "start"), 1 == i.end && (i.priority = "end"), i = this.zoomAxes(this.xAxes, i), e.fixRange(i); } }, e.prototype.handleYScrollbarChange = function (t) { if (this.inited) { var e = t.target, i = e.range; 1 == i.end && (i.priority = "end"), 0 == i.start && (i.priority = "start"), i = this.zoomAxes(this.yAxes, i), e.fixRange(i); } }, e.prototype.zoomAxes = function (t, e, i, n, r) { var s = { start: 0, end: 1 }; return this.showSeriesTooltip(), this.dataInvalid || pe(t.iterator(), function (t) { if (t.renderer.inversed && (e = U(e)), t.hideTooltip(0), n) if (t instanceof lh) { var o = t.getCellEndPosition(0) - t.getCellStartPosition(0); e.start = t.roundPosition(e.start + o / 2 - t.startLocation * o, t.startLocation), e.end = t.roundPosition(e.end - o / 2 + (1 - t.endLocation) * o, t.endLocation); } else e.start = t.roundPosition(e.start + 1e-4, 0, t.startLocation), e.end = t.roundPosition(e.end + 1e-4, 0, t.endLocation); var a = t.zoom(e, i, i, r); t.renderer.inversed && (a = U(a)), s = a; }), s; }, Object.defineProperty(e.prototype, "maskBullets", { get: function get() { return this.getPropertyValue("maskBullets"); }, set: function set(t) { this.setPropertyValue("maskBullets", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "arrangeTooltips", { get: function get() { return this.getPropertyValue("arrangeTooltips"); }, set: function set(t) { this.setPropertyValue("arrangeTooltips", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.handleWheel = function (t) { var e = this.plotContainer, i = Hi(Ui(t.point, this.htmlContainer, this.svgContainer.cssScale), e), n = t.shift.y, r = this.getCommonAxisRange(this.xAxes), s = this.getCommonAxisRange(this.yAxes), o = this.mouseWheelBehavior; if ("panX" == o || "panXY" == o) { var a = r.end - r.start, l = Math.max(-0, r.start + .05 * n / 100), h = Math.min(r.end + .05 * n / 100, 1); l <= 0 && (h = l + a), h >= 1 && (l = h - a), this.zoomAxes(this.xAxes, { start: l, end: h }); } if ("panY" == o || "panXY" == o) { n *= -1; var u = s.end - s.start, p = Math.max(-0, s.start + .05 * n / 100), c = Math.min(s.end + .05 * n / 100, 1); p <= 0 && (c = p + u), c >= 1 && (p = c - u), this.zoomAxes(this.yAxes, { start: p, end: c }); } if ("zoomX" == o || "zoomXY" == o) { var d = i.x / e.maxWidth; l = Math.max(-0, r.start - .05 * n / 100 * d), l = Math.min(l, r.start + (r.end - r.start) * d - .05 * .05), h = Math.min(r.end + .05 * n / 100 * (1 - d), 1), h = Math.max(h, r.start + (r.end - r.start) * d + .05 * .05), this.zoomAxes(this.xAxes, { start: l, end: h }); } if ("zoomY" == o || "zoomXY" == o) { var f = i.y / e.maxHeight; p = Math.max(-0, s.start - .05 * n / 100 * (1 - f)), p = Math.min(p, s.start + (s.end - s.start) * f - .05 * .05), c = Math.min(s.end + .05 * n / 100 * f, 1), c = Math.max(c, s.start + (s.end - s.start) * f + .05 * .05), this.zoomAxes(this.yAxes, { start: p, end: c }); } }, Object.defineProperty(e.prototype, "mouseWheelBehavior", { get: function get() { return this.getPropertyValue("mouseWheelBehavior"); }, set: function set(t) { this.setPropertyValue("mouseWheelBehavior", t) && ("none" != t ? (this._mouseWheelDisposer = this.plotContainer.events.on("wheel", this.handleWheel, this, !1), this._disposers.push(this._mouseWheelDisposer)) : this._mouseWheelDisposer && (this.plotContainer.wheelable = !1, this.plotContainer.hoverable = !1, this._mouseWheelDisposer.dispose())); }, enumerable: !0, configurable: !0 }), e.prototype.dataSourceDateFields = function (e) { var i = this; return e = t.prototype.dataSourceDateFields.call(this, e), pe(this.series.iterator(), function (t) { e = i.populateDataSourceFields(e, t.dataFields, ["dateX", "dateY", "openDateX", "openDateY"]); }), e; }, e.prototype.dataSourceNumberFields = function (e) { var i = this; return e = t.prototype.dataSourceDateFields.call(this, e), pe(this.series.iterator(), function (t) { e = i.populateDataSourceFields(e, t.dataFields, ["valueX", "valueY", "openValueX", "openValueY"]); }), e; }, e.prototype.processConfig = function (e) { if (e) { var i = [], n = []; if (S(e.xAxes) && F(e.xAxes)) for (var r = 0, s = e.xAxes.length; r < s; r++) { if (!e.xAxes[r].type) throw Error("[XYChart error] No type set for xAxes[" + r + "]."); if (S(e.xAxes[r].axisRanges)) { for (var o = 0, a = e.xAxes[r].axisRanges.length; o < a; o++) S((h = e.xAxes[r].axisRanges[o]).date) && T(h.date) && (h.date = this.dateFormatter.parse(h.date)), S(h.endDate) && T(h.endDate) && (h.endDate = this.dateFormatter.parse(h.endDate)); i.push({ axisRanges: e.xAxes[r].axisRanges, index: r }), delete e.xAxes[r].axisRanges; } } if (S(e.yAxes) && F(e.yAxes)) for (r = 0, s = e.yAxes.length; r < s; r++) { if (!e.yAxes[r].type) throw Error("[XYChart error] No type set for yAxes[" + r + "]."); if (S(e.yAxes[r].axisRanges)) { o = 0; for (var l = e.yAxes[r].axisRanges.length; o < l; o++) { var h; S((h = e.yAxes[r].axisRanges[o]).date) && T(h.date) && (h.date = this.dateFormatter.parse(h.date)), S(h.endDate) && T(h.endDate) && (h.endDate = this.dateFormatter.parse(h.endDate)); } n.push({ axisRanges: e.yAxes[r].axisRanges, index: r }), delete e.yAxes[r].axisRanges; } } if (S(e.series) && F(e.series)) for (r = 0, s = e.series.length; r < s; r++) e.series[r].type = e.series[r].type || "LineSeries"; if (S(e.cursor) && !S(e.cursor.type) && (e.cursor.type = "XYCursor"), S(e.scrollbarX) && !S(e.scrollbarX.type) && (e.scrollbarX.type = "Scrollbar"), S(e.scrollbarY) && !S(e.scrollbarY.type) && (e.scrollbarY.type = "Scrollbar"), t.prototype.processConfig.call(this, e), n.length) for (r = 0, s = n.length; r < s; r++) this.yAxes.getIndex(n[r].index).config = { axisRanges: n[r].axisRanges }; if (i.length) for (r = 0, s = i.length; r < s; r++) this.xAxes.getIndex(i[r].index).config = { axisRanges: i[r].axisRanges }; } }, e.prototype.configOrder = function (e, i) { return e == i ? 0 : "scrollbarX" == e ? 1 : "scrollbarX" == i ? -1 : "scrollbarY" == e ? 1 : "scrollbarY" == i ? -1 : "cursor" == e ? 1 : "cursor" == i ? -1 : "series" == e ? 1 : "series" == i ? -1 : t.prototype.configOrder.call(this, e, i); }, e.prototype.createSeries = function () { return new uh(); }, Object.defineProperty(e.prototype, "zoomOutButton", { get: function get() { return this._zoomOutButton; }, set: function set(t) { var e = this; this._zoomOutButton = t, t && t.events.on("hit", function () { e.zoomAxes(e.xAxes, { start: 0, end: 1 }), e.zoomAxes(e.yAxes, { start: 0, end: 1 }); }, void 0, !1); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { var i = this; e.xAxes.each(function (t) { i.xAxes.push(t.clone()); }), e.yAxes.each(function (t) { i.yAxes.push(t.clone()); }), t.prototype.copyFrom.call(this, e), e.cursor && (this.cursor = e.cursor.clone()), e.scrollbarX && (this.scrollbarX = e.scrollbarX.clone()), e.scrollbarY && (this.scrollbarY = e.scrollbarY.clone()); }, e.prototype.disposeData = function () { t.prototype.disposeData.call(this); var e = this.scrollbarX; e && e instanceof ph && e.scrollbarChart.disposeData(); var i = this.scrollbarY; i && i instanceof ph && i.scrollbarChart.disposeData(), this.xAxes.each(function (t) { t.disposeData(); }), this.yAxes.each(function (t) { t.disposeData(); }); }, e.prototype.addData = function (e, i) { this.scrollbarX instanceof ph && this.addScrollbarData(this.scrollbarX, i), this.scrollbarY instanceof ph && this.addScrollbarData(this.scrollbarY, i), t.prototype.addData.call(this, e, i); }, e.prototype.addScrollbarData = function (t, e) { var i = t.scrollbarChart; i._parseDataFrom = i.data.length, i.invalidateData(); }, e.prototype.removeScrollbarData = function (t, e) { var i = t.scrollbarChart; if (A(e)) { for (; e > 0;) { var n = this.dataItems.getIndex(0); n && i.dataItems.remove(n), i.dataUsers.each(function (t) { var e = t.dataItems.getIndex(0); e && t.dataItems.remove(e); }), i._parseDataFrom--, e--; } i.invalidateData(); } }, e.prototype.removeData = function (e) { this.scrollbarX instanceof ph && this.removeScrollbarData(this.scrollbarX, e), this.scrollbarY instanceof ph && this.removeScrollbarData(this.scrollbarY, e), t.prototype.removeData.call(this, e); }, e.prototype.setTapToActivate = function (e) { t.prototype.setTapToActivate.call(this, e), this.cursor && (this.cursor.interactions.isTouchProtected = e, this.plotContainer.interactions.isTouchProtected = e); }, e.prototype.handleTapToActivate = function () { t.prototype.handleTapToActivate.call(this), this.cursor && (this.cursor.interactions.isTouchProtected = !1, this.plotContainer.interactions.isTouchProtected = !1); }, e.prototype.handleTapToActivateDeactivation = function () { t.prototype.handleTapToActivateDeactivation.call(this), this.cursor && (this.cursor.interactions.isTouchProtected = !0, this.plotContainer.interactions.isTouchProtected = !0); }, e; }(Bl); Fs.registeredClasses.XYChart = dh, Ta.push({ relevant: Aa.maybeXS, state: function state(t, e) { if (t instanceof dh && t.scrollbarX) { var i = t.states.create(e); return t.scrollbarX.states.create(e).properties.disabled = !0, i; } return null; } }), Ta.push({ relevant: Aa.maybeXS, state: function state(t, e) { if (t instanceof dh && t.scrollbarY) { var i = t.states.create(e); return t.scrollbarY.states.create(e).properties.disabled = !0, i; } return null; } }); var fh = function (t) { function e() { var e = t.call(this) || this; e.className = "LineSeriesSegment", e.isMeasured = !1, e.interactionsEnabled = !1, e.layout = "none"; var i = e.createChild(ba); e.fillSprite = i, i.shouldClone = !1, i.setElement(e.paper.add("path")), i.isMeasured = !1, e._disposers.push(i); var n = e.createChild(ba); return e.strokeSprite = n, n.shouldClone = !1, n.fill = Je(), n.setElement(e.paper.add("path")), n.isMeasured = !1, e._disposers.push(n), e; } return n(e, t), e.prototype.drawSegment = function (t, e, i, n) { if (!this.disabled) if (t.length > 0 && e.length > 0) { var r = xr({ x: t[0].x - .2, y: t[0].y - .2 }) + xr(t[0]) + new sl(i, n).smooth(t); 0 == this.strokeOpacity || 0 == this.strokeSprite.strokeOpacity || (this.strokeSprite.path = r), (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) && (r += _r(e[0]) + new sl(i, n).smooth(e), r += _r(t[0]), r += " Z", this.fillSprite.path = r); } else this.fillSprite.path = "", this.strokeSprite.path = ""; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e); var i = this.strokeSprite; ne(e, i.properties, va), i.events.copyFrom(e.strokeSprite.events), i.fillOpacity = 0; var n = this.fillSprite; ne(e, n.properties, va), n.events.copyFrom(e.fillSprite.events), n.strokeOpacity = 0; }, e; }(_a); Fs.registeredClasses.LineSeriesSegment = fh; var gh = function (t) { function e() { var e = t.call(this) || this; return e.className = "LineSeriesDataItem", e; } return n(e, t), e; }(hh), yh = function (t) { function e() { var e = t.call(this) || this; return e.minDistance = .5, e.segments = new Hs(e.createSegment()), e.segments.template.applyOnClones = !0, e._disposers.push(new Bs(e.segments)), e._disposers.push(e.segments.template), e._segmentsIterator = new Ss(e.segments, function () { return e.segments.create(); }), e._segmentsIterator.createNewItems = !0, e.className = "LineSeries", e.strokeOpacity = 1, e.fillOpacity = 0, e.connect = !0, e.tensionX = 1, e.tensionY = 1, e.autoGapCount = 1.1, e.segmentsContainer = e.mainContainer.createChild(_a), e.segmentsContainer.isMeasured = !1, e.bulletsContainer.toFront(), e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Line Series")); }, e.prototype.createSegment = function () { return new fh(); }, e.prototype.createDataItem = function () { return new gh(); }, e.prototype.setInitialWorkingValues = function (t) { var e = this._yAxis.get(), i = this._xAxis.get(); if (this.appeared && this.visible) { var n = this.dataItems.getIndex(t.index - 1); if (t.component = this, this.baseAxis == i && e instanceof eh) { var r = e.minZoomed; n && (r = n.values.valueY.workingValue), t.setWorkingValue("valueY", r, 0), t.setWorkingValue("valueY", t.values.valueY.value), i instanceof rh && (t.setWorkingLocation("dateX", t.locations.dateX - 1, 0), t.setWorkingLocation("dateX", t.locations.dateX)); } if (this.baseAxis == e && i instanceof eh) { var s = i.minZoomed; n && (s = n.values.valueX.workingValue), t.setWorkingValue("valueX", s, 0), t.setWorkingValue("valueX", t.values.valueX.value), e instanceof rh && (t.setWorkingLocation("dateY", t.locations.dateX - 1, 0), t.setWorkingLocation("dateY", t.locations.dateY)); } } else this.baseAxis == i && e instanceof eh && (i instanceof rh && t.setWorkingLocation("dateX", t.locations.dateX), i instanceof lh && t.setWorkingLocation("categoryX", t.locations.categoryX)), this.baseAxis == e && i instanceof eh && (e instanceof rh && t.setWorkingLocation("dateY", t.locations.dateY), e instanceof lh && t.setWorkingLocation("categoryY", t.locations.categoryY)); }, e.prototype.updateLegendValue = function (e, i) { t.prototype.updateLegendValue.call(this, e, i), e && e.segment && (this.tooltipColorSource = e.segment); }, e.prototype.validate = function () { var e = this; t.prototype.validate.call(this), this._segmentsIterator.reset(), this.openSegmentWrapper(this._adjustedStartIndex), pe(this.axisRanges.iterator(), function (t) { e.openSegmentWrapper(e._adjustedStartIndex, t); }), pe(this._segmentsIterator.iterator(), function (t) { t.__disabled = !0; }); }, e.prototype.sliceData = function () { for (var t = this.startIndex, e = this.endIndex, i = this.startIndex - 1; i >= 0; i--) if ((r = this.dataItems.getIndex(i)) && r.hasValue(this._xValueFields) && r.hasValue(this._yValueFields)) { t = i; break; } this._adjustedStartIndex = this.findAdjustedIndex(t, ["stroke", "strokeWidth", "strokeDasharray", "strokeOpacity", "fill", "fillOpacity", "opacity"]), i = this.endIndex; for (var n = this.dataItems.length; i < n; i++) { var r; if ((r = this.dataItems.getIndex(i)) && r.hasValue(this._xValueFields) && r.hasValue(this._yValueFields)) { e = i + 1; break; } } this._workingStartIndex = t, this._workingEndIndex = e; }, e.prototype.findAdjustedIndex = function (t, e) { var i = this, n = this.propertyFields, r = t; return mt(e, function (e) { if (S(n[e])) for (var s = r; s >= 0; s--) { var o = i.dataItems.getIndex(s); if (o && S(o.properties[e])) { t > s && (t = s); break; } } }), t; }, e.prototype.openSegmentWrapper = function (t, e) { var i = { index: t, axisRange: e }; do { i = this.openSegment(i.index, i.axisRange); } while (i); }, e.prototype.openSegment = function (t, e) { var i = !1, n = []; t = Math.min(t, this.dataItems.length); var r, s = Math.min(this._workingEndIndex, this.dataItems.length); this._workingEndIndex = Math.min(this._workingEndIndex, this.dataItems.length); var o = !1, a = this._segmentsIterator.getFirst(); a.__disabled = !1, e ? (a.parent = e.contents, ne(e.contents, a, va)) : (ne(this, a, va), a.filters.clear(), a.parent = this.segmentsContainer); for (var l = this.connect, h = !1, u = t; u < s; u++) { var p = this.dataItems.getIndex(u); if (p.segment = a, p.hasProperties && (u == t ? this.updateSegmentProperties(p.properties, a) : o = this.updateSegmentProperties(p.properties, a, !0)), p.hasValue(this._xValueFields) && p.hasValue(this._yValueFields)) this.addPoints(n, p, this.xField, this.yField), h = !0;else { if (u == t) continue; if (!l && h) { r = u; break; } } if (r = u, this.baseAxis instanceof rh) { var c = this.dataItems.getIndex(u + 1); if (c && this.baseAxis.makeGap(c, p)) { i = !0; break; } } if (o) break; } return this.closeSegment(a, n, t, r, e, i); }, e.prototype.addPoints = function (t, e, i, n, r) { var s = this.getPoint(e, i, n, e.workingLocations[i], e.workingLocations[n]); r || (e.point = s), t.push(s); }, e.prototype.closeSegment = function (t, e, i, n, r, s) { var o = []; if (this.dataFields[this._xOpenField] || this.dataFields[this._yOpenField] || this.stacked) for (var a = n; a >= i; a--) { var l = this.dataItems.getIndex(a); l.hasValue(this._xValueFields) && l.hasValue(this._yValueFields) && this.addPoints(o, l, this.xOpenField, this.yOpenField, !0); } else { var h = this.baseAxis, u = e.length, p = this.xAxis, c = this.yAxis; u > 0 && (h == p ? (o.push({ x: e[u - 1].x, y: c.basePoint.y }), o.push({ x: e[0].x, y: c.basePoint.y })) : (o.push({ x: p.basePoint.x, y: e[u - 1].y }), o.push({ x: p.basePoint.x, y: e[0].y }))); } return this.drawSegment(t, e, o), s && n++, n < this._workingEndIndex - 1 ? { index: n, axisRange: r } : null; }, e.prototype.drawSegment = function (t, e, i) { t.drawSegment(e, i, this.tensionX, this.tensionY); }, e.prototype.updateSegmentProperties = function (t, e, i) { var n = !1; return Qt(t, function (t, r) { if (S(r)) { var s = e[t], o = void 0; s && (o = s.toString ? s.toString() : s); var a = void 0; r && (a = r.toString ? r.toString() : r), s == r || null != o && null != a && o == a || (i || (e[t] = r), n = !0); } }), n; }, Object.defineProperty(e.prototype, "connect", { get: function get() { return this.getPropertyValue("connect"); }, set: function set(t) { this.setPropertyValue("connect", t) && this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tensionX", { get: function get() { return this.getPropertyValue("tensionX"); }, set: function set(t) { this.setPropertyValue("tensionX", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tensionY", { get: function get() { return this.getPropertyValue("tensionY"); }, set: function set(t) { this.setPropertyValue("tensionY", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.createLegendMarker = function (t) { var e = this, i = t.pixelWidth, n = t.pixelHeight; t.disposeChildren(); var r = t.createChild(Na); if (r.shouldClone = !1, ne(this, r, va), r.x2 = i, r.y = n / 2, r.visible = !0, this.fillOpacity > 0) { var s = t.createChild(xa); ne(this, s, va), s.width = i, s.height = n, s.y = 0, s.strokeOpacity = 0, s.visible = !0, r.y = 0; } var o = t.dataItem; o.color = this.stroke, o.colorOrig = this.fill, ue(this.bullets.iterator(), function (r) { if (r instanceof Vl && !r.copyToLegendMarker) return !1; var s = !1; if (r instanceof _a && pe(r.children.iterator(), function (t) { if (t instanceof Ma) return s = !0, !0; }), !s) { var o = r.clone(); return o.parent = t, o.isMeasured = !0, o.tooltipText = void 0, o.x = i / 2, e.fillOpacity > 0 ? o.y = 0 : o.y = n / 2, o.visible = !0, S(o.fill) || (o.fill = e.fill), S(o.stroke) || (o.stroke = e.stroke), !1; } }); }, e.prototype.disposeData = function () { t.prototype.disposeData.call(this), this.segments.clear(); }, Object.defineProperty(e.prototype, "autoGapCount", { get: function get() { return this.getPropertyValue("autoGapCount"); }, set: function set(t) { this.setPropertyValue("autoGapCount", t, !0); }, enumerable: !0, configurable: !0 }), e; }(uh); Fs.registeredClasses.LineSeries = yh, Fs.registeredClasses.LineSeriesDataItem = gh; var mh = function (t) { function e() { var e = t.call(this) || this; return e.className = "RadarSeriesDataItem", e.setLocation("dateX", 0, 0), e.setLocation("dateY", 0, 0), e.setLocation("categoryX", 0, 0), e.setLocation("categoryY", 0, 0), e.applyTheme(), e; } return n(e, t), e; }(gh), vh = function (t) { function e() { var e = t.call(this) || this; return e.className = "RadarSeries", e.connectEnds = !0, e.applyTheme(), e; } return n(e, t), e.prototype.validate = function () { this.chart.invalid && this.chart.validate(), t.prototype.validate.call(this); }, e.prototype.createDataItem = function () { return new mh(); }, e.prototype.getPoint = function (t, e, i, n, r, s, o) { s || (s = "valueX"), o || (o = "valueY"); var a = K({ x: this.yAxis.getX(t, i, r, o), y: this.yAxis.getY(t, i, r, o) }); 0 == a && (a = 1e-5); var l = this.xAxis.getAngle(t, e, n, s), h = this.chart.startAngle, u = this.chart.endAngle; return l < h || l > u ? void 0 : { x: a * H(l), y: a * B(l) }; }, e.prototype.addPoints = function (t, e, i, n, r) { var s = this.getPoint(e, i, n, e.locations[i], e.locations[n]); s && t.push(s); }, e.prototype.getMaskPath = function () { var t = this.yAxis.renderer; return Sr(t.startAngle, t.endAngle - t.startAngle, t.pixelRadius, t.pixelInnerRadius); }, e.prototype.drawSegment = function (e, i, n) { var r = this.yAxis.renderer; this.connectEnds && 360 == Math.abs(r.endAngle - r.startAngle) && (this.dataFields[this._xOpenField] || this.dataFields[this._yOpenField] || this.stacked) && (i.push(i[0]), n.length > 0 && n.unshift(n[n.length - 1])), t.prototype.drawSegment.call(this, e, i, n); }, Object.defineProperty(e.prototype, "connectEnds", { get: function get() { return this.getPropertyValue("connectEnds"); }, set: function set(t) { this.setPropertyValue("connectEnds", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.positionBulletReal = function (t, e, i) { var n = this.xAxis, r = this.yAxis; (e < n.start || e > n.end || i < r.start || i > r.end) && (t.visible = !1), t.moveTo(this.xAxis.renderer.positionToPoint(e, i)); }, e; }(yh); Fs.registeredClasses.RadarSeries = vh, Fs.registeredClasses.RadarSeriesDataItem = mh; var bh = function (t) { function e(e) { var i = t.call(this, e) || this; return i.className = "AxisFillCircular", i.element = i.paper.add("path"), i.radius = h(100), i.applyTheme(), i; } return n(e, t), e.prototype.draw = function () { if (t.prototype.draw.call(this), !this.__disabled && !this.disabled && this.axis) { var e = this.axis.renderer; this.fillPath = e.getPositionRangePath(this.startPosition, this.endPosition, this.radius, S(this.innerRadius) ? this.innerRadius : e.innerRadius, this.cornerRadius), this.path = this.fillPath; } }, Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cornerRadius", { get: function get() { return this.getPropertyValue("cornerRadius"); }, set: function set(t) { this.setPropertyValue("cornerRadius", t, !0); }, enumerable: !0, configurable: !0 }), e; }(zl); Fs.registeredClasses.AxisFillCircular = bh; var xh = function (t) { function e() { var e = t.call(this) || this; return e.className = "GridCircular", e.pixelPerfect = !1, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), e; }(Ul); Fs.registeredClasses.GridCircular = xh; var _h = function (t) { function e() { var e = t.call(this) || this; return e.fdx = 0, e.fdy = 0, e.className = "AxisLabelCircular", e.padding(0, 0, 0, 0), e.location = .5, e.radius = 0, e.isMeasured = !1, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "relativeRotation", { get: function get() { return this.getPropertyValue("relativeRotation"); }, set: function set(t) { if (this.setPropertyValue("relativeRotation", t, !0), !S(t)) { this.rotation = void 0; var e = this.dataItem; e && e.component && e.component.invalidateDataItems(); } }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bent", { get: function get() { return this.getPropertyValue("bent"); }, set: function set(t) { this.setPropertyValue("bent", t, !0), this.setPropertyValue("wrap", !1), this.setPropertyValue("horizontalCenter", "none"), this.setPropertyValue("verticalCenter", "none"), t && (this.textAlign = "middle"); }, enumerable: !0, configurable: !0 }), e.prototype.pixelRadius = function (t) { var e = 1; return this.inside && (e = -1), hi(this.radius, t) * e; }, e.prototype.pixelRadiusY = function (t, e) { var i = 1; this.inside && (i = -1); var n = this.radius; return A(n) ? hi(n *= e / t, t) * i : hi(n, e) * i; }, e.prototype.fixPosition = function (t, e, i, n, r) { A(i) || (i = e), A(n) || (n = 0), A(r) || (r = 0); var s = { x: e * H(t), y: i * B(t) }; this.invalid && this.validate(); var o = !1, a = this.radius; a instanceof hs && a.value < 0 ? o = !0 : a < 0 && (o = !0); var l = this.relativeRotation, h = this.pixelRadius(e); if (this.bent) { var u = { x: e * H(t + 180), y: i * B(t + 180) }; return this.path = xr(u) + Or(t + 180, 360, e + h, i + h * i / e), void (this.locationOnPath = .5); } if (A(l)) { this.horizontalCenter = "none", this.verticalCenter = "none", t = ht(t, -180, 180); var p = this.bbox.width, c = this.bbox.height, d = this.pixelPaddingBottom, f = this.pixelPaddingTop, g = this.pixelPaddingLeft, y = this.pixelPaddingRight; t > 90 || t < -90 ? -90 == l && (l = 90, p = 0) : (-90 == l && (c = -c), 90 == l && (l = -90, p = -g - y, c = -c - f - d)), this.rotation = l + t + 90; var m = B(l) / 2, v = H(l) / 2, b = this.rotation; this.dx = c * m * B(b) - p * v * H(b), this.dy = -c * m * H(b) - p * v * B(b), this.inside ? t > 90 || t < -90 ? h -= (d + f) * H(l) + (g + y) * B(l) : h += (d + this.bbox.height + f) * H(l) + (g + y + this.bbox.width) * B(l) : h += (c + d + f) * H(l) + (p + g + y) * B(l), s.x += H(t) * h, s.y += B(t) * h * i / e; } else this.horizontalCenter = "middle", this.verticalCenter = "middle", o ? (this.dx = 0, this.dy = 0, s.x = (e + h) * H(t), s.y = (i + h * i / e) * B(t)) : (this.dy = this._measuredHeight / 2 * B(t), this.dx = this._measuredWidth / 2 * H(t), s.x += H(t) * h, s.y += B(t) * h * i / e); s.x += n, s.y += r, this.fdx = this.dx, this.fdy = this.dy, this.moveTo(s); }, e; }(Gl); Fs.registeredClasses.AxisLabelCircular = _h; var Ph = function (t) { function e() { var e = t.call(this) || this; return e.pixelRadiusReal = 0, e.layout = "none", e.className = "AxisRendererCircular", e.isMeasured = !1, e.startAngle = -90, e.endAngle = 270, e.useChartAngles = !0, e.radius = h(100), e.isMeasured = !1, e.grid.template.location = 0, e.labels.template.location = 0, e.labels.template.radius = 15, e.ticks.template.location = 0, e.ticks.template.pixelPerfect = !1, e.tooltipLocation = 0, e.line.strokeOpacity = 0, e.applyTheme(), e; } return n(e, t), e.prototype.setAxis = function (e) { var i = this; t.prototype.setAxis.call(this, e), e.isMeasured = !1; var n = e.tooltip; n.adapter.add("dx", function (t, e) { var n = Hi({ x: e.pixelX, y: e.pixelY }, i); return i.pixelRadius * Math.cos(Math.atan2(n.y, n.x)) - n.x; }), n.adapter.add("dy", function (t, e) { var n = Hi({ x: e.pixelX, y: e.pixelY }, i); return i.pixelRadius * Math.sin(Math.atan2(n.y, n.x)) - n.y; }); }, e.prototype.validate = function () { this.chart && this.chart.invalid && this.chart.validate(), t.prototype.validate.call(this); }, Object.defineProperty(e.prototype, "axisLength", { get: function get() { return 2 * Math.PI * this.pixelRadius; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !1, !1, 10, !1) && this.axis && this.axis.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelRadius", { get: function get() { return ui(this.radius, this.pixelRadiusReal) || 0; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !1, !1, 10, !1) && this.axis && this.axis.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "useChartAngles", { get: function get() { return this.getPropertyValue("useChartAngles"); }, set: function set(t) { this.setPropertyValue("useChartAngles", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelInnerRadius", { get: function get() { return ui(this.innerRadius, this.pixelRadiusReal) || 0; }, enumerable: !0, configurable: !0 }), e.prototype.positionToPoint = function (t, e) { A(e) || (e = 1); var i = this.positionToCoordinate(t), n = this.startAngle + (this.endAngle - this.startAngle) * i / this.axisLength, r = this.pixelRadius, s = this.pixelInnerRadius; return { x: H(n) * s + (r - s) * H(n) * e, y: B(n) * s + (r - s) * B(n) * e }; }, e.prototype.positionToAngle = function (t) { var e = this.axis, i = (this.endAngle - this.startAngle) / (e.end - e.start); return j(e.renderer.inversed ? this.startAngle + (e.end - t) * i : this.startAngle + (t - e.start) * i, 3); }, e.prototype.updateAxisLine = function () { var t = this.pixelRadius, e = this.startAngle, i = this.endAngle - e; this.line.path = xr({ x: t * H(e), y: t * B(e) }) + Or(e, i, t, t); }, e.prototype.updateGridElement = function (t, e, i) { e += (i - e) * t.location; var n = this.positionToPoint(e); if (A(n.x) && A(n.y) && t.element) { var r = ds * Math.atan2(n.y, n.x), s = ui(S(t.radius) ? t.radius : h(100), this.pixelRadius), o = ui(t.innerRadius, this.pixelRadius); t.zIndex = 0; var a = ui(A(o) ? o : this.innerRadius, this.pixelRadius, !0); t.path = xr({ x: a * H(r), y: a * B(r) }) + _r({ x: s * H(r), y: s * B(r) }); } this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateTickElement = function (t, e, i) { e += (i - e) * t.location; var n = this.positionToPoint(e); if (t.element) { var r = this.pixelRadius, s = ds * Math.atan2(n.y, n.x), o = t.length; t.inside && (o = -o), t.zIndex = 1, t.path = xr({ x: r * H(s), y: r * B(s) }) + _r({ x: (r + o) * H(s), y: (r + o) * B(s) }); } this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateBullet = function (t, e, i) { var n = .5; t instanceof $l && (n = t.location), e += (i - e) * n; var r = this.positionToPoint(e), s = this.pixelRadius, o = ds * Math.atan2(r.y, r.x); r = { x: s * H(o), y: s * B(o) }, this.positionItem(t, r), this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateLabelElement = function (t, e, i, n) { S(n) || (n = t.location), e += (i - e) * n, t.fixPosition(this.positionToAngle(e), this.pixelRadius), t.zIndex = 2, this.toggleVisibility(t, e, this.minLabelPosition, this.maxLabelPosition); }, e.prototype.fitsToBounds = function (t) { return !0; }, Object.defineProperty(e.prototype, "startAngle", { get: function get() { return this.getPropertyValue("startAngle"); }, set: function set(t) { this.setPropertyValue("startAngle", t) && (this.invalidateAxisItems(), this.axis && this.axis.invalidateSeries()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endAngle", { get: function get() { return this.getPropertyValue("endAngle"); }, set: function set(t) { this.setPropertyValue("endAngle", t) && (this.invalidateAxisItems(), this.axis && this.axis.invalidateSeries()); }, enumerable: !0, configurable: !0 }), e.prototype.getPositionRangePath = function (t, e, i, n, r) { var s = ""; if (A(t) && A(e)) { S(i) || (i = this.radius), t = W(t, this.axis.start), (e = X(e, this.axis.end)) < t && (e = t); var o = ui(i, this.pixelRadius), a = ui(n, this.pixelRadius, !0), l = this.positionToAngle(t); s = Sr(l, this.positionToAngle(e) - l, o, a, o, r); } return s; }, e.prototype.createGrid = function () { return new xh(); }, e.prototype.createFill = function (t) { return new bh(t); }, e.prototype.createLabel = function () { return new _h(); }, e.prototype.pointToPosition = function (t) { var e = ht(Q(t), this.startAngle, this.endAngle); return this.coordinateToPosition((e - this.startAngle) / 360 * this.axisLength); }, e; }(ql); Fs.registeredClasses.AxisRendererCircular = Ph; var wh = function (t) { function e() { var e = t.call(this) || this; return e._chart = new ys(), e.pixelRadiusReal = 0, e.className = "AxisRendererRadial", e.isMeasured = !1, e.startAngle = -90, e.endAngle = 270, e.minGridDistance = 30, e.gridType = "circles", e.axisAngle = -90, e.isMeasured = !1, e.layout = "none", e.radius = h(100), e.line.strokeOpacity = 0, e.labels.template.horizontalCenter = "middle", e._disposers.push(e._chart), e.applyTheme(), e; } return n(e, t), e.prototype.validate = function () { this.chart && this.chart.invalid && this.chart.validate(), t.prototype.validate.call(this); }, Object.defineProperty(e.prototype, "axisLength", { get: function get() { return this.pixelRadius - this.pixelInnerRadius; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !1, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelRadius", { get: function get() { return ui(this.radius, this.pixelRadiusReal) || 0; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !1, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelInnerRadius", { get: function get() { return ui(this.innerRadius, this.pixelRadiusReal) || 0; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "chart", { get: function get() { return this._chart.get(); }, set: function set(t) { this._chart.set(t, null); }, enumerable: !0, configurable: !0 }), e.prototype.positionToPoint = function (t, e) { var i = R(this.positionToCoordinate(t), 0, 1 / 0); return { x: i * H(this.axisAngle), y: i * B(this.axisAngle) }; }, e.prototype.updateAxisLine = function () { this.line.path = xr({ x: this.pixelInnerRadius * H(this.axisAngle), y: this.pixelInnerRadius * B(this.axisAngle) }) + _r({ x: this.pixelRadius * H(this.axisAngle), y: this.pixelRadius * B(this.axisAngle) }); var t = this.axis.title; t.valign = "none", t.horizontalCenter = "middle", t.verticalCenter = "bottom", t.y = -this.axisLength / 2; var e = 90; this.opposite ? this.inside || (e = -90) : this.inside && (e = -90), t.rotation = e; }, e.prototype.updateGridElement = function (t, e, i) { e += (i - e) * t.location; var n, r = K(this.positionToPoint(e)), s = this.startAngle, o = this.endAngle; if (A(r) && t.element) { var a = this.chart, l = a.xAxes.getIndex(0), h = a.dataItems.length, u = a.series.getIndex(0); if ("polygons" == this.gridType && h > 0 && u && l && l instanceof lh) { var p = l.renderer.grid.template.location, c = l.getAngle(u.dataItems.getIndex(0), "categoryX", p); n = xr({ x: r * H(c), y: r * B(c) }); for (var d = a.dataItems.length, f = 1; f < d; f++) n += _r({ x: r * H(c = l.getAngle(u.dataItems.getIndex(f), "categoryX", p)), y: r * B(c) }); n += _r({ x: r * H(c = l.getAngle(u.dataItems.getIndex(d - 1), "categoryX", l.renderer.cellEndLocation)), y: r * B(c) }); } else n = xr({ x: r * H(s), y: r * B(s) }) + Or(s, o - s, r, r); t.path = n; } this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateLabelElement = function (t, e, i, n) { S(n) || (n = t.location), e += (i - e) * n; var r = this.positionToPoint(e); this.positionItem(t, r), this.toggleVisibility(t, e, this.minLabelPosition, this.maxLabelPosition); }, e.prototype.updateBaseGridElement = function () {}, e.prototype.fitsToBounds = function (t) { return !0; }, Object.defineProperty(e.prototype, "startAngle", { get: function get() { return this.getPropertyValue("startAngle"); }, set: function set(t) { this.setPropertyValue("startAngle", t) && this.invalidateAxisItems(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endAngle", { get: function get() { return this.getPropertyValue("endAngle"); }, set: function set(t) { this.setPropertyValue("endAngle", t) && this.invalidateAxisItems(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "axisAngle", { get: function get() { return this.getPropertyValue("axisAngle"); }, set: function set(t) { this.setPropertyValue("axisAngle", lt(t)), this.invalidateAxisItems(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "gridType", { get: function get() { return this.chart.xAxes.getIndex(0) instanceof lh ? this.getPropertyValue("gridType") : "circles"; }, set: function set(t) { this.setPropertyValue("gridType", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.getPositionRangePath = function (t, e) { var i, n = this.pixelInnerRadius, r = this.axisLength + n, s = R(this.positionToCoordinate(t), n, r), o = R(this.positionToCoordinate(e), n, r), a = this.startAngle, l = this.endAngle - a, h = this.chart, u = h.xAxes.getIndex(0), p = h.dataItems.length, c = h.series.getIndex(0); if ("polygons" == this.gridType && p > 0 && c && u && u instanceof lh) { var d = u.renderer.grid.template.location, f = u.getAngle(c.dataItems.getIndex(0), "categoryX", d); i = xr({ x: o * H(f), y: o * B(f) }); for (var g = h.dataItems.length, y = 1; y < g; y++) i += _r({ x: o * H(f = u.getAngle(c.dataItems.getIndex(y), "categoryX", d)), y: o * B(f) }); for (i += _r({ x: o * H(f = u.getAngle(c.dataItems.getIndex(g - 1), "categoryX", u.renderer.cellEndLocation)), y: o * B(f) }), i += xr({ x: s * H(f), y: s * B(f) }), y = g - 1; y >= 0; y--) i += _r({ x: s * H(f = u.getAngle(c.dataItems.getIndex(y), "categoryX", d)), y: s * B(f) }); } else i = Sr(a, l, o, s); return i; }, e.prototype.updateBreakElement = function (t) { var e = t.startLine, i = t.endLine, n = t.fillShape, r = t.startPoint, s = t.endPoint; e.radius = Math.abs(r.y), i.radius = Math.abs(s.y), n.radius = Math.abs(s.y), n.innerRadius = Math.abs(r.y); }, e.prototype.createBreakSprites = function (t) { t.startLine = new al(), t.endLine = new al(), t.fillShape = new al(); }, e.prototype.updateTooltip = function () { if (this.axis) { var t = this.axisAngle; t < 0 && (t += 360); var e = "vertical"; (t > 45 && t < 135 || t > 225 && t < 315) && (e = "horizontal"), this.axis.updateTooltip(e, { x: -4e3, y: -4e3, width: 8e3, height: 8e3 }); } }, e.prototype.updateTickElement = function (t, e) { var i = this.positionToPoint(e); if (t.element) { var n = lt(this.axisAngle + 90); n / 90 != Math.round(n / 90) ? t.pixelPerfect = !1 : t.pixelPerfect = !0; var r = -t.length; t.inside && (r *= -1), t.path = xr({ x: 0, y: 0 }) + _r({ x: r * H(n), y: r * B(n) }); } this.positionItem(t, i), this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateBullet = function (t, e, i) { var n = .5; t instanceof $l && (n = t.location), e += (i - e) * n; var r = this.positionToPoint(e); this.positionItem(t, r), this.toggleVisibility(t, e, 0, 1); }, e.prototype.positionToCoordinate = function (t) { var e = this.axis, i = e.axisFullLength, n = this.pixelInnerRadius; return j(e.renderer.inversed ? (e.end - t) * i + n : (t - e.start) * i + n, 1); }, e.prototype.pointToPosition = function (t) { var e = K(t) - this.pixelInnerRadius; return this.coordinateToPosition(e); }, e; }(Jl); Fs.registeredClasses.AxisRendererRadial = wh; var Ch = function (t) { function e() { var e = t.call(this) || this; return e.className = "RadarChartDataItem", e.applyTheme(), e; } return n(e, t), e; }(ch), Oh = function (t) { function e() { var e = t.call(this) || this; e._axisRendererX = Ph, e._axisRendererY = wh, e.innerRadiusModifyer = 1, e.className = "RadarChart", e.startAngle = -90, e.endAngle = 270, e.radius = h(80), e.innerRadius = 0; var i = e.plotContainer.createChild(_a); return i.shouldClone = !1, i.layout = "absolute", i.align = "center", i.valign = "middle", e.seriesContainer.parent = i, e.radarContainer = i, e.bulletsContainer.parent = i, e.axisBulletsContainer = i, e._cursorContainer = i, e._bulletMask = i.createChild(Ea), e._bulletMask.shouldClone = !1, e._bulletMask.element = e.paper.add("path"), e._bulletMask.opacity = 0, e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Radar chart")); }, e.prototype.processAxis = function (e) { t.prototype.processAxis.call(this, e); var i = e.renderer; i.gridContainer.parent = i, i.breakContainer.parent = i, e.parent = this.radarContainer, i.toBack(); }, e.prototype.handleXAxisRangeChange = function () { t.prototype.handleXAxisRangeChange.call(this), pe(this.yAxes.iterator(), function (t) { t.invalidate(); }); }, e.prototype.handleYAxisRangeChange = function () { t.prototype.handleYAxisRangeChange.call(this), pe(this.xAxes.iterator(), function (t) { t.invalidate(); }); }, e.prototype.processConfig = function (e) { if (e && (S(e.cursor) && !S(e.cursor.type) && (e.cursor.type = "RadarCursor"), S(e.series) && F(e.series))) for (var i = 0, n = e.series.length; i < n; i++) e.series[i].type = e.series[i].type || "RadarSeries"; t.prototype.processConfig.call(this, e); }, e.prototype.beforeDraw = function () { t.prototype.beforeDraw.call(this); var e = this.plotContainer, i = ut(this.startAngle, this.endAngle, 1), n = { x: 0, y: 0, width: 0, height: 0 }, r = e.innerWidth / i.width, s = e.innerHeight / i.height, o = this.innerRadius; if (o instanceof hs) { var a = o.value, l = Math.min(r, s); a = Math.max(l * a, l - Math.min(e.innerHeight, e.innerWidth)) / l, n = ut(this.startAngle, this.endAngle, a), this.innerRadiusModifyer = a / o.value, o = h(100 * a); } i = it([i, n]); var u = Math.min(e.innerWidth / i.width, e.innerHeight / i.height), p = 2 * ui(this.radius, u) || 0, c = p / 2, d = this.startAngle, f = this.endAngle; this._pixelInnerRadius = ui(o, c), this._bulletMask.path = Sr(d, f - d, c, this._pixelInnerRadius), pe(this.xAxes.iterator(), function (t) { t.renderer.useChartAngles && (t.renderer.startAngle = d, t.renderer.endAngle = f), t.width = p, t.height = p, t.renderer.pixelRadiusReal = c, t.renderer.innerRadius = o; }), pe(this.yAxes.iterator(), function (t) { t.renderer.startAngle = d, t.renderer.endAngle = f, t.width = p, t.height = p, t.renderer.pixelRadiusReal = c, t.renderer.innerRadius = o; }); var g = this.cursor; g && (g.width = p, g.height = p, g.startAngle = d, g.endAngle = f), this.radarContainer.definedBBox = { x: c * i.x, y: c * i.y, width: c * i.width, height: c * i.height }, this.radarContainer.validatePosition(); }, e.prototype.createSeries = function () { return new vh(); }, Object.defineProperty(e.prototype, "startAngle", { get: function get() { return this.getPropertyValue("startAngle"); }, set: function set(t) { this.setPropertyValue("startAngle", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endAngle", { get: function get() { return this.getPropertyValue("endAngle"); }, set: function set(t) { this.setPropertyValue("endAngle", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelInnerRadius", { get: function get() { return this._pixelInnerRadius; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), e.prototype.updateXAxis = function (t) { t && t.processRenderer(); }, e.prototype.updateYAxis = function (t) { t && t.processRenderer(); }, e; }(dh); Fs.registeredClasses.RadarChart = Oh; var Sh = function (t) { function e() { var e = t.call(this) || this; e._axis = new ys(), e.className = "ClockHand"; var i = new ta(); e.fill = i.getFor("alternativeBackground"), e.stroke = e.fill; var n = new Ea(); n.radius = 5, e.pin = n, e.isMeasured = !1, e.startWidth = 5, e.endWidth = 1, e.width = h(100), e.height = h(100), e.radius = h(100), e.innerRadius = h(0); var r = new nl(); return e.hand = r, e._disposers.push(e._axis), e.applyTheme(), e; } return n(e, t), e.prototype.validate = function () { t.prototype.validate.call(this); var e = this.hand; e.width = this.pixelWidth; var i = Math.max(this.startWidth, this.endWidth); if (e.height = i, e.leftSide = h(this.startWidth / i * 100), e.rightSide = h(this.endWidth / i * 100), this.axis) { var n = this.axis.renderer, r = ui(this.innerRadius, n.pixelRadius), s = ui(this.radius, n.pixelRadius); e.x = r, e.y = -i / 2, e.width = s - r; } }, Object.defineProperty(e.prototype, "pin", { get: function get() { return this._pin; }, set: function set(t) { this._pin && this.removeDispose(this._pin), t && (this._pin = t, t.parent = this, this._disposers.push(t)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hand", { get: function get() { return this._hand; }, set: function set(t) { this._hand && this.removeDispose(this._hand), t && (this._hand = t, t.parent = this, this._disposers.push(t)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startWidth", { get: function get() { return this.getPropertyValue("startWidth"); }, set: function set(t) { this.setPropertyValue("startWidth", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endWidth", { get: function get() { return this.getPropertyValue("endWidth"); }, set: function set(t) { this.setPropertyValue("endWidth", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "rotationDirection", { get: function get() { return this.getPropertyValue("rotationDirection"); }, set: function set(t) { this.setPropertyValue("rotationDirection", t); }, enumerable: !0, configurable: !0 }), e.prototype.showValue = function (t, e, i) { if (this._value = t, null != t && (A(e) || (e = 0), this.axis)) { var n = this.axis.renderer.positionToAngle(this.axis.anyToPosition(t)), r = this.rotation; "clockWise" == this.rotationDirection && n < r && (this.rotation = r - 360), "counterClockWise" == this.rotationDirection && n > r && (this.rotation = r + 360), this.animate({ property: "rotation", to: n }, e, i); } }, Object.defineProperty(e.prototype, "value", { get: function get() { return this._value; }, set: function set(t) { this.showValue(t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "axis", { get: function get() { return this._axis.get(); }, set: function set(t) { if (this.axis != t && this._axis.set(t, new gs([t.events.on("datavalidated", this.updateValue, this, !1), t.events.on("datarangechanged", this.updateValue, this, !1), t.events.on("dataitemsvalidated", this.updateValue, this, !1), t.events.on("propertychanged", this.invalidate, this, !1)])), t) { var e = t.chart; e && (this.rotation = e.startAngle); } this.parent = t.renderer, this.zIndex = 5; }, enumerable: !0, configurable: !0 }), e.prototype.updateValue = function () { this.value = this.value; }, e.prototype.processConfig = function (e) { e && S(e.axis) && T(e.axis) && this.map.hasKey(e.axis) && (e.axis = this.map.getKey(e.axis)), t.prototype.processConfig.call(this, e); }, e; }(_a); Fs.registeredClasses.ClockHand = Sh; var Ih = function (t) { function e() { var e = t.call(this) || this; return e.className = "GaugeChartDataItem", e.applyTheme(), e; } return n(e, t), e; }(Ch), Dh = function (t) { function e() { var e = t.call(this) || this; return e.className = "GaugeChart", e.startAngle = 180, e.endAngle = 360, e.hands = new Hs(new Sh()), e.hands.events.on("inserted", e.processHand, e, !1), e._disposers.push(new Bs(e.hands)), e._disposers.push(e.hands.template), e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Gauge chart")); }, e.prototype.processHand = function (t) { var e = t.newValue; e.axis || (e.axis = this.xAxes.getIndex(0)); }, e.prototype.configOrder = function (e, i) { return e == i ? 0 : "hands" == e ? 1 : "hands" == i ? -1 : t.prototype.configOrder.call(this, e, i); }, e; }(Oh); Fs.registeredClasses.GaugeChart = Dh; var kh = function (t) { function e() { var e = t.call(this) || this; return e.className = "PercentSeriesDataItem", e.applyTheme(), e; } return n(e, t), e.prototype.uidAttr = function () { return this.slice.uidAttr(); }, e.prototype.hide = function (e, i, n, r) { return r || (r = ["value"]), t.prototype.hide.call(this, e, i, 0, r); }, e.prototype.setVisibility = function (e, i) { i || (e ? this.setWorkingValue("value", this.values.value.value, 0, 0) : this.setWorkingValue("value", 0, 0, 0)), t.prototype.setVisibility.call(this, e, i); }, e.prototype.show = function (e, i, n) { return n || (n = ["value"]), t.prototype.show.call(this, e, i, n); }, Object.defineProperty(e.prototype, "category", { get: function get() { return this.properties.category; }, set: function set(t) { this.setProperty("category", t); }, enumerable: !0, configurable: !0 }), e.prototype.createLegendMarker = function (t) { this.component.createLegendMarker(t, this); }, Object.defineProperty(e.prototype, "legendDataItem", { get: function get() { return this._legendDataItem; }, set: function set(t) { this._legendDataItem = t, t.label && (t.label.dataItem = this), t.valueLabel && (t.valueLabel.dataItem = this); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tick", { get: function get() { var t = this; if (!this._tick) { var e = this.component.ticks.create(); this._tick = e, this._disposers.push(e), e.parent = this.component.ticksContainer, this._disposers.push(new fs(function () { t.component && t.component.ticks.removeValue(e); })), this.addSprite(e), e.visible = this.visible; } return this._tick; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "label", { get: function get() { var t = this; if (!this._label) { var e = this.component.labels.create(); this._label = e, this._disposers.push(e), e.parent = this.component.labelsContainer, this._disposers.push(new fs(function () { t.component && t.component.labels.removeValue(e); })), this.addSprite(e), e.visible = this.visible; } return this._label; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "slice", { get: function get() { var t = this; if (!this._slice) { var e = this.component, i = e.slices.create(); this._slice = i, this._disposers.push(i), i.parent = e.slicesContainer, this._disposers.push(new fs(function () { e.slices.removeValue(i); })), this.addSprite(i), i.visible = this.visible, e.itemsFocusable() ? (i.role = "menuitem", i.focusable = !0) : (i.role = "listitem", i.focusable = !1), i.focusable && (i.events.on("focus", function (n) { i.readerTitle = e.populateString(e.itemReaderText, t); }, void 0, !1), i.events.on("blur", function (t) { i.readerTitle = ""; }, void 0, !1)), i.hoverable && (i.events.on("over", function (n) { i.readerTitle = e.populateString(e.itemReaderText, t); }, void 0, !1), i.events.on("out", function (t) { i.readerTitle = ""; }, void 0, !1)); } return this._slice; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hiddenInLegend", { get: function get() { return this.properties.hiddenInLegend; }, set: function set(t) { this.setProperty("hiddenInLegend", t); }, enumerable: !0, configurable: !0 }), e; }(Ll), Th = function (t) { function e() { var e = t.call(this) || this; e.className = "PercentSeries", e._addAllDataItems = !1, e.colors = new Sl(), e.colors.step = 1, e.isMeasured = !0, e.calculatePercent = !0; var i = e.createChild(_a); i.shouldClone = !1, i.isMeasured = !1, e.slicesContainer = i; var n = e.createChild(_a); n.shouldClone = !1, n.isMeasured = !1, n.layout = "none", e.ticksContainer = n; var r = e.createChild(_a); return r.shouldClone = !1, r.isMeasured = !1, r.layout = "none", e.labelsContainer = r, e.alignLabels = !1, e.bulletsContainer.toFront(), e.skipFocusThreshold = 50, e.defaultState.transitionEasing = bn, e.itemReaderText = "{category}: {value.percent.formatNumber('#.#')}%", e.applyTheme(), e; } return n(e, t), e.prototype.createSlice = function () { return new ba(); }, e.prototype.createTick = function () { return new Kl(); }, e.prototype.createLabel = function () { return new Ma(); }, Object.defineProperty(e.prototype, "slices", { get: function get() { if (!this._slices) { var t = this.createSlice(); t.applyOnClones = !0, this._disposers.push(t), this.initSlice(t), this._slices = new Hs(t), this._disposers.push(new Bs(this._slices)); } return this._slices; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "ticks", { get: function get() { if (!this._ticks) { var t = this.createTick(); t.applyOnClones = !0, this._disposers.push(t), this.initTick(t), this._ticks = new Hs(t), this._disposers.push(new Bs(this._ticks)); } return this._ticks; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "labels", { get: function get() { if (!this._labels) { var t = this.createLabel(); t.applyOnClones = !0, this._disposers.push(t), this.initLabel(t), this._labels = new Hs(t), this._disposers.push(new Bs(this._labels)); } return this._labels; }, enumerable: !0, configurable: !0 }), e.prototype.createDataItem = function () { return new kh(); }, e.prototype.initSlice = function (t) {}, e.prototype.initLabel = function (t) { t.text = "{category}: {value.percent.formatNumber('#.0')}%", t.isMeasured = !1, t.padding(5, 5, 5, 5); }, e.prototype.initTick = function (t) {}, e.prototype.validateDataItems = function () { this.colors.reset(), t.prototype.validateDataItems.call(this); }, e.prototype.validateDataElement = function (e) { var i = e.slice; i && (null == i.fill && (i.fill = this.colors.next()), null == i.stroke && (i.stroke = i.fill)), t.prototype.validateDataElement.call(this, e), i && e.bullets.each(function (t, e) { null == e.fill && (e.fill = i.fill), null == e.stroke && (e.stroke = i.stroke); }), this.updateLegendValue(e); }, e.prototype.validateData = function () { t.prototype.validateData.call(this), this.chart && this.chart.feedLegend(); }, e.prototype.arrangeLabels = function (t) { for (var e = 0, i = t.length; e < i; e++) { var n = t[e].label; if (n) { var r = n.measuredHeight; n.visible || (r = 0), n.pixelY - r / 2 < -this.maxHeight / 2 && (n.y = -this.maxHeight / 2 + r / 2); var s = this.getNextLabel(e + 1, t); n.invalid && n.validate(); var o = n.pixelY + r; s && s.y < o && (s.y = o); } } }, e.prototype.arrangeLabels2 = function (t) { for (var e = this.maxHeight / 2, i = t.length - 1; i >= 0; i--) { var n = t[i].label; if (n) { n.invalid && n.validate(); var r = n.measuredHeight; n.visible || (r = 0), i == t.length - 1 && (e += r / 2), n.pixelY + r > e && (n.y = e - r, e = n.y); } } }, e.prototype.getNextLabel = function (t, e) { if (e.length >= t) { var i = e[t]; if (i) return i.label && i.visible ? i.label : this.getNextLabel(t + 1, e); } }, Object.defineProperty(e.prototype, "colors", { get: function get() { return this.getPropertyValue("colors"); }, set: function set(t) { this.setPropertyValue("colors", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.createLegendMarker = function (t, e) { pe(t.children.iterator(), function (i) { var n = e.slice; i.defaultState.properties.fill = n.fill, i.defaultState.properties.stroke = n.stroke, i.defaultState.properties.fillOpacity = n.fillOpacity, i.defaultState.properties.strokeOpacity = n.strokeOpacity, i.fill = n.fill, i.stroke = n.stroke, i.fillOpacity = n.fillOpacity, i.strokeOpacity = n.strokeOpacity, null == i.fill && (i.__disabled = !0); var r = t.dataItem; r.color = n.fill, r.colorOrig = n.fill, i.addDisposer(n.events.on("propertychanged", function (t) { "fill" == t.property && (i.__disabled = !1, i.isActive || (i.fill = n.fill), i.defaultState.properties.fill = n.fill, r.color = n.fill, r.colorOrig = n.fill), "stroke" == t.property && (i.isActive || (i.stroke = n.stroke), i.defaultState.properties.stroke = n.stroke); }, void 0, !1)); }); }, e.prototype.handleSliceScale = function (t) { var e = this; pe(t.target.dataItem.bullets.iterator(), function (t) { var i = t[1]; e.positionBullet(i); }); }, e.prototype.handleSliceMove = function (t) {}, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.slices.template.copyFrom(e.slices.template), this.labels.template.copyFrom(e.labels.template), this.ticks.template.copyFrom(e.ticks.template); }, Object.defineProperty(e.prototype, "alignLabels", { get: function get() { return this.getPropertyValue("alignLabels"); }, set: function set(t) { this.setAlignLabels(t); }, enumerable: !0, configurable: !0 }), e.prototype.setAlignLabels = function (t) { this.setPropertyValue("alignLabels", t, !0); }, e.prototype.updateLegendValue = function (t) { if (t) { var e = t.legendDataItem, i = t.legendSettings; e && i && i && (i.labelText && (e.label.text = i.labelText), i.itemLabelText && (e.label.text = i.itemLabelText), i.valueText && (e.valueLabel.text = i.valueText), i.itemValueText && (e.valueLabel.text = i.itemValueText)); } }, e; }(El); Fs.registeredClasses.PercentSeries = Th, Fs.registeredClasses.PercentSeriesDataItem = kh, Ta.push({ relevant: Aa.maybeXS, state: function state(t, e) { if (t instanceof Th) { var i = t.states.create(e); return t.labels.template.states.create(e).properties.disabled = !0, t.ticks.template.states.create(e).properties.disabled = !0, i; } return null; } }); var Ah = function (t) { function e() { var e = t.call(this) || this; return e.className = "PercentChartDataItem", e.applyTheme(), e; } return n(e, t), e; }(Rl), Vh = function (t) { function e() { var e = t.call(this) || this; return e.className = "PercentChart", e.align = "none", e.valign = "none", e.chartContainer.minHeight = 50, e.chartContainer.minWidth = 50, e.applyTheme(), e; } return n(e, t), e.prototype.validateData = function () { t.prototype.validateData.call(this), this.feedLegend(); }, e.prototype.feedLegend = function () { var t = this.legend; if (t) { var e = []; pe(this.series.iterator(), function (t) { t.hiddenInLegend || pe(t.dataItems.iterator(), function (i) { i.hiddenInLegend || (e.push(i), i.legendSettings || (i.legendSettings = t.legendSettings)); }); }), t.data = e, t.dataFields.name = "category"; } }, e.prototype.createSeries = function () { return new Th(); }, e.prototype.setLegend = function (e) { t.prototype.setLegend.call(this, e), e && (e.labels.template.text = "{category}", e.valueLabels.template.text = "{value.percent.formatNumber('#.0')}%", e.itemContainers.template.events.on("over", function (t) { var e = t.target.dataItem.dataContext; e.visible && !e.isHiding && (e.slice.isHover = !0); }), e.itemContainers.template.events.on("out", function (t) { t.target.dataItem.dataContext.slice.isHover = !1; })); }, e; }(Bl); Fs.registeredClasses.PercentChart = Vh, Fs.registeredClasses.PercentChartDataItem = Ah; var Fh = function (t) { function e() { var e = t.call(this) || this; return e._label = new ys(), e._slice = new ys(), e.className = "PieTick", e.element = e.paper.add("polyline"), e._disposers.push(e._label), e._disposers.push(e._slice), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.slice, i = this.label, n = e.dataItem.component; if (e && e.radius > 0 && i && i.text) { var r = e.dx + e.slice.dx + e.pixelX + e.ix * e.radius * e.scale, s = e.dy + e.slice.dy + e.pixelY + e.iy * e.radiusY * e.scale, o = void 0, a = void 0, l = void 0, h = void 0; if (n.alignLabels) o = i.pixelX - this.length, a = i.pixelY, l = i.pixelX, h = a, "right" == i.horizontalCenter && (l = (o += 2 * this.length) - this.length);else { var u = i.pixelRadius(e.radius); l = o = r + u * e.ix, h = a = s + u * e.iy; } this.element.attr({ points: [r, s, o, a, l, h] }); } }, Object.defineProperty(e.prototype, "slice", { get: function get() { return this._slice.get(); }, set: function set(t) { this._slice.set(t, new gs([t.events.on("transformed", this.invalidate, this), t.events.on("validated", this.invalidate, this)])); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "label", { get: function get() { return this._label.get(); }, set: function set(t) { this._label.set(t, t.events.on("transformed", this.invalidate, this, !1)); }, enumerable: !0, configurable: !0 }), e; }(Kl); Fs.registeredClasses.PieTick = Fh; var Mh = function (t) { function e() { var e = t.call(this) || this; return e.className = "PieSeriesDataItem", e.values.radiusValue = {}, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "radiusValue", { get: function get() { return this.values.radiusValue.value; }, set: function set(t) { this.setValue("radiusValue", t); }, enumerable: !0, configurable: !0 }), e.prototype.hide = function (e, i, n, r) { return t.prototype.hide.call(this, e, i, 0, ["value", "radiusValue"]); }, e.prototype.show = function (e, i, n) { return t.prototype.show.call(this, e, i, ["value", "radiusValue"]); }, e; }(kh), jh = function (t) { function e() { var e = t.call(this) || this; return e.className = "PieSeries", e.alignLabels = !0, e.startAngle = -90, e.endAngle = 270, e.layout = "none", e.labels.template.radius = h(5), e.addDisposer(e.labels.template.events.on("enabled", e.invalidate, e, !1)), e.applyTheme(), e; } return n(e, t), e.prototype.createSlice = function () { return new Ka(); }, e.prototype.createTick = function () { return new Fh(); }, e.prototype.createLabel = function () { return new _h(); }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Pie Slice Series")); }, e.prototype.createDataItem = function () { return new Mh(); }, e.prototype.initSlice = function (t) { t.isMeasured = !1, t.defaultState.properties.scale = 1, t.observe("scale", this.handleSliceScale, this), t.observe(["dx", "dy", "x", "y", "shiftRadius"], this.handleSliceMove, this), t.tooltipText = "{category}: {value.percent.formatNumber('#.#')}% ({value.value})", t.states.create("hover").properties.scale = 1.05, t.defaultState.properties.shiftRadius = 0, t.togglable = !0, t.events.on("toggled", function (t) { t.target.hideTooltip(); }), t.states.create("active").properties.shiftRadius = .1; }, e.prototype.validate = function () { this._leftItems = [], this._rightItems = [], this._currentStartAngle = this.startAngle, this._arcRect = ut(this.startAngle, this.endAngle), this._maxRadiusPercent = 0; for (var e = this.startIndex; e < this.endIndex; e++) { var i = this.dataItems.getIndex(e).values.radiusValue.percent; i > this._maxRadiusPercent && (this._maxRadiusPercent = i); } t.prototype.validate.call(this), this.alignLabels && (this.startAngle > this.endAngle ? this._rightItems.reverse() : this._leftItems.reverse(), this._rightItems.sort(function (t, e) { var i = (t.slice.middleAngle + 360) % 360, n = (e.slice.middleAngle + 360) % 360; return i > 270 && (i -= 360), n > 270 && (n -= 360), i < n ? -1 : 1; }), this._leftItems.sort(function (t, e) { return (t.slice.middleAngle + 360) % 360 < (e.slice.middleAngle + 360) % 360 ? 1 : -1; }), this.arrangeLabels(this._rightItems), this.arrangeLabels2(this._rightItems), this.arrangeLabels(this._leftItems), this.arrangeLabels2(this._leftItems)); }, e.prototype.validateDataElement = function (e) { if (this.pixelRadius > 0) { var i = e.slice; if (i.radius = this.pixelRadius, A(e.radiusValue) && (i.radius = this.pixelInnerRadius + (this.pixelRadius - this.pixelInnerRadius) * e.values.radiusValue.percent / this._maxRadiusPercent), i.innerRadius instanceof hs || (i.innerRadius = this.pixelInnerRadius), i.startAngle = this._currentStartAngle, i.arc = e.values.value.percent * (this.endAngle - this.startAngle) / 100, !this.labels.template.disabled) { var n = e.label, r = e.tick; r.slice = i, r.label = n; var s = (i.middleAngle + 360) % 360, o = void 0; if (this.alignLabels) { var a = n.pixelRadius(i.radius), l = r.length + a; n.dx = 0, n.dy = 0, n.verticalCenter = "middle"; var h = this._arcRect; s >= 270 || s <= 90 ? (l += (h.width + h.x) * this.pixelRadius, n.horizontalCenter = "left", this._rightItems.push(e)) : (l -= h.x * this.pixelRadius, n.horizontalCenter = "right", this._leftItems.push(e), l *= -1); var u = i.radius + r.length + a; o = { x: l, y: i.iy * u }, n.moveTo(o); } else { var p = i.depth; A(p) || (p = 0), n.fixPosition(i.middleAngle, i.radius, i.radiusY, 0, -p); } } this._currentStartAngle += i.arc, t.prototype.validateDataElement.call(this, e); } }, Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !0, !1, 10, !1) && this.invalidateDataItems(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelRadius", { get: function get() { return this._pixelRadius; }, set: function set(t) { this._pixelRadius != t && (this._pixelRadius = t, this.invalidateDataItems()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelInnerRadius", { get: function get() { return this._pixelInnerRadius; }, set: function set(t) { this._pixelInnerRadius != t && (this._pixelInnerRadius = t, this.invalidateDataItems()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startAngle", { get: function get() { return this.getPropertyValue("startAngle"); }, set: function set(t) { this.setPropertyValue("startAngle", lt(t), !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endAngle", { get: function get() { return this.getPropertyValue("endAngle"); }, set: function set(t) { this.setPropertyValue("endAngle", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.positionBullet = function (e) { t.prototype.positionBullet.call(this, e); var i = e.dataItem.slice, n = e.locationX; A(n) || (n = .5); var r = e.locationY; A(r) || (r = 1); var s = i.startAngle + i.arc * n; e.x = r * i.radius * H(s), e.y = r * i.radiusY * B(s); }, e.prototype.handleSliceMove = function (t) { if (!this.alignLabels) { var e = t.target, i = e.dataItem; if (i) { var n = i.label; n && (n.dx = n.fdx + e.dx + e.pixelX, n.dy = n.fdy + e.dy + e.pixelY); } } }, Object.defineProperty(e.prototype, "bbox", { get: function get() { if (this.definedBBox) return this.definedBBox; var t = this.chart; return t ? ut(t.startAngle, t.endAngle, this.pixelRadius) : ut(this.startAngle, this.endAngle, this.pixelRadius); }, enumerable: !0, configurable: !0 }), e; }(Th); Fs.registeredClasses.PieSeries = jh, Fs.registeredClasses.PieSeriesDataItem = Mh; var Lh = function (t) { function e() { var e = t.call(this) || this; return e.className = "PieChartDataItem", e.applyTheme(), e; } return n(e, t), e; }(Ah), Eh = function (t) { function e() { var e = t.call(this) || this; e.className = "PieChart", e.innerRadius = 0, e.radius = h(80), e.align = "none", e.valign = "none", e.startAngle = -90, e.endAngle = 270; var i = e.seriesContainer; return i.isMeasured = !0, i.valign = "middle", i.align = "center", i.layout = "absolute", i.width = void 0, i.height = void 0, e.chartContainer.minHeight = 50, e.chartContainer.minWidth = 50, e.chartContainer.events.on("maxsizechanged", e.updateRadius, e, !1), e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Pie chart")); }, e.prototype.validateLayout = function () { t.prototype.validateLayout.call(this), this.updateRadius(); }, e.prototype.handleSeriesAdded = function (e) { t.prototype.handleSeriesAdded.call(this, e), this._chartPixelRadius = void 0, this.updateSeriesAngles(); }, e.prototype.updateSeriesAngles = function () { var t = this; this.series.each(function (e) { e.startAngle = t.startAngle, e.endAngle = t.endAngle, e.defaultState.properties.startAngle = t.startAngle, e.defaultState.properties.endAngle = t.endAngle; }); }, e.prototype.updateRadius = function () { var t = this.chartContainer, e = ut(this.startAngle, this.endAngle, 1), i = { x: 0, y: 0, width: 0, height: 0 }, n = this.innerRadius; n instanceof hs && (i = ut(this.startAngle, this.endAngle, n.value)), e = it([e, i]); var r = Math.min(t.innerWidth / e.width, t.innerHeight / e.height); A(r) || (r = 0); var s = ui(this.radius, r), o = ui(this.innerRadius, r), a = (s - o) / this.series.length; s == this._chartPixelRadius && o == this._chartPixelInnerRadius || (this._chartPixelRadius = s, this._chartPixelInnerRadius = o, pe(me(this.series.iterator()), function (t) { var e = t[0], i = t[1], n = o + ui(i.radius, s - o), r = o + ui(i.innerRadius, s - o); A(n) || (n = o + a * (e + 1)), A(r) || (r = o + a * e), i.pixelRadius = n, i.pixelInnerRadius = r; }), this.seriesContainer.definedBBox = { x: s * e.x, y: s * e.y, width: s * e.width, height: s * e.height }, this.seriesContainer.invalidateLayout(), this.bulletsContainer.x = this.seriesContainer.x, this.bulletsContainer.y = this.seriesContainer.y); }, Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !0, !1, 10, !1) && this.invalidateLayout(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), e.prototype.createSeries = function () { return new jh(); }, Object.defineProperty(e.prototype, "startAngle", { get: function get() { return this.getPropertyValue("startAngle"); }, set: function set(t) { this.setPropertyValue("startAngle", t) && (this.updateRadius(), this.updateSeriesAngles()); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endAngle", { get: function get() { return this.getPropertyValue("endAngle"); }, set: function set(t) { this.setPropertyValue("endAngle", t) && (this.updateRadius(), this.updateSeriesAngles()); }, enumerable: !0, configurable: !0 }), e; }(Vh); Fs.registeredClasses.PieChart = Eh, Fs.registeredClasses.PieChartDataItem = Lh; var Rh = function (t) { function e() { var e = t.call(this) || this; return e.className = "PieSeries3DDataItem", e.values.depthValue = {}, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "depthValue", { get: function get() { return this.values.depthValue.value; }, set: function set(t) { this.setValue("depthValue", t); }, enumerable: !0, configurable: !0 }), e; }(Mh), Bh = function (t) { function e() { var e = t.call(this) || this; return e.className = "PieSeries3D", e.applyTheme(), e; } return n(e, t), e.prototype.createDataItem = function () { return new Rh(); }, e.prototype.createSlice = function () { return new vl(); }, e.prototype.validateDataElement = function (e) { var i = e.slice, n = this.depth; A(n) || (n = this.chart.depth); var r = e.values.depthValue.percent; A(r) || (r = 100), i.depth = r * n / 100; var s = this.angle; A(s) || (s = this.chart.angle), i.angle = s, t.prototype.validateDataElement.call(this, e); }, e.prototype.validate = function () { t.prototype.validate.call(this); for (var e = this._workingStartIndex; e < this._workingEndIndex; e++) { var i = this.dataItems.getIndex(e).slice, n = i.startAngle; n >= -90 && n < 90 ? i.toFront() : n >= 90 && i.toBack(); } }, Object.defineProperty(e.prototype, "depth", { get: function get() { return this.getPropertyValue("depth"); }, set: function set(t) { this.setPropertyValue("depth", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "angle", { get: function get() { return this.getPropertyValue("angle"); }, set: function set(t) { this.setPropertyValue("angle", t); }, enumerable: !0, configurable: !0 }), e.prototype.positionBullet = function (e) { t.prototype.positionBullet.call(this, e); var i = e.dataItem.slice; e.y = e.pixelY - i.depth; }, e; }(jh); Fs.registeredClasses.PieSeries3D = Bh, Fs.registeredClasses.PieSeries3DDataItem = Rh; var Nh = function (t) { function e() { var e = t.call(this) || this; return e.className = "PieChart3DDataItem", e.applyTheme(), e; } return n(e, t), e; }(Lh), Hh = function (t) { function e() { var e = t.call(this) || this; return e.className = "PieChart3D", e.depth = 20, e.angle = 10, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "depth", { get: function get() { return this.getPropertyValue("depth"); }, set: function set(t) { this.setPropertyValue("depth", t) && this.invalidateDataUsers(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "angle", { get: function get() { return this.getPropertyValue("angle"); }, set: function set(t) { t = R(t, 0, 90), this.setPropertyValue("angle", t) && this.invalidateDataUsers(); }, enumerable: !0, configurable: !0 }), e.prototype.createSeries = function () { return new Bh(); }, e; }(Eh); Fs.registeredClasses.PieChart3D = Hh; var Wh = function (t) { function e() { var e = t.call(this) || this; return e.className = "SlicedChartDataItem", e.applyTheme(), e; } return n(e, t), e; }(Ah), Xh = function (t) { function e() { var e = t.call(this) || this; return e.className = "SlicedChart", e.seriesContainer.layout = "horizontal", e.padding(15, 15, 15, 15), e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Sliced chart")); }, e.prototype.validate = function () { t.prototype.validate.call(this); }, e; }(Vh); Fs.registeredClasses.SlicedChart = Xh, Fs.registeredClasses.SlicedChartDataItem = Wh; var Yh = function (t) { function e() { var e = t.call(this) || this; return e.legendSettings = new Ml(), e.className = "FlowDiagramNode", e.isMeasured = !1, new ta(), e.draggable = !0, e.inert = !0, e.setStateOnChildren = !0, e.events.on("positionchanged", e.invalidateLinks, e, !1), e.events.on("sizechanged", e.invalidateLinks, e, !1), e; } return n(e, t), e.prototype.handleHit = function (t) { this.isHidden || this.isHiding ? this.show() : this.hide(); }, e.prototype.show = function (e) { var i = t.prototype.show.call(this, e); return this.outgoingDataItems.each(function (t) { (!t.toNode || t.toNode && !t.toNode.isHidden) && t.setWorkingValue("value", t.getValue("value"), e); }), this.incomingDataItems.each(function (t) { (!t.fromNode || t.fromNode && !t.fromNode.isHidden) && t.setWorkingValue("value", t.getValue("value"), e); }), i; }, e.prototype.hide = function (e) { var i = t.prototype.hide.call(this, e); return this.outgoingDataItems.each(function (t) { t.setWorkingValue("value", 0, e); }), this.incomingDataItems.each(function (t) { t.setWorkingValue("value", 0, e); }), i; }, e.prototype.validate = function () { this.isDisposed() || (t.prototype.validate.call(this), this.invalidateLinks()); }, e.prototype.invalidateLinks = function () { var t = this; this.outgoingDataItems.each(function (e) { var i = e.link; if ("fromNode" == i.colorMode && (i.fill = i.dataItem.fromNode.color), "gradient" == i.colorMode) { i.fill = i.gradient, i.stroke = i.gradient; var n = i.gradient.stops.getIndex(0); n && (n.color = t.color, i.gradient.validate()); } }), this.incomingDataItems.each(function (e) { var i = e.link; if ("toNode" == i.colorMode && (i.fill = i.dataItem.toNode.color), "gradient" == i.colorMode) { i.fill = i.gradient, i.stroke = i.gradient; var n = i.gradient.stops.getIndex(1); n && (n.color = t.color, i.gradient.validate()); } }); }, Object.defineProperty(e.prototype, "incomingDataItems", { get: function get() { var t = this; if (!this._incomingDataItems) { var e = new Ns(); e.events.on("inserted", function () { "name" == t.chart.sortBy ? t._incomingSorted = ce(t._incomingDataItems.iterator(), function (t, e) { return De(t.fromName, e.fromName); }) : "value" == t.chart.sortBy ? t._incomingSorted = ce(t._incomingDataItems.iterator(), function (t, e) { return Fe(Ve(t.value, e.value)); }) : t._incomingSorted = t._incomingDataItems.iterator(); }, void 0, !1), this._incomingDataItems = e; } return this._incomingDataItems; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "outgoingDataItems", { get: function get() { var t = this; if (!this._outgoingDataItems) { var e = new Ns(); e.events.on("inserted", function () { "name" == t.chart.sortBy ? t._outgoingSorted = ce(t._outgoingDataItems.iterator(), function (t, e) { return De(t.fromName, e.fromName); }) : "value" == t.chart.sortBy ? t._outgoingSorted = ce(t._outgoingDataItems.iterator(), function (t, e) { return Fe(Ve(t.value, e.value)); }) : t._outgoingSorted = t._outgoingDataItems.iterator(); }, void 0, !1), this._outgoingDataItems = e; } return this._outgoingDataItems; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "name", { get: function get() { return this.getPropertyValue("name"); }, set: function set(t) { this.setPropertyValue("name", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "total", { get: function get() { return this.getPropertyValue("total"); }, set: function set(t) { this.setPropertyValue("total", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "totalIncoming", { get: function get() { return this.getPropertyValue("totalIncoming"); }, set: function set(t) { this.setPropertyValue("totalIncoming", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "totalOutgoing", { get: function get() { return this.getPropertyValue("totalOutgoing"); }, set: function set(t) { this.setPropertyValue("totalOutgoing", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "color", { get: function get() { return this.getPropertyValue("color"); }, set: function set(t) { this.setColorProperty("color", t), this._background && (this._background.fill = t), this.fill = t; }, enumerable: !0, configurable: !0 }), e.prototype.createLegendMarker = function (t) { var e = t.pixelWidth, i = t.pixelHeight; t.removeChildren(); var n = t.createChild(ja); n.shouldClone = !1, ne(this, n, va), n.stroke = this.fill, n.copyFrom(this), n.padding(0, 0, 0, 0), n.width = e, n.height = i; var r = t.dataItem; r.color = n.fill, r.colorOrig = n.fill; }, Object.defineProperty(e.prototype, "legendDataItem", { get: function get() { return this._legendDataItem; }, set: function set(t) { this._legendDataItem = t, this._legendDataItem.itemContainer.deepInvalidate(); }, enumerable: !0, configurable: !0 }), e; }(_a); Fs.registeredClasses.FlowDiagramNode = Yh; var zh = function (t) { function e() { var e = t.call(this) || this; e.className = "FlowDiagramLink"; var i = new ta(); return e.maskBullets = !1, e.colorMode = "fromNode", e.layout = "none", e.isMeasured = !1, e.startAngle = 0, e.endAngle = 0, e.strokeOpacity = 0, e.verticalCenter = "none", e.horizontalCenter = "none", e.tooltipText = "{fromName}→{toName}:{value.value}", e.tooltipLocation = .5, e.link = e.createChild(ba), e.link.shouldClone = !1, e.link.setElement(e.paper.add("path")), e.link.isMeasured = !1, e.fillOpacity = .2, e.fill = i.getFor("alternativeBackground"), e.applyTheme(), e; } return n(e, t), e.prototype.positionBullets = function () { var t = this; pe(this.bullets.iterator(), function (e) { e.parent = t.bulletsContainer, e.maxWidth = t.maxWidth, e.maxHeight = t.maxHeight, t.positionBullet(e); }); }, Object.defineProperty(e.prototype, "bulletsContainer", { get: function get() { if (!this._bulletsContainer) { var t = this.createChild(_a); t.shouldClone = !1, t.layout = "none", this._bulletsContainer = t; } return this._bulletsContainer; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bulletsMask", { get: function get() { if (!this._bulletsMask) { var t = this.createChild(ba); t.shouldClone = !1, t.setElement(this.paper.add("path")), t.isMeasured = !1, this._bulletsMask = t; } return this._bulletsMask; }, enumerable: !0, configurable: !0 }), e.prototype.positionBullet = function (t) { var e = t.locationX; A(e) || (e = t.locationY), A(e) || (e = .5); var i = this.middleLine.positionToPoint(e); t.moveTo(i); var n, r = t.propertyFields.rotation; t.dataItem && (n = t.dataItem.dataContext[r]), A(n) || (n = i.angle), t.rotation = n; }, Object.defineProperty(e.prototype, "startAngle", { get: function get() { return this.getPropertyValue("startAngle"); }, set: function set(t) { this.setPropertyValue("startAngle", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endAngle", { get: function get() { return this.getPropertyValue("endAngle"); }, set: function set(t) { this.setPropertyValue("endAngle", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "colorMode", { get: function get() { return this.getPropertyValue("colorMode"); }, set: function set(t) { if ("gradient" == t) { var e = this.fill; this.gradient.stops.clear(), e instanceof qs && (this.gradient.addColor(e), this.gradient.addColor(e)), this.fill = this.gradient, this.stroke = this.gradient; } this.setPropertyValue("colorMode", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maskBullets", { get: function get() { return this.getPropertyValue("maskBullets"); }, set: function set(t) { this.setPropertyValue("maskBullets", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tooltipLocation", { get: function get() { return this.getPropertyValue("tooltipLocation"); }, set: function set(t) { this.setPropertyValue("tooltipLocation", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.setFill = function (e) { t.prototype.setFill.call(this, e); var i = this._gradient; i && e instanceof qs && (i.stops.clear(), i.addColor(e), i.addColor(e)); }, e.prototype.measureElement = function () {}, Object.defineProperty(e.prototype, "bullets", { get: function get() { var t = this; return this._bullets || (this._bullets = new Hs(new Vl()), this._disposers.push(new Bs(this._bullets)), this._disposers.push(this._bullets.template), this._bullets.events.on("inserted", function (e) { e.newValue.events.on("propertychanged", function (e) { "locationX" != e.property && "locationY" != e.property || t.positionBullet(e.target); }, void 0, !1); }, void 0, !1)), this._bullets; }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.bullets.copyFrom(e.bullets); var i = this.middleLine; i && (i instanceof Na && e.middleLine instanceof Na && i.copyFrom(e.middleLine), i instanceof Xa && e.middleLine instanceof Xa && i.copyFrom(e.middleLine)), this.link.copyFrom(e.link); }, e.prototype.getTooltipX = function () { if (this.middleLine) return this.middleLine.positionToPoint(this.tooltipLocation).x; }, e.prototype.getTooltipY = function () { if (this.middleLine) return this.middleLine.positionToPoint(this.tooltipLocation).y; }, Object.defineProperty(e.prototype, "gradient", { get: function get() { return this._gradient || (this._gradient = new ia()), this._gradient; }, enumerable: !0, configurable: !0 }), e; }(_a); Fs.registeredClasses.FlowDiagramLink = zh; var Uh = function (t) { function e() { var e = t.call(this) || this; return e.className = "FlowDiagramDataItem", e.values.value = {}, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "fromName", { get: function get() { return this.properties.fromName; }, set: function set(t) { this.setProperty("fromName", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "toName", { get: function get() { return this.properties.toName; }, set: function set(t) { this.setProperty("toName", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "color", { get: function get() { return this.properties.color; }, set: function set(t) { this.setProperty("color", ei(t)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "value", { get: function get() { return this.values.value.value; }, set: function set(t) { this.setValue("value", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "link", { get: function get() { var t = this; if (!this._link) { var e = this.component.links.create(); this._link = e, this.addSprite(e), this._disposers.push(new fs(function () { t.component && t.component.links.removeValue(e); })); } return this._link; }, enumerable: !0, configurable: !0 }), e; }(Tl), Gh = function (t) { function e() { var e = t.call(this) || this; e.colors = new Sl(), e.className = "FlowDiagram", e.nodePadding = 20, e.sortBy = "none", e.sequencedInterpolation = !0, e.colors.step = 2, e.minNodeSize = .02; var i = e.chartContainer.createChild(_a); i.shouldClone = !1, i.layout = "none", i.isMeasured = !1, e.linksContainer = i; var n = e.chartContainer.createChild(_a); return n.shouldClone = !1, n.layout = "none", n.isMeasured = !1, e.nodesContainer = n, e.dataItem = e.createDataItem(), e.dataItem.component = e, e.applyTheme(), e; } return n(e, t), e.prototype.dispose = function () { t.prototype.dispose.call(this), this.dataItem.dispose(); }, e.prototype.validateData = function () { var e = this; 0 == this._parseDataFrom && this.nodes.clear(), this.sortNodes(), this.colors.reset(), t.prototype.validateData.call(this); var i, n, r = 0, s = 0; pe(this.dataItems.iterator(), function (t) { var o = t.fromName; o && ((a = e.nodes.getKey(o)) || ((a = e.nodes.create(o)).name = o, a.chart = e, a.dataItem = t), t.fromNode = a, t.fromNode.outgoingDataItems.push(t)); var a, l = t.toName; if (l && ((a = e.nodes.getKey(l)) || ((a = e.nodes.create(l)).name = l, a.chart = e, a.dataItem = t), t.toNode = a, t.toNode.incomingDataItems.push(t)), !t.fromNode) { var h = new fl(); h.opacities = [0, 1], t.link.strokeModifier = h; } if (!t.toNode) { var u = new fl(); u.opacities = [1, 0], t.link.strokeModifier = u; } var p = t.value; A(p) && (r += p, s++, (i > p || !A(i)) && (i = p), (n < p || !A(n)) && (n = p)); }); var o = "value"; this.dataItem.setCalculatedValue(o, n, "high"), this.dataItem.setCalculatedValue(o, i, "low"), this.dataItem.setCalculatedValue(o, r, "sum"), this.dataItem.setCalculatedValue(o, r / s, "average"), this.dataItem.setCalculatedValue(o, s, "count"), pe(this.nodes.iterator(), function (t) { var i = t[1]; i.fill instanceof qs && (i.color = i.fill), null == i.color && (i.color = e.colors.next()), null != i.dataItem.color && (i.color = i.dataItem.color), i.dataItem.visible || i.hide(0), e.getNodeValue(i); }), this.sortNodes(), this.feedLegend(); }, e.prototype.handleDataItemWorkingValueChange = function (t, e) { this.invalidate(); }, e.prototype.sortNodes = function () { "name" == this.sortBy ? this._sorted = this.nodes.sortedIterator() : "value" == this.sortBy ? this._sorted = ce(this.nodes.iterator(), function (t, e) { return Fe(Ve(t[1].total, e[1].total)); }) : this._sorted = this.nodes.iterator(); }, e.prototype.getNodeValue = function (t) { var e = 0, i = 0; pe(t.incomingDataItems.iterator(), function (t) { var i = t.getWorkingValue("value"); A(i) && (e += i); }), pe(t.outgoingDataItems.iterator(), function (t) { var e = t.getWorkingValue("value"); A(e) && (i += e); }), t.total = e + i, t.totalIncoming = e, t.totalOutgoing = i; }, e.prototype.changeSorting = function () { this.sortNodes(); }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Flow diagram")); }, e.prototype.createDataItem = function () { return new Uh(); }, Object.defineProperty(e.prototype, "nodePadding", { get: function get() { return this.getPropertyValue("nodePadding"); }, set: function set(t) { this.setPropertyValue("nodePadding", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "sortBy", { get: function get() { return this.getPropertyValue("sortBy"); }, set: function set(t) { this.setPropertyValue("sortBy", t), this.changeSorting(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "minNodeSize", { get: function get() { return this.getPropertyValue("minNodeSize"); }, set: function set(t) { this.setPropertyValue("minNodeSize", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "nodes", { get: function get() { if (!this._nodes) { var t = this.createNode(); t.events.on("hit", function (t) { t.target.handleHit(t); }), this._nodes = new ks(t), this._disposers.push(new Is(this._nodes)); } return this._nodes; }, enumerable: !0, configurable: !0 }), e.prototype.createNode = function () { var t = new Yh(); return this._disposers.push(t), t; }, Object.defineProperty(e.prototype, "links", { get: function get() { return this._links || (this._links = new Hs(this.createLink()), this._disposers.push(new Bs(this._links))), this._links; }, enumerable: !0, configurable: !0 }), e.prototype.createLink = function () { var t = new zh(); return this._disposers.push(t), t; }, e.prototype.feedLegend = function () { var t = this.legend; if (t) { var e = []; this.nodes.each(function (t, i) { e.push(i); }), t.data = e, t.dataFields.name = "name"; } }, e.prototype.disposeData = function () { t.prototype.disposeData.call(this), this.nodes.clear(); }, e; }(Al); Fs.registeredClasses.FlowDiagram = Gh; var Kh = function (t) { function e() { var e = t.call(this) || this; e.className = "LabelBullet"; var i = e.createChild(Ma); return i.shouldClone = !1, i.verticalCenter = "middle", i.horizontalCenter = "middle", i.truncate = !0, i.hideOversized = !1, i.maxWidth = 500, i.maxHeight = 500, i.stroke = Je(), i.strokeOpacity = 0, i.fill = new ta().getFor("text"), e.events.on("maxsizechanged", e.handleMaxSize, e, !1), e.label = i, e.applyTheme(), e; } return n(e, t), e.prototype.handleMaxSize = function () { this.label.maxWidth = this.maxWidth, this.label.maxHeight = this.maxHeight; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.label.copyFrom(e.label); }, e; }(Vl); Fs.registeredClasses.LabelBullet = Kh; var Zh = function (t) { function e() { var e = t.call(this) || this; e.nextInCoord = 0, e.nextOutCoord = 0, e.className = "SankeyNode", e.width = 10, e.height = 10; var i = e.createChild(Kh); i.shouldClone = !1, i.locationX = 1, i.locationY = .5, i.label.text = "{name}", i.width = 150, i.height = 150, i.label.horizontalCenter = "left", i.label.padding(0, 5, 0, 5), e.nameLabel = i; var n = e.createChild(Kh); n.shouldClone = !1, n.label.hideOversized = !1, n.locationX = .5, n.locationY = .5, n.width = 150, n.height = 150, n.label.horizontalCenter = "middle", e.valueLabel = n; var r = e.hiddenState; return r.properties.fill = new ta().getFor("disabledBackground"), r.properties.opacity = .5, r.properties.visible = !0, e.background.hiddenState.copyFrom(r), e; } return n(e, t), e.prototype.invalidateLinks = function () { var e = this; t.prototype.invalidateLinks.call(this), this.nextInCoord = 0, this.nextOutCoord = 0; var i = this.chart; if (i) { var n = i.orientation; this._incomingSorted && pe(this._incomingSorted, function (t) { var r = t.link, s = t.getWorkingValue("value"); if (A(s)) { r.parent = e.chart.linksContainer; var o = void 0, a = void 0, l = void 0; if ("horizontal" == n ? (o = e.pixelX + e.dx, a = e.nextInCoord + e.pixelY + e.dy, l = 0) : (a = e.pixelY + e.dy, o = e.nextInCoord + e.pixelX + e.dx, l = 90), r.endX = o, r.endY = a, r.startAngle = l, r.endAngle = l, r.gradient.rotation = l, r.linkWidth = s * i.valueHeight, !t.fromNode) { "horizontal" == n ? (r.maxWidth = 200, r.startX = e.pixelX + e.dx - r.maxWidth, r.startY = r.endY) : (r.maxHeight = 200, r.startX = r.endX, r.startY = e.pixelY + e.dy - r.maxHeight), r.gradient, r.fill = t.toNode.color; var h = r.gradient.stops.getIndex(0); h && ("gradient" == r.colorMode && (h.color = e.color), h.opacity = 0, r.fill = r.gradient, r.stroke = r.gradient, r.gradient.validate()); } e.nextInCoord += r.linkWidth; } }), this._outgoingSorted && pe(this._outgoingSorted, function (t) { var i = t.link; i.parent = e.chart.linksContainer; var r = t.getWorkingValue("value"); if (A(r)) { var s = void 0, o = void 0, a = void 0; if ("horizontal" == n ? (a = 0, s = e.pixelX + e.pixelWidth + e.dx - 1, o = e.nextOutCoord + e.pixelY + e.dy) : (a = 90, s = e.nextOutCoord + e.pixelX + e.dx, o = e.pixelY + e.pixelHeight + e.dy - 1), i.startX = s, i.startY = o, i.startAngle = a, i.endAngle = a, i.gradient.rotation = a, i.linkWidth = r * e.chart.valueHeight, !t.toNode) { "horizontal" == n ? (i.maxWidth = 200, i.endX = e.pixelX + i.maxWidth + e.dx, i.endY = i.startY) : (i.maxHeight = 200, i.endX = i.startX, i.endY = e.pixelY + i.maxHeight + e.dy), i.opacity = e.opacity; var l = i.gradient.stops.getIndex(1); l && ("gradient" == i.colorMode && (l.color = e.color), l.opacity = 0, i.fill = i.gradient, i.stroke = i.gradient, i.gradient.validate()); } e.nextOutCoord += i.linkWidth; } }); } this.positionBullet(this.nameLabel), this.positionBullet(this.valueLabel); }, e.prototype.positionBullet = function (t) { t && (t.x = this.measuredWidth * t.locationX, t.y = this.measuredHeight * t.locationY); }, Object.defineProperty(e.prototype, "level", { get: function get() { return this.getPropertyValue("level"); }, set: function set(t) { this.setPropertyValue("level", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.nameLabel.copyFrom(e.nameLabel), this.valueLabel.copyFrom(e.valueLabel); }, e; }(Yh); Fs.registeredClasses.SankeyNode = Zh; var qh = function (t) { function e() { var e = t.call(this) || this; return e.className = "SankeyLink", new ta(), e.tension = .8, e.controlPointDistance = .2, e.startAngle = 0, e.endAngle = 0, e.linkWidth = 0, e.startX = 0, e.endX = 0, e.startY = 0, e.endY = 0, e.middleLine = e.createChild(Ga), e.middleLine.shouldClone = !1, e.middleLine.strokeOpacity = 0, e.applyTheme(), e; } return n(e, t), e.prototype.validate = function () { if (t.prototype.validate.call(this), !this.isTemplate) { var e = this.startX, i = this.startY, n = this.endX, r = this.endY; A(n) || (n = e), A(r) || (r = i); var s = this.startAngle, o = this.endAngle, a = this.linkWidth, l = "", h = e, u = i, p = n, c = r, d = e + a * B(s), f = n + a * B(o), g = i + a * H(s), y = r + a * H(o), m = e + a / 2 * B(s), v = n + a / 2 * B(o), b = i + a / 2 * H(s), x = r + a / 2 * H(o); this.zIndex = this.zIndex || this.dataItem.index; var _ = this.tension + (1 - this.tension) * B(s), P = this.tension + (1 - this.tension) * H(s); if (this.middleLine.tensionX = _, this.middleLine.tensionY = P, A(a) && A(e) && A(n) && A(i) && A(r)) { j(h, 3) == j(p, 3) && (p += .01), j(u, 3) == j(c, 3) && (c += .01), j(d, 3) == j(f, 3) && (f += .01), j(g, 3) == j(y, 3) && (y += .01); var w = Math.min(d, f, h, p), C = Math.min(g, y, u, c), O = Math.max(d, f, h, p), S = Math.max(g, y, u, c); this._bbox = { x: w, y: C, width: O - w, height: S - C }; var I = this.controlPointDistance, D = h + (p - h) * I * H(s), k = u + (c - u) * I * B(s), T = p - (p - h) * I * H(o), V = c - (c - u) * I * B(o), F = m + (v - m) * I * H(s), M = b + (x - b) * I * B(s), L = v - (v - m) * I * H(o), E = x - (x - b) * I * B(o), R = Q({ x: D, y: k }, { x: T, y: V }), W = (a / H(R) - a) / N(R) * H(s), X = (a / B(R) - a) * N(R) * B(s), Y = -W / 2 + d + (f - d) * I * H(s), z = -X / 2 + g + (y - g) * I * B(s), U = -W / 2 + f - (f - d) * I * H(o), G = -X / 2 + y - (y - g) * I * B(o); this.middleLine.segments = [[{ x: m, y: b }, { x: F, y: M }, { x: L, y: E }, { x: v, y: x }]], D += W / 2, k += X / 2, T += W / 2, V += X / 2, l += xr({ x: h, y: u }), l += new sl(_, P).smooth([{ x: h, y: u }, { x: D, y: k }, { x: T, y: V }, { x: p, y: c }]), l += _r({ x: f, y: y }), l += new sl(_, P).smooth([{ x: f, y: y }, { x: U, y: G }, { x: Y, y: z }, { x: d, y: g }]), l += " Z"; } this.link.path = l, this.maskBullets && (this.bulletsMask.path = l, this.bulletsContainer.mask = this.bulletsMask), this.positionBullets(); } }, Object.defineProperty(e.prototype, "startX", { get: function get() { return this.getPropertyValue("startX"); }, set: function set(t) { this.setPropertyValue("startX", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endX", { get: function get() { return this.getPropertyValue("endX"); }, set: function set(t) { this.setPropertyValue("endX", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startY", { get: function get() { return this.getPropertyValue("startY"); }, set: function set(t) { this.setPropertyValue("startY", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endY", { get: function get() { return this.getPropertyValue("endY"); }, set: function set(t) { this.setPropertyValue("endY", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "linkWidth", { get: function get() { return this.getPropertyValue("linkWidth"); }, set: function set(t) { this.setPropertyValue("linkWidth", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "controlPointDistance", { get: function get() { return this.getPropertyValue("controlPointDistance"); }, set: function set(t) { this.setPropertyValue("controlPointDistance", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "tension", { get: function get() { return this.getPropertyValue("tension"); }, set: function set(t) { this.setPropertyValue("tension", t, !0); }, enumerable: !0, configurable: !0 }), e; }(zh); Fs.registeredClasses.SankeyLink = qh; var $h = function (t) { function e() { var e = t.call(this) || this; return e.className = "SankeyDiagramDataItem", e.applyTheme(), e; } return n(e, t), e; }(Uh), Jh = function (t) { function e() { var e = t.call(this) || this; return e.className = "SankeyDiagram", e.orientation = "horizontal", e.nodeAlign = "middle", e.nodesContainer.width = h(100), e.nodesContainer.height = h(100), e.linksContainer.width = h(100), e.linksContainer.height = h(100), e.applyTheme(), e; } return n(e, t), e.prototype.validateData = function () { var e = this; t.prototype.validateData.call(this), this._levelCount = 0, this.nodes.each(function (t, e) { e.level = void 0; }), this.nodes.each(function (t, i) { i.level = e.getNodeLevel(i, 0), e._levelCount = W(e._levelCount, i.level); }); }, e.prototype.getNodeLevel = function (t, e) { var i = this, n = [e]; return pe(t.incomingDataItems.iterator(), function (t) { t.fromNode && (A(t.fromNode.level) ? n.push(t.fromNode.level + 1) : n.push(i.getNodeLevel(t.fromNode, e + 1))); }), Math.max.apply(Math, l(n)); }, e.prototype.calculateValueHeight = function () { var t = this; this._levelSum = {}, this._levelNodesCount = {}, this.maxSum = 0; var e, i, n = this.dataItem.values.value.sum; pe(this._sorted, function (e) { var i = e[1]; t.getNodeValue(i); }), this.nodes.each(function (e, i) { var r = i.level, s = Math.max(i.totalIncoming, i.totalOutgoing); s / n < t.minNodeSize && (s = n * t.minNodeSize), A(t._levelSum[r]) ? t._levelSum[r] += s : t._levelSum[r] = s, A(t._levelNodesCount[r]) ? t._levelNodesCount[r]++ : t._levelNodesCount[r] = 1; }), e = "horizontal" == this.orientation ? this.chartContainer.maxHeight - 1 : this.chartContainer.maxWidth - 1, Qt(this._levelSum, function (n, r) { var s = r; r = r * e / (e - (t._levelNodesCount[n] - 1) * t.nodePadding), t.maxSum < r && (t.maxSum = s, i = w(n)); }), this._maxSumLevel = i; var r = this._levelNodesCount[this._maxSumLevel], s = (e - (r - 1) * this.nodePadding) / this.maxSum; if (A(this.valueHeight)) { var o = void 0; try { o = this._heightAnimation.animationOptions[0].to; } catch (t) {} if (o != s) { var a = this.interpolationDuration; try { a = this.nodes.template.states.getKey("active").transitionDuration; } catch (t) {} this._heightAnimation = new Io(this, { property: "valueHeight", from: this.valueHeight, to: s }, a, this.interpolationEasing).start(), this._disposers.push(this._heightAnimation); } } else this.valueHeight = s; }, e.prototype.validate = function () { var e = this; t.prototype.validate.call(this), this.calculateValueHeight(); var i = this.nodesContainer, n = {}, r = this._levelNodesCount[this._maxSumLevel], s = this.dataItem.values.value.sum; pe(this._sorted, function (t) { var o, a, l, h = t[1], u = h.level, p = 0, c = e._levelNodesCount[u]; switch (e.nodeAlign) { case "bottom": p = (e.maxSum - e._levelSum[u]) * e.valueHeight - (c - r) * e.nodePadding; break; case "middle": p = (e.maxSum - e._levelSum[u]) * e.valueHeight / 2 - (c - r) * e.nodePadding / 2; } h.parent = i; var d = Math.max(h.totalIncoming, h.totalOutgoing); if (d / s < e.minNodeSize && (d = s * e.minNodeSize), "horizontal" == e.orientation) { a = (o = (e.innerWidth - h.pixelWidth) / e._levelCount) * h.level, l = n[u] || p; var f = d * e.valueHeight; h.height = f, h.minX = a, h.maxX = a, n[u] = l + f + e.nodePadding; } else { o = (e.innerHeight - h.pixelHeight) / e._levelCount, a = n[u] || p, l = o * h.level; var g = d * e.valueHeight; h.width = g, h.minY = l, h.maxY = l, n[u] = a + g + e.nodePadding; } h.x = a, h.y = l; }); }, e.prototype.showReal = function (e) { var i = this; if (this.interpolationDuration > 0) { var n = this.nodesContainer, r = 0; pe(this.links.iterator(), function (t) { t.hide(0); }), pe(this._sorted, function (t) { var e, s = t[1]; "horizontal" == i.orientation ? (s.dx = -(n.pixelWidth - s.pixelWidth) / i._levelCount, e = "dx") : (s.dy = -(n.pixelHeight - s.pixelHeight) / i._levelCount, e = "dy"); var o = 0, a = i.interpolationDuration; i.sequencedInterpolation && (o = i.sequencedInterpolationDelay * r + a * r / le(i.nodes.iterator())), s.opacity = 0, s.invalidateLinks(), s.animate([{ property: "opacity", from: 0, to: 1 }, { property: e, to: 0 }], i.interpolationDuration, i.interpolationEasing).delay(o), pe(s.outgoingDataItems.iterator(), function (t) { var e = t.link.show(i.interpolationDuration); e && !e.isFinished() && e.delay(o); }), pe(s.incomingDataItems.iterator(), function (t) { if (!t.fromNode) { var e = t.link.show(i.interpolationDuration); e && !e.isFinished() && e.delay(o); } }), r++; }); } return t.prototype.showReal.call(this); }, e.prototype.changeSorting = function () { var t = this; this.sortNodes(); var e = {}; pe(this._sorted, function (i) { var n, r, s = i[1], o = s.level, a = (t.maxSum - t._levelSum[o]) * t.valueHeight / 2; "horizontal" == t.orientation ? (n = "y", r = s.pixelHeight) : (n = "x", r = s.pixelWidth), s.animate({ property: n, to: e[o] || a }, t.interpolationDuration, t.interpolationEasing), e[o] = (e[o] || a) + r + t.nodePadding, s.invalidateLinks(); }); }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Sankey diagram")); }, e.prototype.createDataItem = function () { return new $h(); }, Object.defineProperty(e.prototype, "nodeAlign", { get: function get() { return this.getPropertyValue("nodeAlign"); }, set: function set(t) { this.setPropertyValue("nodeAlign", t), this.changeSorting(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "orientation", { get: function get() { return this.getPropertyValue("orientation"); }, set: function set(t) { this.setPropertyValue("orientation", t, !0); var e = this.nodes.template.nameLabel; "vertical" == t ? (this.nodes.template.width = void 0, e.label.horizontalCenter = "middle", e.locationX = .5) : (this.nodes.template.height = void 0, e.label.horizontalCenter = "left", e.locationX = 1); }, enumerable: !0, configurable: !0 }), e.prototype.createNode = function () { var t = new Zh(); return this._disposers.push(t), t; }, e.prototype.createLink = function () { var t = new qh(); return this._disposers.push(t), t; }, Object.defineProperty(e.prototype, "valueHeight", { get: function get() { return this._valueHeight; }, set: function set(t) { t != this._valueHeight && (this._valueHeight = t, this.invalidate()); }, enumerable: !0, configurable: !0 }), e.prototype.disposeData = function () { t.prototype.disposeData.call(this), this._sorted = this.nodes.iterator(); }, e; }(Gh); Fs.registeredClasses.SankeyDiagram = Jh; var Qh = function (t) { function e() { var e = t.call(this) || this; e.className = "ChordNode"; var i = e.createChild(_h); i.location = .5, i.radius = 5, i.text = "{name}", i.zIndex = 1, i.shouldClone = !1, e.label = i, e.layout = "none", e.events.on("positionchanged", e.updateRotation, e, !1), e.isMeasured = !1, e.slice = e.createChild(Ka), e.slice.isMeasured = !1; var n = e.hiddenState; return n.properties.fill = new ta().getFor("disabledBackground"), n.properties.opacity = .5, n.properties.visible = !0, e.setStateOnChildren = !1, e.slice.hiddenState.properties.visible = !0, e.adapter.add("tooltipX", function (t, e) { return e.slice.ix * (e.slice.radius - (e.slice.radius - e.slice.pixelInnerRadius) / 2); }), e.adapter.add("tooltipY", function (t, e) { return e.slice.iy * (e.slice.radius - (e.slice.radius - e.slice.pixelInnerRadius) / 2); }), e; } return n(e, t), e.prototype.invalidateLinks = function () { var e = this; t.prototype.invalidateLinks.call(this); var i = this.label, n = this.slice, r = this.chart; if (r && n) { var s = this.total, o = n.arc, a = n.startAngle; this.children.each(function (t) { if (t instanceof Vl) { var e = t.locationX; A(e) || (e = .5); var i = t.locationY; A(i) || (i = 1); var r = a + o * e, s = i * n.radius; t.x = s * H(r), t.y = s * B(r); } }); var l = a + o * i.location, h = a + (1 - s / this.adjustedTotal) * o * .5; p(h) && (h = a), i.fixPosition(l, n.radius), this.nextAngle = h, this._outgoingSorted && pe(this._outgoingSorted, function (t) { var i = t.link; i.parent = e.chart.linksContainer; var s = t.getWorkingValue("value"); if (A(s)) { if (r.nonRibbon) { var l = i.percentWidth; A(l) || (l = 5), l /= 100, i.startAngle = a + o / 2 - o / 2 * l, i.arc = o * l; } else i.arc = s * r.valueAngle, i.startAngle = e.nextAngle, e.nextAngle += i.arc; t.toNode || (i.endAngle = i.startAngle), i.radius = n.pixelInnerRadius; } }), this._incomingSorted && pe(this._incomingSorted, function (t) { var i = t.link; if (i.radius = n.pixelInnerRadius, r.nonRibbon) { var s = i.percentWidth; A(s) || (s = 5), s /= 100, i.endAngle = a + o / 2 - o / 2 * s, i.arc = o * s; } else { i.endAngle = e.nextAngle; var l = t.getWorkingValue("value"); A(l) && (i.arc = l * r.valueAngle, e.nextAngle += i.arc); } t.fromNode || (i.startAngle = i.endAngle); }); } }, e.prototype.updateRotation = function () { var t = this.slice, e = this.trueStartAngle + t.arc / 2, i = t.radius, n = i * H(e), r = i * B(e), s = Q({ x: n + this.pixelX, y: r + this.pixelY }); t.startAngle = this.trueStartAngle + (s - e), this.dx = -this.pixelX, this.dy = -this.pixelY; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.label.copyFrom(e.label), this.slice.copyFrom(e.slice); }, e; }(Yh); Fs.registeredClasses.ChordNode = Qh; var tu = function (t) { function e() { var e = t.call(this) || this; return e.className = "QuadraticCurve", e.element = e.paper.add("path"), e.pixelPerfect = !1, e.fill = Je(), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { if (A(this.x1 + this.x2 + this.y1 + this.y2 + this.cpx + this.cpy)) { var t = { x: this.x1, y: this.y1 }, e = { x: this.x2, y: this.y2 }, i = { x: this.cpx, y: this.cpy }, n = xr(t) + Pr(e, i); this.path = n; } }, Object.defineProperty(e.prototype, "cpx", { get: function get() { return this.getPropertyValue("cpx"); }, set: function set(t) { this.setPropertyValue("cpx", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "cpy", { get: function get() { return this.getPropertyValue("cpy"); }, set: function set(t) { this.setPropertyValue("cpy", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.positionToPoint = function (t) { var e = { x: this.x1, y: this.y1 }, i = { x: this.cpx, y: this.cpy }, n = { x: this.x2, y: this.y2 }, r = nt(e, n, i, t), s = nt(e, n, i, t + .001); return { x: r.x, y: r.y, angle: Q(r, s) }; }, e; }(Na), eu = function (t) { function e() { var e = t.call(this) || this; return e.className = "ChordLink", e.middleLine = e.createChild(tu), e.middleLine.shouldClone = !1, e.middleLine.strokeOpacity = 0, e.applyTheme(), e; } return n(e, t), e.prototype.validate = function () { if (t.prototype.validate.call(this), !this.isTemplate) { var e = this.startAngle, i = this.endAngle, n = this.arc, r = this.radius, s = this.dataItem.fromNode, o = this.dataItem.toNode, a = 0, l = 0; s && (a = s.pixelX + s.dx, l = s.pixelY + s.dy); var h = 0, u = 0; if (o && (h = o.pixelX + o.dx, u = o.pixelY + o.dy), r > 0) { var p = r * H(e) + a, c = r * B(e) + l, d = r * H(i) + h, f = r * B(i) + u, g = { x: 0, y: 0 }, y = xr({ x: p, y: c }); y += Or(e, n, r), y += Pr({ x: d, y: f }, g), y += Or(i, n, r), y += Pr({ x: p, y: c }, g), this.link.path = n > 0 ? y : "", this.maskBullets && (this.bulletsMask.path = y, this.bulletsContainer.mask = this.bulletsMask); var m = e + n / 2, v = i + n / 2, b = this.middleLine; b.x1 = r * H(m) + a, b.y1 = r * B(m) + l, b.x2 = r * H(v) + h, b.y2 = r * B(v) + u, b.cpx = 0, b.cpy = 0, b.stroke = this.fill, this.positionBullets(); } } }, Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPropertyValue("radius", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "arc", { get: function get() { return this.getPropertyValue("arc"); }, set: function set(t) { this.setPropertyValue("arc", t, !0); }, enumerable: !0, configurable: !0 }), e; }(zh); Fs.registeredClasses.ChordLink = eu; var iu = function (t) { function e() { var e = t.call(this) || this; return e.className = "ChordDiagramDataItem", e.applyTheme(), e; } return n(e, t), e; }(Uh), nu = function (t) { function e() { var e = t.call(this) || this; e.valueAngle = 0, e.className = "ChordDiagram", e.startAngle = -90, e.endAngle = 270, e.radius = h(80), e.innerRadius = -15, e.nodePadding = 5; var i = e.chartContainer.createChild(_a); return i.align = "center", i.valign = "middle", i.shouldClone = !1, i.layout = "absolute", e.chordContainer = i, e.nodesContainer.parent = i, e.linksContainer.parent = i, e.chartContainer.events.on("maxsizechanged", e.invalidate, e, !1), e.applyTheme(), e; } return n(e, t), e.prototype.validate = function () { var e = this, i = this.chartContainer, n = this.endAngle, r = this.startAngle + this.nodePadding / 2, s = ut(this.startAngle, this.endAngle, 1); s = it([s, { x: 0, y: 0, width: 0, height: 0 }]); var o = Math.min(i.innerWidth / s.width, i.innerHeight / s.height); A(o) || (o = 0); var a = ui(this.radius, o), l = ui(this.innerRadius, a, !0), h = this.dataItem.values.value.sum, u = 0, p = 0; pe(this._sorted, function (t) { var i = t[1]; e.getNodeValue(i), u++; var n = i.total; i.total / h < e.minNodeSize && (n = h * e.minNodeSize), p += n; }), this.valueAngle = (n - this.startAngle - this.nodePadding * u) / p, pe(this._sorted, function (t) { var i = t[1], s = i.slice; s.radius = a, s.innerRadius = l; var o, p = i.total; i.total / h < e.minNodeSize && (p = h * e.minNodeSize), i.adjustedTotal = p, o = e.nonRibbon ? (n - e.startAngle) / u - e.nodePadding : e.valueAngle * p, s.arc = o, s.startAngle = r, i.trueStartAngle = r, i.parent = e.nodesContainer, i.validate(), r += o + e.nodePadding; }), this.chordContainer.definedBBox = { x: a * s.x, y: a * s.y, width: a * s.width, height: a * s.height }, this.chordContainer.invalidateLayout(), t.prototype.validate.call(this); }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Chord diagram")); }, e.prototype.createDataItem = function () { return new iu(); }, Object.defineProperty(e.prototype, "startAngle", { get: function get() { return this.getPropertyValue("startAngle"); }, set: function set(t) { this.setPropertyValue("startAngle", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endAngle", { get: function get() { return this.getPropertyValue("endAngle"); }, set: function set(t) { this.setPropertyValue("endAngle", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "nonRibbon", { get: function get() { return this.getPropertyValue("nonRibbon"); }, set: function set(t) { this.setPropertyValue("nonRibbon", t, !0), this.links.template.middleLine.strokeOpacity = 1, this.links.template.link.fillOpacity = 0; }, enumerable: !0, configurable: !0 }), e.prototype.createNode = function () { var t = new Qh(); return this._disposers.push(t), t; }, e.prototype.createLink = function () { var t = new eu(); return this._disposers.push(t), t; }, e; }(Gh); Fs.registeredClasses.ChordDiagram = nu; var ru = function (t) { function e() { var e = t.call(this) || this; return e.className = "Column", e.width = h(80), e.height = h(80), e.events.disableType("transformed"), e.applyOnClones = !0, e.strokeOpacity = 1, e.layout = "none", e.createAssets(), e.events.on("childadded", e.handleKidAdded, e, !1), e; } return n(e, t), e.prototype.handleKidAdded = function () { "none" == this.layout && (this.layout = "absolute"); }, e.prototype.createAssets = function () { this.column = this.createChild(ja), this.column.shouldClone = !1, this.column.isMeasured = !1, this.column.cornerRadius(0, 0, 0, 0), this._disposers.push(this.column); }, e.prototype.validate = function () { t.prototype.validate.call(this); var e = this.column; e && (e.width = X(this.pixelWidth, this.maxWidth), e.height = X(this.pixelHeight, this.maxHeight), e.invalid && e.validate()); }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.column && this.column.copyFrom(e.column); }, Object.defineProperty(e.prototype, "bbox", { get: function get() { return this.definedBBox ? this.definedBBox : this.column ? { x: 0, y: 0, width: this.column.measuredWidth, height: this.column.measuredHeight } : { x: 0, y: 0, width: X(this.pixelWidth, this.maxWidth), height: X(this.pixelHeight, this.maxHeight) }; }, enumerable: !0, configurable: !0 }), e; }(_a); Fs.registeredClasses.Column = ru; var su = function (t) { function e() { var e = t.call(this) || this; return e.className = "ColumnSeriesDataItem", e.locations.dateX = .5, e.locations.dateY = .5, e.locations.categoryX = .5, e.locations.categoryY = .5, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "column", { get: function get() { return this._column; }, set: function set(t) { this.setColumn(t); }, enumerable: !0, configurable: !0 }), e.prototype.setColumn = function (t) { var e = this; if (this._column && t != this._column && St(this.sprites, this._column), this._column = t, t) { var i = t.dataItem; i && i != this && (i.column = void 0), this.addSprite(t), this._disposers.push(new fs(function () { e.component && e.component.columns.removeValue(t); })); } }, Object.defineProperty(e.prototype, "rangesColumns", { get: function get() { return this._rangesColumns || (this._rangesColumns = new Ds()), this._rangesColumns; }, enumerable: !0, configurable: !0 }), e; }(hh), ou = function (t) { function e() { var e = t.call(this) || this; e._startLocation = 0, e._endLocation = 1, e.className = "ColumnSeries", e.width = h(100), e.height = h(100), e.strokeOpacity = 0, e.fillOpacity = 1, e.clustered = !0; var i = e.mainContainer.createChild(_a); return i.shouldClone = !1, i.isMeasured = !1, i.layout = "none", e._columnsContainer = i, e.columns.template.pixelPerfect = !1, e.tooltipColorSource = e.columns.template, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "columnsContainer", { get: function get() { return this._columnsContainer; }, enumerable: !0, configurable: !0 }), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Column Series")); }, e.prototype.createDataItem = function () { return new su(); }, e.prototype.validate = function () { var i = this, n = this.chart.series, r = 0, s = 0; pe(n.iterator(), function (t) { t instanceof e && i.baseAxis == t.baseAxis && ((!t.stacked && t.clustered || 0 === r) && r++, t == i && (s = r - 1)); }); var o = this.baseAxis.renderer, a = o.cellStartLocation, l = o.cellEndLocation; this._startLocation = a + s / r * (l - a), this._endLocation = a + (s + 1) / r * (l - a), t.prototype.validate.call(this); for (var h = 0; h < this.startIndex; h++) { var u = this.dataItems.getIndex(h); this.disableUnusedColumns(u); } for (h = this.dataItems.length - 1; h > this.endIndex; h--) u = this.dataItems.getIndex(h), this.disableUnusedColumns(u); }, e.prototype.validateDataElement = function (e) { this.validateDataElementReal(e), t.prototype.validateDataElement.call(this, e); }, e.prototype.getStartLocation = function (t) { var e = this._startLocation; return this.baseAxis == this.xAxis ? e += t.locations[this.xOpenField] - .5 : e += t.locations[this.yOpenField] - .5, e; }, e.prototype.handleDataItemWorkingValueChange = function (e, i) { this.simplifiedProcessing ? this.validateDataElement(e) : t.prototype.handleDataItemWorkingValueChange.call(this, e, i); }, e.prototype.getEndLocation = function (t) { var e = this._endLocation; return this.baseAxis == this.xAxis ? e += t.locations[this.xField] - .5 : e += t.locations[this.yField] - .5, e; }, e.prototype.validateDataElementReal = function (t) { var e, i, n, r, s = this, o = this.getStartLocation(t), a = this.getEndLocation(t), l = this.xField, h = this.xOpenField, u = this.yField, c = this.yOpenField, d = this.columns.template, f = d.percentWidth, g = d.percentHeight, y = d.pixelWidth, m = d.pixelHeight, v = d.maxWidth, b = d.maxHeight, x = d.pixelPaddingLeft, _ = d.pixelPaddingRight, P = d.pixelPaddingTop, w = d.pixelPaddingBottom, C = !1; if (this.xAxis instanceof lh && this.yAxis instanceof lh) { if (!t.hasValue(this._xValueFields) || !t.hasValue(this._yValueFields)) return; o = 0, a = 1, p(f) || (o += D = j((a - o) * (1 - f / 100) / 2, 5), a -= D), e = this.xAxis.getX(t, h, o), i = this.xAxis.getX(t, l, a), p(f) && (e += D = (i - e - y) / 2, i -= D), !p(v) && v < Math.abs(i - e) && (e += D = (i - e - v) / 2, i -= D), o = 0, a = 1, p(g) || (o += D = j((1 - g / 100) / 2, 5), a -= D), n = this.yAxis.getY(t, c, o), r = this.yAxis.getY(t, u, a), p(g) && (r += D = (r - n - m) / 2, n -= D), !p(b) && b < Math.abs(r - n) && (r += D = (r - n - b) / 2, n -= D), i = this.fixHorizontalCoordinate(i), e = this.fixHorizontalCoordinate(e), n = this.fixVerticalCoordinate(n), r = this.fixVerticalCoordinate(r); } else if (this.baseAxis == this.xAxis) { if (!t.hasValue(this._yValueFields)) return; p(f) || (o += D = j((a - o) * (1 - f / 100) / 2, 5), a -= D), e = this.xAxis.getX(t, h, o), i = this.xAxis.getX(t, l, a), p(f) && (e += D = (i - e - y) / 2, i -= D), !p(v) && v < Math.abs(i - e) && (e += D = (i - e - v) / 2, i -= D); var O = t.locations[c], S = t.locations[u]; this.yAxis instanceof eh && this.dataFields[this.yField] != this.dataFields[this.yOpenField] && (O = 0, S = 0), r = this.yAxis.getY(t, c, O), n = this.yAxis.getY(t, u, S); var I = Math.ceil(this.yAxis.axisLength); (n < 0 && r < 0 || n > I && r > I) && (C = !0), n = this.fixVerticalCoordinate(n), r = this.fixVerticalCoordinate(r), Math.abs(i - e) - x - _ == 0 && (C = !0); } else { if (!t.hasValue(this._xValueFields)) return; var D; p(g) || (o += D = j((a - o) * (1 - g / 100) / 2, 5), a -= D), n = this.yAxis.getY(t, c, o), r = this.yAxis.getY(t, u, a), p(g) && (r -= D = (r - n - m) / 2, n += D), !p(b) && b < Math.abs(r - n) && (r -= D = (r - n - b) / 2, n += D); var k = t.locations[l], T = t.locations[h]; this.xAxis instanceof eh && this.dataFields[this.xField] != this.dataFields[this.xOpenField] && (k = 0, T = 0), i = this.xAxis.getX(t, l, k), e = this.xAxis.getX(t, h, T), I = Math.ceil(this.xAxis.axisLength), (i < 0 && e < 0 || i > I && e > I) && (C = !0), i = this.fixHorizontalCoordinate(i), e = this.fixHorizontalCoordinate(e), Math.abs(n - r) - P - w == 0 && (C = !0); } var A, V = Math.abs(i - e), F = Math.abs(r - n), M = Math.min(e, i), L = Math.min(n, r); C ? this.disableUnusedColumns(t) : (t.column ? A = t.column : (ne(this, A = this.columns.create(), va), ne(this.columns.template, A, va), t.addSprite(A), t.column = A, A.paper = this.paper, this.itemsFocusable() ? (A.role = "menuitem", A.focusable = !0) : (A.role = "listitem", A.focusable = !1), A.focusable && (A.events.on("focus", function (e) { A.readerTitle = s.populateString(s.itemReaderText, t); }, void 0, !1), A.events.on("blur", function (t) { A.readerTitle = ""; }, void 0, !1)), A.hoverable && (A.events.on("over", function (e) { A.readerTitle = s.populateString(s.itemReaderText, t); }, void 0, !1), A.events.on("out", function (t) { A.readerTitle = ""; }, void 0, !1))), A.width = V, A.height = F, A.x = M, A.y = L, A.realX = e, A.realY = n, A.realWidth = i - e, A.realHeight = r - n, A.parent = this.columnsContainer, A.virtualParent = this, this.setColumnStates(A), A.invalid && A.validate(), A.__disabled = !1, pe(this.axisRanges.iterator(), function (e) { var i = t.rangesColumns.getKey(e.uid); i || (i = s.columns.create(), ne(e.contents, i, va), t.addSprite(i), t.rangesColumns.setKey(e.uid, i), i.paper = s.paper), i.parent = e.contents, i.width = V, i.height = F, i.x = M, i.y = L, s.setColumnStates(i), i.invalid && i.validate(), i.__disabled = !1; })), t.itemWidth = V, t.itemHeight = F; }, e.prototype.disableUnusedColumns = function (t) { t && (t.column && (t.column.width = 0, t.column.height = 0, t.column.__disabled = !0), pe(this.axisRanges.iterator(), function (e) { var i = t.rangesColumns.getKey(e.uid); i && (i.width = 0, i.height = 0, i.__disabled = !0); })); }, e.prototype.setColumnStates = function (t) { if (this._dropFromOpenState || this._dropFromPreviousState || this._riseFromOpenState || this._riseFromPreviousState) { var e = t.dataItem; if (this.xAxis instanceof eh || this.yAxis instanceof eh) { var i, n = void 0, r = void 0; this.baseAxis == this.yAxis ? this.xOpenField && this.xField && this.xAxis instanceof eh && (i = e.getValue(this.xOpenField), n = e.getValue(this.xField), r = e.getValue(this.xAxis.axisFieldName + "X", "previousChange")) : this.yOpenField && this.yField && this.yAxis instanceof eh && (i = e.getValue(this.yOpenField), n = e.getValue(this.yField), r = e.getValue(this.yAxis.axisFieldName + "Y", "previousChange")), n < i ? (e.droppedFromOpen = !0, t.defaultState.copyFrom(this._dropFromOpenState), t.setState(this._dropFromOpenState, 0)) : (e.droppedFromOpen = !1, t.defaultState.copyFrom(this._riseFromOpenState), t.setState(this._riseFromOpenState, 0)), r < 0 ? (e.droppedFromPrevious = !0, t.defaultState.copyFrom(this._dropFromPreviousState), t.setState(this._dropFromPreviousState, 0)) : (e.droppedFromPrevious = !1, t.defaultState.copyFrom(this._riseFromPreviousState), t.setState(this._riseFromPreviousState, 0)); } } }, Object.defineProperty(e.prototype, "columns", { get: function get() { return this._columns || (this._columns = new Hs(this.createColumnTemplate()), this._disposers.push(new Bs(this._columns)), this._disposers.push(this._columns.template)), this._columns; }, enumerable: !0, configurable: !0 }), e.prototype.createColumnTemplate = function () { return new ru(); }, Object.defineProperty(e.prototype, "clustered", { get: function get() { return this.getPropertyValue("clustered"); }, set: function set(t) { this.setPropertyValue("clustered", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dropFromOpenState", { get: function get() { return this._dropFromOpenState || (this._dropFromOpenState = this.states.create("dropFromOpenState")), this._dropFromOpenState; }, set: function set(t) { this._dropFromOpenState = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dropFromPreviousState", { get: function get() { return this._dropFromPreviousState || (this._dropFromPreviousState = this.states.create("dropFromPreviousState")), this._dropFromPreviousState; }, set: function set(t) { this._dropFromPreviousState = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "riseFromOpenState", { get: function get() { return this._riseFromOpenState || (this._riseFromOpenState = this.states.create("riseFromOpenState")), this._riseFromOpenState; }, set: function set(t) { this._riseFromOpenState = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "riseFromPreviousState", { get: function get() { return this._riseFromPreviousState || (this._riseFromPreviousState = this.states.create("riseFromPreviousState")), this._riseFromPreviousState; }, set: function set(t) { this._riseFromPreviousState = t; }, enumerable: !0, configurable: !0 }), e.prototype.updateLegendValue = function (e, i) { var n = this; if (t.prototype.updateLegendValue.call(this, e, i), this.legendDataItem) { var r, s, o = this.legendDataItem.marker; e && (r = e.droppedFromOpen ? this._dropFromOpenState : this._riseFromOpenState, s = e.droppedFromPrevious ? this._dropFromPreviousState : this._riseFromPreviousState), pe(o.children.iterator(), function (t) { e ? (t.setState(s), t.setState(r)) : (t.setState(n._riseFromPreviousState), t.setState(n._riseFromOpenState)); }); } }, e.prototype.createLegendMarker = function (t) { var e = t.pixelWidth, i = t.pixelHeight; t.removeChildren(); var n = t.createChild(ja); n.shouldClone = !1, ne(this, n, va), n.copyFrom(this.columns.template), n.padding(0, 0, 0, 0), n.width = e, n.height = i; var r = t.dataItem; r.color = this.fill, r.colorOrig = this.fill; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.columns.template.copyFrom(e.columns.template); }, e.prototype.getBulletLocationX = function (e, i) { if (this.baseAxis == this.xAxis) { var n = e.locationX; A(n) || (n = .5); var r = this.getEndLocation(e.dataItem); return r - (r - this.getStartLocation(e.dataItem)) * n; } return t.prototype.getBulletLocationX.call(this, e, i); }, e.prototype.getBulletLocationY = function (e, i) { if (this.baseAxis == this.yAxis) { var n = e.locationY; A(n) || (n = .5); var r = this.getEndLocation(e.dataItem); return r - (r - this.getStartLocation(e.dataItem)) * n; } return t.prototype.getBulletLocationY.call(this, e, i); }, e.prototype.getAdjustedXLocation = function (e, i) { if (this.baseAxis == this.xAxis) { var n = .5; return e && (n = e.locations[i]), A(n) || (n = .5), this._endLocation - (this._endLocation - this._startLocation) * n; } return t.prototype.getAdjustedXLocation.call(this, e, i); }, e.prototype.getAdjustedYLocation = function (e, i) { if (this.baseAxis == this.yAxis) { var n = .5; return e && (n = e.locations[i]), A(n) || (n = .5), this._endLocation - (this._endLocation - this._startLocation) * n; } return t.prototype.getAdjustedXLocation.call(this, e, i); }, e.prototype.fixVerticalCoordinate = function (t) { var e = this.columns.template.pixelPaddingBottom; return R(t, -this.columns.template.pixelPaddingTop, this.yAxis.axisLength + e); }, e.prototype.fixHorizontalCoordinate = function (t) { var e = this.columns.template.pixelPaddingLeft, i = this.columns.template.pixelPaddingRight; return R(t, -e, this.xAxis.axisLength + i); }, e.prototype.disposeData = function () { t.prototype.disposeData.call(this), this.columns.clear(); }, e; }(uh); Fs.registeredClasses.ColumnSeries = ou, Fs.registeredClasses.ColumnSeriesDataItem = su; var au = function (t) { function e() { var e = t.call(this) || this; return e.className = "TreeMapSeriesDataItem", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "parentName", { get: function get() { var t = this.treeMapDataItem; if (t && t.parent) return t.parent.name; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "value", { get: function get() { var t = this.treeMapDataItem; if (t) return t.value; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "treeMapDataItem", { get: function get() { return this._dataContext; }, enumerable: !0, configurable: !0 }), e.prototype.hide = function (e, i, n, r) { var s = this.treeMapDataItem; return s && s.hide(e), t.prototype.hide.call(this, e, i, n, r); }, e.prototype.show = function (e, i, n) { var r = this.treeMapDataItem; return r && r.show(e, i, n), t.prototype.show.call(this, e, i, n); }, e; }(su), lu = function (t) { function e() { var e = t.call(this) || this; e.className = "TreeMapSeries", e.applyTheme(), e.fillOpacity = 1, e.strokeOpacity = 1, e.minBulletDistance = 0, e.columns.template.tooltipText = "{parentName} {name}: {value}", e.columns.template.configField = "config"; var i = new ta(); return e.stroke = i.getFor("background"), e.dataFields.openValueX = "x0", e.dataFields.valueX = "x1", e.dataFields.openValueY = "y0", e.dataFields.valueY = "y1", e.sequencedInterpolation = !1, e.showOnInit = !1, e.columns.template.pixelPerfect = !1, e; } return n(e, t), e.prototype.processDataItem = function (e, i) { i.seriesDataItem = e, t.prototype.processDataItem.call(this, e, i); }, e.prototype.createDataItem = function () { return new au(); }, e.prototype.show = function (e) { var i = this.defaultState.transitionDuration; return A(e) && (i = e), this.dataItems.each(function (t) { t.show(e); }), t.prototype.showReal.call(this, i); }, e.prototype.hide = function (e) { var i = this.defaultState.transitionDuration; A(e) && (i = e); var n = t.prototype.hideReal.call(this, i); return this.dataItems.each(function (t) { t.hide(e); }), n; }, e.prototype.processValues = function () {}, e.prototype.getStartLocation = function (t) { return 0; }, e.prototype.getEndLocation = function (t) { return 1; }, e.prototype.dataChangeUpdate = function () {}, e.prototype.processConfig = function (e) { e && (S(e.dataFields) && V(e.dataFields) || (e.dataFields = {})), t.prototype.processConfig.call(this, e); }, e.prototype.createLegendMarker = function (t) { var e = t.pixelWidth, i = t.pixelHeight; t.removeChildren(); var n = t.createChild(ja); n.shouldClone = !1, ne(this, n, va), n.padding(0, 0, 0, 0), n.width = e, n.height = i; var r = t.dataItem; r.color = n.fill, r.colorOrig = n.fill; }, e; }(ou); Fs.registeredClasses.TreeMapSeries = lu, Fs.registeredClasses.TreeMapSeriesDataItem = au; var hu = function (t) { function e() { var e = t.call(this) || this; return e.rows = [], e.className = "TreeMapDataItem", e.values.value = {}, e.values.x0 = {}, e.values.y0 = {}, e.values.x1 = {}, e.values.y1 = {}, e.hasChildren.children = !0, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "legendDataItem", { get: function get() { return this._legendDataItem; }, set: function set(t) { this._legendDataItem = t, t.label && (t.label.dataItem = this), t.valueLabel && (t.valueLabel.dataItem = this); }, enumerable: !0, configurable: !0 }), e.prototype.getDuration = function () { return 0; }, Object.defineProperty(e.prototype, "value", { get: function get() { var t = 0; return this.children && 0 != this.children.length ? pe(this.children.iterator(), function (e) { var i = e.value; A(i) && (t += i); }) : t = this.values.value.workingValue, t; }, set: function set(t) { this.setValue("value", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "percent", { get: function get() { return this.parent ? this.value / this.parent.value * 100 : 100; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "x0", { get: function get() { return this.values.x0.value; }, set: function set(t) { this.setValue("x0", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "x1", { get: function get() { return this.values.x1.value; }, set: function set(t) { this.setValue("x1", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "y0", { get: function get() { return this.values.y0.value; }, set: function set(t) { this.setValue("y0", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "y1", { get: function get() { return this.values.y1.value; }, set: function set(t) { this.setValue("y1", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "name", { get: function get() { return this.properties.name; }, set: function set(t) { this.setProperty("name", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "children", { get: function get() { return this.properties.children; }, set: function set(t) { this.setProperty("children", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "level", { get: function get() { return this.parent ? this.parent.level + 1 : 0; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "color", { get: function get() { var t = this.properties.color; return null == t && this.parent && (t = this.parent.color), null == t && this.component && (t = this.component.colors.getIndex(this.component.colors.step * this.index)), t; }, set: function set(t) { this.setProperty("color", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fill", { get: function get() { return this.color; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "series", { get: function get() { return this._series; }, set: function set(t) { t != this._series && (this._series && (this.component.series.removeValue(this._series), this._series.dispose()), this._series = t, this._disposers.push(t)); }, enumerable: !0, configurable: !0 }), e.prototype.hide = function (e, i, n, r) { return this.setWorkingValue("value", 0), this.children && this.children.each(function (t) { t.hide(e, i, n, r); }), t.prototype.hide.call(this, e, i, n, r); }, e.prototype.show = function (e, i, n) { return this.setWorkingValue("value", this.values.value.value), this.children && this.children.each(function (t) { t.show(e, i, n); }), t.prototype.show.call(this, e, i, n); }, e; }(ch), uu = function (t) { function e() { var e = t.call(this) || this; e.layoutAlgorithm = e.squarify, e.zoomable = !0, e.className = "TreeMap", e._usesData = !0, e.maxLevels = 2, e.currentLevel = 0, e.colors = new Sl(), e.sorting = "descending"; var i = e.xAxes.push(new eh()); i.title.disabled = !0, i.strictMinMax = !0; var n = i.renderer; n.inside = !0, n.labels.template.disabled = !0, n.ticks.template.disabled = !0, n.grid.template.disabled = !0, n.axisFills.template.disabled = !0, n.minGridDistance = 100, n.line.disabled = !0, n.baseGrid.disabled = !0; var r = e.yAxes.push(new eh()); r.title.disabled = !0, r.strictMinMax = !0; var s = r.renderer; s.inside = !0, s.labels.template.disabled = !0, s.ticks.template.disabled = !0, s.grid.template.disabled = !0, s.axisFills.template.disabled = !0, s.minGridDistance = 100, s.line.disabled = !0, s.baseGrid.disabled = !0, s.inversed = !0, e.xAxis = i, e.yAxis = r; var o = new lu(); return e.seriesTemplates = new ks(o), o.virtualParent = e, e._disposers.push(new Is(e.seriesTemplates)), e._disposers.push(o), e.zoomOutButton.events.on("hit", function () { e.zoomToChartDataItem(e._homeDataItem); }, void 0, !1), e.seriesTemplates.events.on("insertKey", function (t) { t.newValue.isTemplate = !0; }, void 0, !1), e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "navigationBar", { get: function get() { return this._navigationBar; }, set: function set(t) { var e = this; this._navigationBar != t && (this._navigationBar = t, t.parent = this, t.toBack(), t.links.template.events.on("hit", function (t) { var i = t.target.dataItem.dataContext; i.isDisposed() || (e.zoomToChartDataItem(i), e.createTreeSeries(i)); }, void 0, !0), this._disposers.push(t)); }, enumerable: !0, configurable: !0 }), e.prototype.validateData = function () { this.series.clear(), this._tempSeries = [], t.prototype.validateData.call(this), this._homeDataItem && this._homeDataItem.dispose(); var e = this.dataItems.template.clone(); this._homeDataItem = e, pe(this.dataItems.iterator(), function (t) { t.parent = e; }), e.children = this.dataItems, e.x0 = 0, e.y0 = 0, e.name = this._homeText; var i = 10 * Math.round(1e3 * this.pixelHeight / this.pixelWidth / 10) || 1e3; e.x1 = 1e3, e.y1 = i, this.xAxis.min = 0, this.xAxis.max = 1e3, this.xAxis.getMinMax(), this.yAxis.min = 0, this.yAxis.max = i, this.yAxis.getMinMax(), this.layoutItems(e), this.createTreeSeries(e); }, e.prototype.layoutItems = function (t, e) { if (t) { var i = t.children; e || (e = this.sorting), "ascending" == e && i.values.sort(function (t, e) { return t.value - e.value; }), "descending" == e && i.values.sort(function (t, e) { return e.value - t.value; }), this._updateDataItemIndexes(0), this.layoutAlgorithm(t); for (var n = 0, r = i.length; n < r; n++) { var s = i.getIndex(n); s.children && this.layoutItems(s); } } }, e.prototype.createTreeSeries = function (t) { var e = this; this._tempSeries = []; for (var i = [t], n = t.parent; null != n;) this.initSeries(n), i.push(n), n = n.parent; i.reverse(), this.navigationBar && (this.navigationBar.data = i), this.createTreeSeriesReal(t), mt(this._tempSeries, function (t) { -1 == e.series.indexOf(t) && e.series.push(t), t.zIndex = t.level; }); }, e.prototype.createTreeSeriesReal = function (t) { if (t.children && t.level < this.currentLevel + this.maxLevels) { this.initSeries(t); for (var e = 0; e < t.children.length; e++) { var i = t.children.getIndex(e); i.children && this.createTreeSeriesReal(i); } } }, e.prototype.setData = function (e) { this.currentLevel = 0, this.currentlyZoomed = void 0, this.xAxis.start = 0, this.xAxis.end = 1, this.yAxis.start = 0, this.yAxis.end = 1, t.prototype.setData.call(this, e); }, e.prototype.seriesAppeared = function () { return !0; }, e.prototype.initSeries = function (t) { var e = this; if (!t.series) { var i = void 0, n = this.seriesTemplates.getKey(t.level.toString()); (i = n ? n.clone() : this.series.create()).dataItem.dataContext = t, i.name = t.name, i.parentDataItem = t, t.series = i; var r = t.level; i.level = r; var s = t.dataContext; s && (i.config = s.config), this.dataUsers.removeValue(i), i.data = t.children.values, i.fill = t.color, i.columnsContainer.hide(0), i.bulletsContainer.hide(0), i.columns.template.adapter.add("fill", function (t, e) { var i = e.dataItem; if (i) { var n = i.treeMapDataItem; if (n) return e.fill = n.color, e.adapter.remove("fill"), n.color; } }), this.zoomable && (t.level > this.currentLevel || t.children && t.children.length > 0) && (i.columns.template.cursorOverStyle = sa.pointer, this.zoomable && i.columns.template.events.on("hit", function (i) { var n = i.target.dataItem; t.level > e.currentLevel ? e.zoomToChartDataItem(n.treeMapDataItem.parent) : e.zoomToSeriesDataItem(n); }, this, void 0)); } this._tempSeries.push(t.series); }, e.prototype.toggleBullets = function (t) { var e = this; pe(this.series.iterator(), function (i) { -1 == e._tempSeries.indexOf(i) ? (i.columnsContainer.hide(), i.bulletsContainer.hide(t)) : (i.columnsContainer.show(), i.bulletsContainer.show(t), i.dataItems.each(function (t) { t.bullets.each(function (t, e) { e.show(); }); }), i.level < e.currentLevel ? i.bulletsContainer.hide(t) : i.level == e.currentLevel && e.maxLevels > 1 && i.dataItems.each(function (t) { t.treeMapDataItem.children && t.bullets.each(function (t, e) { e.hide(); }); })); }); }, e.prototype.zoomToSeriesDataItem = function (t) { this.zoomToChartDataItem(t.treeMapDataItem); }, e.prototype.zoomToChartDataItem = function (t) { var e = this, i = this.zoomOutButton; if (i && (t != this._homeDataItem ? i.show() : i.hide()), t && t.children) { this.xAxis.zoomToValues(t.x0, t.x1), this.yAxis.zoomToValues(t.y0, t.y1), this.currentLevel = t.level, this.currentlyZoomed = t, this.createTreeSeries(t); var n = this.xAxis.rangeChangeAnimation || this.yAxis.rangeChangeAnimation; !n || n.isDisposed() || n.isFinished() ? this.toggleBullets() : (this._dataDisposers.push(n), n.events.once("animationended", function () { e.toggleBullets(); })); } }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("TreeMap chart")); }, e.prototype.createDataItem = function () { return new hu(); }, Object.defineProperty(e.prototype, "maxLevels", { get: function get() { return this.getPropertyValue("maxLevels"); }, set: function set(t) { this.setPropertyValue("maxLevels", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "currentLevel", { get: function get() { return this.getPropertyValue("currentLevel"); }, set: function set(t) { this.setPropertyValue("currentLevel", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "sorting", { get: function get() { return this.getPropertyValue("sorting"); }, set: function set(t) { this.setPropertyValue("sorting", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.createSeries = function () { return new lu(); }, Object.defineProperty(e.prototype, "homeText", { get: function get() { return this._homeText; }, set: function set(t) { this._homeText = t, this._homeDataItem && (this._homeDataItem.name = this._homeText); }, enumerable: !0, configurable: !0 }), e.prototype.processConfig = function (e) { if (e) { if (S(e.layoutAlgorithm) && T(e.layoutAlgorithm)) switch (e.layoutAlgorithm) { case "squarify": e.layoutAlgorithm = this.squarify; break; case "binaryTree": e.layoutAlgorithm = this.binaryTree; break; case "slice": e.layoutAlgorithm = this.slice; break; case "dice": e.layoutAlgorithm = this.dice; break; case "sliceDice": e.layoutAlgorithm = this.sliceDice; break; default: delete e.layoutAlgorithm; } S(e.navigationBar) && !S(e.navigationBar.type) && (e.navigationBar.type = "NavigationBar"), t.prototype.processConfig.call(this, e); } }, e.prototype.validateLayout = function () { t.prototype.validateLayout.call(this), this.layoutItems(this.currentlyZoomed); }, e.prototype.validateDataItems = function () { t.prototype.validateDataItems.call(this), this.layoutItems(this._homeDataItem), pe(this.series.iterator(), function (t) { t.validateRawData(); }), this.zoomToChartDataItem(this._homeDataItem); }, e.prototype.binaryTree = function (t) { var e, i, n = t.children, r = n.length, s = new Array(r + 1); for (s[0] = i = e = 0; e < r; ++e) s[e + 1] = i += n.getIndex(e).value; !function t(e, i, r, o, a, l, h) { if (e >= i - 1) { var u = n.getIndex(e); return u.x0 = o, u.y0 = a, u.x1 = l, void (u.y1 = h); } for (var p = s[e], c = r / 2 + p, d = e + 1, f = i - 1; d < f;) { var g = d + f >>> 1; s[g] < c ? d = g + 1 : f = g; } c - s[d - 1] < s[d] - c && e + 1 < d && --d; var y = s[d] - p, m = r - y; if (l - o > h - a) { var v = (o * m + l * y) / r; t(e, d, y, o, a, v, h), t(d, i, m, v, a, l, h); } else { var b = (a * m + h * y) / r; t(e, d, y, o, a, l, b), t(d, i, m, o, b, l, h); } }(0, r, t.value, t.x0, t.y0, t.x1, t.y1); }, e.prototype.slice = function (t) { for (var e, i = t.x0, n = t.x1, r = t.y0, s = t.y1, o = t.children, a = -1, l = o.length, h = t.value && (s - r) / t.value; ++a < l;) (e = o.getIndex(a)).x0 = i, e.x1 = n, e.y0 = r, r += e.value * h, e.y1 = r; }, e.prototype.dice = function (t) { for (var e, i = t.x0, n = t.x1, r = t.y0, s = t.y1, o = t.children, a = -1, l = o.length, h = t.value && (n - i) / t.value; ++a < l;) (e = o.getIndex(a)).y0 = r, e.y1 = s, e.x0 = i, i += e.value * h, e.x1 = i; }, e.prototype.sliceDice = function (t) { 1 & t.level ? this.slice(t) : this.dice(t); }, e.prototype.squarify = function (t) { for (var e, i, n, r, s, o, a, l, h, u, p = (1 + Math.sqrt(5)) / 2, c = t.x0, d = t.x1, f = t.y0, g = t.y1, y = t.children, m = 0, v = 0, b = y.length, x = t.value; m < b;) { i = d - c, n = g - f; do { r = y.getIndex(v++).value; } while (!r && v < b); for (s = o = r, u = r * r * (h = Math.max(n / i, i / n) / (x * p)), l = Math.max(o / u, u / s); v < b; ++v) { if (r += e = y.getIndex(v).value, e < s && (s = e), e > o && (o = e), u = r * r * h, (a = Math.max(o / u, u / s)) > l) { r -= e; break; } l = a; } var _ = this.dataItems.template.clone(); _.value = r, _.dice = i < n, _.children = y.slice(m, v), _.x0 = c, _.y0 = f, _.x1 = d, _.y1 = g, _.dice ? (_.y1 = x ? f += n * r / x : g, this.dice(_)) : (_.x1 = x ? c += i * r / x : d, this.slice(_)), x -= r, m = v; } }, e.prototype.handleSeriesAdded2 = function () {}, e.prototype.handleDataItemValueChange = function (t, e) { "value" == e && this.invalidateDataItems(); }, e.prototype.handleDataItemWorkingValueChange = function (t, e) { "value" == e && this.invalidateDataItems(); }, e.prototype.getLegendLevel = function (t) { if (t && t.children) return t.children.length > 1 ? t : 1 == t.children.length ? this.getLegendLevel(t.children.getIndex(0)) : t; }, e.prototype.feedLegend = function () { var t = this.legend; if (t) { t.dataFields.name = "name"; var e = this.getLegendLevel(this._homeDataItem); if (e) { var i = []; e.children.each(function (t) { i.push(t); }), t.data = i; } } }, e.prototype.disposeData = function () { t.prototype.disposeData.call(this), this._homeDataItem = void 0, this.series.clear(), this.navigationBar && this.navigationBar.disposeData(), this.xAxis.disposeData(), this.yAxis.disposeData(); }, e.prototype.getExporting = function () { var e = this, i = t.prototype.getExporting.call(this); return i.adapter.add("formatDataFields", function (t) { return "csv" != t.format && "xlsx" != t.format || S(e.dataFields.children) && delete t.dataFields[e.dataFields.children], t; }), i; }, e; }(dh); Fs.registeredClasses.TreeMap = uu; var pu = function (t) { function e() { var e = t.call(this) || this; return e._chart = new ys(), e.className = "AxisRendererX3D", e._disposers.push(e._chart), e.applyTheme(), e; } return n(e, t), e.prototype.updateGridElement = function (t, e, i) { e += (i - e) * t.location; var n = this.positionToPoint(e); if (t.element) { var r = this.chart.dx3D || 0, s = this.chart.dy3D || 0, o = this.getHeight(); t.path = xr({ x: r, y: s }) + _r({ x: r, y: o + s }) + _r({ x: 0, y: o }); } this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateBaseGridElement = function () { t.prototype.updateBaseGridElement.call(this); var e = this.getHeight(), i = this.chart.dx3D || 0, n = this.chart.dy3D || 0; this.baseGrid.path = xr({ x: i, y: n }) + _r({ x: 0, y: 0 }) + _r({ x: 0, y: e }); }, Object.defineProperty(e.prototype, "chart", { get: function get() { return this._chart.get(); }, set: function set(t) { t && this._chart.set(t, t.events.on("propertychanged", this.handle3DChanged, this, !1)); }, enumerable: !0, configurable: !0 }), e.prototype.handle3DChanged = function (t) { "depth" != t.property && "angle" != t.property || this.invalidate(); }, e; }(sh); Fs.registeredClasses.AxisRendererX3D = pu; var cu = function (t) { function e() { var e = t.call(this) || this; return e._chart = new ys(), e.className = "AxisRendererY3D", e._disposers.push(e._chart), e.applyTheme(), e; } return n(e, t), e.prototype.updateGridElement = function (t, e, i) { e += (i - e) * t.location; var n = this.positionToPoint(e); if (t.element) { var r = this.chart.dx3D || 0, s = this.chart.dy3D || 0, o = this.getWidth(); t.path = xr({ x: 0, y: 0 }) + _r({ x: r, y: s }) + _r({ x: o + r, y: s }); } this.positionItem(t, n), this.toggleVisibility(t, e, 0, 1); }, e.prototype.updateBaseGridElement = function () { t.prototype.updateBaseGridElement.call(this); var e = this.chart.dx3D || 0, i = this.chart.dy3D || 0, n = this.getWidth(); this.baseGrid.path = xr({ x: 0, y: 0 }) + _r({ x: n, y: 0 }) + _r({ x: n + e, y: i }); }, Object.defineProperty(e.prototype, "chart", { get: function get() { return this._chart.get(); }, set: function set(t) { t && this._chart.set(t, t.events.on("propertychanged", this.handle3DChanged, this, !1)); }, enumerable: !0, configurable: !0 }), e.prototype.handle3DChanged = function (t) { "depth" != t.property && "angle" != t.property || this.invalidate(); }, e; }(Jl), du = function (t) { function e() { var e = t.call(this) || this; return e.className = "Column3D", e; } return n(e, t), e.prototype.createAssets = function () { this.column3D = this.createChild(ml), this.column3D.shouldClone = !1, this.column3D.strokeOpacity = 0, this.column = this.column3D; }, e.prototype.validate = function () { t.prototype.validate.call(this), this.column3D && (this.column3D.width = this.pixelWidth, this.column3D.height = this.pixelHeight, this.column3D.invalid && this.column3D.validate()); }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.column3D && this.column3D.copyFrom(e.column3D); }, e.prototype.setFill = function (e) { t.prototype.setFill.call(this, e), this.column.fill = e; }, e; }(ru); Fs.registeredClasses.Column3D = du; var fu = function (t) { function e() { var e = t.call(this) || this; return e.className = "ColumnSeries3DDataItem", e.applyTheme(), e; } return n(e, t), e; }(su), gu = function (t) { function e() { var e = t.call(this) || this; return e.className = "ColumnSeries3D", e.columns.template.column3D.applyOnClones = !0, e.columns.template.hiddenState.properties.visible = !0, e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "columnsContainer", { get: function get() { return this.chart && this.chart.columnsContainer ? this.chart.columnsContainer : this._columnsContainer; }, enumerable: !0, configurable: !0 }), e.prototype.validateDataElementReal = function (e) { t.prototype.validateDataElementReal.call(this, e), e.column && (e.column.dx = this.dx, e.column.dy = this.dy); }, e.prototype.validateDataElements = function () { t.prototype.validateDataElements.call(this), this.chart && this.chart.invalidateLayout(); }, e.prototype.createColumnTemplate = function () { return new du(); }, Object.defineProperty(e.prototype, "depth", { get: function get() { return this.getPropertyValue("depth"); }, set: function set(t) { this.setPropertyValue("depth", t, !0), this.columns.template.column3D.depth = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "angle", { get: function get() { return this.getPropertyValue("angle"); }, set: function set(t) { this.setPropertyValue("angle", t), this.columns.template.column3D.angle = t; }, enumerable: !0, configurable: !0 }), e; }(ou); Fs.registeredClasses.ColumnSeries3D = gu, Fs.registeredClasses.ColumnSeries3DDataItem = fu; var yu = function (t) { function e() { var e = t.call(this) || this; return e.className = "XYChart3DDataItem", e.applyTheme(), e; } return n(e, t), e; }(ch), mu = function (t) { function e() { var e = t.call(this) || this; e._axisRendererX = pu, e._axisRendererY = cu, e.className = "XYChart3D", e.depth = 30, e.angle = 30; var i = e.seriesContainer.createChild(_a); return i.shouldClone = !1, i.isMeasured = !1, i.layout = "none", e.columnsContainer = i, e.columnsContainer.mask = e.createChild(ba), e.applyTheme(), e; } return n(e, t), e.prototype.updateSeriesMasks = function () { if (t.prototype.updateSeriesMasks.call(this), rn()) { var e = this.columnsContainer, i = e.mask; e.mask = void 0, e.mask = i; } }, Object.defineProperty(e.prototype, "depth", { get: function get() { return this.getPropertyValue("depth"); }, set: function set(t) { this.setPropertyValue("depth", t), this.fixLayout(), this.invalidateDataUsers(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "angle", { get: function get() { return this.getPropertyValue("angle"); }, set: function set(t) { this.setPropertyValue("angle", t), this.fixLayout(), this.invalidateDataUsers(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dx3D", { get: function get() { return H(this.angle) * this.depth; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "dy3D", { get: function get() { return -B(this.angle) * this.depth; }, enumerable: !0, configurable: !0 }), e.prototype.validateLayout = function () { t.prototype.validateLayout.call(this), this.fixColumns(); }, e.prototype.fixLayout = function () { this.chartContainer.marginTop = -this.dy3D, this.chartContainer.paddingRight = this.dx3D, this.scrollbarX && (this.scrollbarX.dy = this.dy3D, this.scrollbarX.dx = this.dx3D), this.scrollbarY && (this.scrollbarY.dy = this.dy3D, this.scrollbarY.dx = this.dx3D), this.fixColumns(), t.prototype.fixLayout.call(this); }, e.prototype.fixColumns = function () { var t = this, e = 1, i = 0; pe(this.series.iterator(), function (t) { t instanceof gu && (!t.clustered && i > 0 && e++, t.depthIndex = e - 1, i++); }); var n = 0; pe(this.series.iterator(), function (i) { if (i instanceof gu) { i.depth = t.depth / e, i.angle = t.angle, i.dx = t.depth / e * H(t.angle) * i.depthIndex, i.dy = -t.depth / e * B(t.angle) * i.depthIndex; var r = !1; (i.baseAxis == i.xAxis && i.xAxis.renderer.inversed || i.baseAxis == i.yAxis && i.yAxis.renderer.inversed) && (r = !0); var s = 1; i.columns.each(function (t) { t.zIndex = r ? 1e3 * (1e3 - s) + n - 100 * i.depthIndex : 1e3 * s + n - 100 * i.depthIndex, s++; }), r ? n-- : n++; } }), this.maskColumns(); }, e.prototype.processConfig = function (e) { if (e && S(e.series) && F(e.series)) for (var i = 0, n = e.series.length; i < n; i++) e.series[i].type = e.series[i].type || "ColumnSeries3D"; t.prototype.processConfig.call(this, e); }, e.prototype.maskColumns = function () { var t = this.plotContainer.pixelWidth, e = this.plotContainer.pixelHeight, i = this.dx3D, n = this.dy3D, r = xr({ x: 0, y: 0 }) + _r({ x: i, y: n }) + _r({ x: t + i, y: n }) + _r({ x: t + i, y: e + n }) + _r({ x: t, y: e }) + _r({ x: t, y: e }) + _r({ x: 0, y: e }) + " Z", s = this.columnsContainer; s && s.mask && (s.mask.path = r); }, e; }(dh); Fs.registeredClasses.XYChart3D = mu; var vu = function (t) { function e() { var e = t.call(this) || this; e.className = "HeatLegend", e.markerContainer = e.createChild(_a), e.markerContainer.shouldClone = !1, e.markerCount = 1; var i = new ja(); return i.minHeight = 20, i.minWidth = 20, i.interactionsEnabled = !1, i.fillOpacity = 1, i.cornerRadius(0, 0, 0, 0), e.markerContainer.minHeight = 20, e.markerContainer.minWidth = 20, e.orientation = "horizontal", e.markers = new Hs(i), e._disposers.push(new Bs(e.markers)), e._disposers.push(e.markers.template), e.applyTheme(), e; } return n(e, t), e.prototype.getMinFromRules = function (t) { var e, i = this.series; if (i) return ue(i.heatRules.iterator(), function (i) { return i.property != t || (e = i.min, !1); }), e; }, e.prototype.getMaxFromRules = function (t) { var e, i = this.series; if (i) return pe(i.heatRules.iterator(), function (i) { return i.property != t || (e = i.max, !1); }), e; }, e.prototype.validate = function () { t.prototype.validate.call(this); var e = this.series, i = this.minColor, n = this.maxColor; if (S(i) || (i = ei(this.getMinFromRules("fill"))), S(n) || (n = ei(this.getMaxFromRules("fill"))), e) { var r = e.fill; !S(i) && r instanceof qs && (i = r), !S(n) && r instanceof qs && (n = r); } S(n) || (n = ei(this.getMaxFromRules("fill"))); var s = w(this.getMinFromRules("fillOpacity")); A(s) || (s = 1); var o = w(this.getMaxFromRules("fillOpacity")); A(o) || (o = 1); var a = w(this.getMinFromRules("strokeOpacity")); A(a) || (a = 1); var l = w(this.getMaxFromRules("strokeOpacity")); A(l) || (l = 1); for (var u = ei(this.getMinFromRules("stroke")), p = ei(this.getMaxFromRules("stroke")), c = 0; c < this.markerCount; c++) { var d = this.markers.getIndex(c); if (d || ((d = this.markers.create()).parent = this.markerContainer, d.height = h(100), d.width = h(100)), 1 == this.markerCount) { var f = new ia(); if (f.addColor(i, s), f.addColor(n, o), "vertical" == this.orientation && (f.rotation = -90), d.fill = f, S(u) && S(p)) { var g = new ia(); g.addColor(u, a), g.addColor(p, l), "vertical" == this.orientation && (g.rotation = -90), d.stroke = g; } } else { var y = new qs(He(i.rgb, n.rgb, c / this.markerCount)); d.fill = y; var m = s + (o - s) * c / this.markerCount; if (d.fillOpacity = m, S(u) && S(p)) { var v = new qs(He(u.rgb, p.rgb, c / this.markerCount)); d.stroke = v; var b = a + (l - a) * c / this.markerCount; d.strokeOpacity = b; } } } var x = this.valueAxis.renderer; this.markerCount > 1 && ("horizontal" == this.orientation ? x.minGridDistance = this.measuredWidth / this.markerCount : x.minGridDistance = this.measuredHeight / this.markerCount), this.valueAxis.invalidate(), c = this.markerCount; for (var _ = this.markers.length; c < _; c++) this.markers.getIndex(c).parent = void 0; }, Object.defineProperty(e.prototype, "minColor", { get: function get() { return this.getPropertyValue("minColor"); }, set: function set(t) { t instanceof qs || (t = ei(t)), this.setColorProperty("minColor", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxColor", { get: function get() { return this.getPropertyValue("maxColor"); }, set: function set(t) { V(t) || (t = ei(t)), this.setColorProperty("maxColor", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "markerCount", { get: function get() { return this.getPropertyValue("markerCount"); }, set: function set(t) { this.setPropertyValue("markerCount", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "minValue", { get: function get() { return this.getPropertyValue("minValue"); }, set: function set(t) { this.setPropertyValue("minValue", t), this.valueAxis.min = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxValue", { get: function get() { return this.getPropertyValue("maxValue"); }, set: function set(t) { this.setPropertyValue("maxValue", t), this.valueAxis.max = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "orientation", { get: function get() { return this.getPropertyValue("orientation"); }, set: function set(t) { this.setPropertyValue("orientation", t, !0); var e = this.markerContainer, i = this.valueAxis; "horizontal" == t ? (S(this.width) || (this.width = 200), this.height = void 0, i.width = h(100), i.height = void 0, i.tooltip.pointerOrientation = "vertical", this.layout = "vertical", e.width = h(100), e.height = void 0, i.renderer instanceof sh || (i.renderer = new sh())) : (S(this.height) || (this.height = 200), this.width = void 0, this.layout = "horizontal", e.width = void 0, e.height = h(100), i.height = h(100), i.width = void 0, i.tooltip.pointerOrientation = "horizontal", i.renderer instanceof Jl || (i.renderer = new Jl()), i.renderer.inside = !0, i.renderer.labels.template.inside = !0, this.markerContainer.reverseOrder = !0); var n = i.renderer; n.grid.template.disabled = !0, n.axisFills.template.disabled = !0, n.baseGrid.disabled = !0, n.labels.template.padding(2, 3, 2, 3), n.minHeight = void 0, n.minWidth = void 0, this.markerContainer.layout = t; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "valueAxis", { get: function get() { return this._valueAxis || (this.valueAxis = this.createChild(eh), this.valueAxis.shouldClone = !1), this._valueAxis; }, set: function set(t) { this._valueAxis = t, t.parent = this, t.strictMinMax = !0, this.orientation = this.orientation; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "series", { get: function get() { return this._series; }, set: function set(t) { var e = this; this._series = t; var i = "value"; try { var n = t.heatRules.getIndex(0).dataField; n && (i = n); } catch (t) {} this.updateMinMax(t.dataItem.values[i].low, t.dataItem.values[i].high), t.dataItem.events.on("calculatedvaluechanged", function (n) { e.updateMinMax(t.dataItem.values[i].low, t.dataItem.values[i].high); }, void 0, !1), t.heatRules.events.on("inserted", this.invalidate, this, !1), t.heatRules.events.on("removed", this.invalidate, this, !1); }, enumerable: !0, configurable: !0 }), e.prototype.updateMinMax = function (t, e) { var i = this.valueAxis; A(this.minValue) || (i.min = t, i.invalidate()), A(this.maxValue) || (i.max = e, i.invalidate()); }, e.prototype.processConfig = function (e) { if (e && S(e.series) && T(e.series) && T(e.series)) if (this.map.hasKey(e.series)) e.series = this.map.getKey(e.series);else { var i = e.series, n = this.map.events.on("insertKey", function (t) { t.key == i && (this.series = t.newValue, n.dispose()); }, this); this._disposers.push(n), delete e.series; } t.prototype.processConfig.call(this, e); }, e; }(_a); Fs.registeredClasses.HeatLegend = vu; var bu = function (t) { function e() { var e = t.call(this) || this; return e.className = "Candlestick", e.layout = "none", e; } return n(e, t), e.prototype.createAssets = function () { t.prototype.createAssets.call(this), this.lowLine = this.createChild(Na), this.lowLine.shouldClone = !1, this.highLine = this.createChild(Na), this.highLine.shouldClone = !1; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.lowLine && this.lowLine.copyFrom(e.lowLine), this.highLine && this.highLine.copyFrom(e.highLine); }, e; }(ru); Fs.registeredClasses.Candlestick = bu; var xu = function (t) { function e() { var e = t.call(this) || this; return e.values.lowValueX = {}, e.values.lowValueY = {}, e.values.highValueX = {}, e.values.highValueY = {}, e.className = "CandlestickSeriesDataItem", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "lowValueX", { get: function get() { return this.values.lowValueX.value; }, set: function set(t) { this.setValue("lowValueX", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "lowValueY", { get: function get() { return this.values.lowValueY.value; }, set: function set(t) { this.setValue("lowValueY", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "highValueX", { get: function get() { return this.values.highValueX.value; }, set: function set(t) { this.setValue("highValueX", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "highValueY", { get: function get() { return this.values.highValueY.value; }, set: function set(t) { this.setValue("highValueY", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "closeValueX", { get: function get() { return this.values.valueX.value; }, set: function set(t) { this.setValue("valueX", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "closeValueY", { get: function get() { return this.values.valueY.value; }, set: function set(t) { this.setValue("valueY", t); }, enumerable: !0, configurable: !0 }), e; }(su), _u = function (t) { function e() { var e = t.call(this) || this; e.className = "CandlestickSeries", e.groupFields.lowValueX = "low", e.groupFields.lowValueY = "low", e.groupFields.highValueX = "high", e.groupFields.highValueY = "high", e.strokeOpacity = 1; var i = new ta(), n = i.getFor("positive"), r = i.getFor("negative"); return e.dropFromOpenState.properties.fill = r, e.dropFromOpenState.properties.stroke = r, e.riseFromOpenState.properties.fill = n, e.riseFromOpenState.properties.stroke = n, e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Candlestick Series")); }, e.prototype.createDataItem = function () { return new xu(); }, e.prototype.validateDataElementReal = function (e) { t.prototype.validateDataElementReal.call(this, e), this.validateCandlestick(e); }, e.prototype.validateCandlestick = function (t) { var e = t.column; if (e) { var i = e.lowLine, n = e.highLine; if (this.baseAxis == this.xAxis) { var r = e.pixelWidth / 2; i.x = r, n.x = r; var s = t.getWorkingValue(this.yOpenField), o = t.getWorkingValue(this.yField), a = this.yAxis.getY(t, this.yOpenField), l = this.yAxis.getY(t, this.yField), h = this.yAxis.getY(t, this.yLowField), u = this.yAxis.getY(t, this.yHighField), p = e.pixelY; i.y1 = h - p, n.y1 = u - p, s < o ? (i.y2 = a - p, n.y2 = l - p) : (i.y2 = l - p, n.y2 = a - p); } if (this.baseAxis == this.yAxis) { var c = e.pixelHeight / 2; i.y = c, n.y = c; var d = t.getWorkingValue(this.xOpenField), f = t.getWorkingValue(this.xField), g = this.xAxis.getX(t, this.xOpenField), y = this.xAxis.getX(t, this.xField), m = this.xAxis.getX(t, this.xLowField), v = this.xAxis.getX(t, this.xHighField), b = e.pixelX; i.x1 = m - b, n.x1 = v - b, d < f ? (i.x2 = g - b, n.x2 = y - b) : (i.x2 = y - b, n.x2 = g - b); } pe(this.axisRanges.iterator(), function (e) { var r = t.rangesColumns.getKey(e.uid); if (r) { var s = r.lowLine; s.x = i.x, s.y = i.y, s.x1 = i.x1, s.x2 = i.x2, s.y1 = i.y1, s.y2 = i.y2; var o = r.highLine; o.x = n.x, o.y = n.y, o.x1 = n.x1, o.x2 = n.x2, o.y1 = n.y1, o.y2 = n.y2; } }); } }, Object.defineProperty(e.prototype, "xLowField", { get: function get() { return this._xLowField; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "yLowField", { get: function get() { return this._yLowField; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "xHighField", { get: function get() { return this._xHighField; }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "yHighField", { get: function get() { return this._yHighField; }, enumerable: !0, configurable: !0 }), e.prototype.defineFields = function () { if (t.prototype.defineFields.call(this), this.baseAxis == this.xAxis) { var e = fi(this.yAxis.axisFieldName); this._yLowField = "low" + e + "Y", this._yHighField = "high" + e + "Y"; } if (this.baseAxis == this.yAxis) { var i = fi(this.xAxis.axisFieldName); this._xLowField = "low" + i + "X", this._xHighField = "high" + i + "X"; } this.addValueField(this.xAxis, this._xValueFields, this._xLowField), this.addValueField(this.xAxis, this._xValueFields, this._xHighField), this.addValueField(this.yAxis, this._yValueFields, this._yLowField), this.addValueField(this.yAxis, this._yValueFields, this._yHighField); }, e.prototype.createLegendMarker = function (t) { var e = t.pixelWidth, i = t.pixelHeight; t.removeChildren(); var n, r, s = t.createChild(bu); s.shouldClone = !1, s.copyFrom(this.columns.template); var o = s.lowLine, a = s.highLine; this.baseAxis == this.yAxis ? (n = e / 3, r = i, o.y = i / 2, a.y = i / 2, o.x2 = e / 3, a.x2 = e / 3, a.x = e / 3 * 2, s.column.x = e / 3) : (n = e, r = i / 3, o.x = e / 2, a.x = e / 2, o.y2 = i / 3, a.y2 = i / 3, a.y = i / 3 * 2, s.column.y = i / 3), s.width = n, s.height = r, ne(this, t, va), ne(this.columns.template, s, va), s.stroke = this.riseFromOpenState.properties.stroke, s.fill = s.stroke; var l = t.dataItem; l.color = s.fill, l.colorOrig = s.fill; }, e.prototype.createColumnTemplate = function () { return new bu(); }, e; }(ou); Fs.registeredClasses.CandlestickSeries = _u, Fs.registeredClasses.CandlestickSeriesDataItem = xu; var Pu = function (t) { function e() { var e = t.call(this) || this; return e.className = "OHLC", e.layout = "none", e; } return n(e, t), e.prototype.createAssets = function () { this.openLine = this.createChild(Na), this.openLine.shouldClone = !1, this.highLowLine = this.createChild(Na), this.highLowLine.shouldClone = !1, this.closeLine = this.createChild(Na), this.closeLine.shouldClone = !1; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.openLine && this.openLine.copyFrom(e.openLine), this.highLowLine && this.highLowLine.copyFrom(e.highLowLine), this.closeLine && this.closeLine.copyFrom(e.closeLine); }, e; }(bu); Fs.registeredClasses.OHLC = Pu; var wu = function (t) { function e() { var e = t.call(this) || this; return e.className = "OHLCSeriesDataItem", e.applyTheme(), e; } return n(e, t), e; }(xu), Cu = function (t) { function e() { var e = t.call(this) || this; return e.className = "OHLCSeries", e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("OHLC Series")); }, e.prototype.createDataItem = function () { return new wu(); }, e.prototype.validateCandlestick = function (t) { var e = t.column; if (e) { var i = e.openLine, n = e.highLowLine, r = e.closeLine; if (this.baseAxis == this.xAxis) { var s = e.pixelWidth / 2; n.x = s, t.getWorkingValue(this.yOpenField), t.getWorkingValue(this.yField); var o = this.yAxis.getY(t, this.yOpenField), a = this.yAxis.getY(t, this.yField), l = this.yAxis.getY(t, this.yLowField), h = this.yAxis.getY(t, this.yHighField), u = e.pixelY; i.y1 = o - u, i.y2 = o - u, i.x1 = 0, i.x2 = s, r.y1 = a - u, r.y2 = a - u, r.x1 = s, r.x2 = 2 * s, n.y1 = h - u, n.y2 = l - u; } if (this.baseAxis == this.yAxis) { var p = e.pixelHeight / 2; n.y = p, t.getWorkingValue(this.xOpenField), t.getWorkingValue(this.xField); var c = this.xAxis.getX(t, this.xOpenField), d = this.xAxis.getX(t, this.xField), f = this.xAxis.getX(t, this.xLowField), g = this.xAxis.getX(t, this.xHighField), y = e.pixelX; i.x1 = c - y, i.x2 = c - y, i.y1 = p, i.y2 = 2 * p, r.x1 = d - y, r.x2 = d - y, r.y1 = 0, r.y2 = p, n.x1 = g - y, n.x2 = f - y; } pe(this.axisRanges.iterator(), function (e) { var s = t.rangesColumns.getKey(e.uid); if (s) { var o = s.openLine; o.x = i.x, o.y = i.y, o.x1 = i.x1, o.x2 = i.x2, o.y1 = i.y1, o.y2 = i.y2; var a = s.closeLine; a.x = r.x, a.y = r.y, a.x1 = r.x1, a.x2 = r.x2, a.y1 = r.y1, a.y2 = r.y2; var l = s.highLowLine; l.x = n.x, l.y = n.y, l.x1 = n.x1, l.x2 = n.x2, l.y1 = n.y1, l.y2 = n.y2; } }); } }, e.prototype.createLegendMarker = function (t) { var e = t.pixelWidth, i = t.pixelHeight; t.removeChildren(); var n, r, s = t.createChild(Pu); s.shouldClone = !1, s.copyFrom(this.columns.template); var o = s.openLine, a = s.closeLine, l = s.highLowLine; this.baseAxis == this.yAxis ? (n = e / 3, r = i, l.y = i / 2, l.x2 = e, o.x = e / 3 * 2, o.y2 = i / 2, a.x = e / 3, a.y2 = i, a.y1 = i / 2) : (n = e, r = i / 3, l.x = e / 2, l.y2 = i, o.y = i / 3 * 2, o.x2 = e / 2, a.y = i / 3, a.x2 = e, a.x1 = e / 2), s.width = n, s.height = r, ne(this, t, va), ne(this.columns.template, s, va), s.stroke = this.riseFromOpenState.properties.stroke; var h = t.dataItem; h.color = s.stroke, h.colorOrig = s.stroke; }, e.prototype.createColumnTemplate = function () { return new Pu(); }, e; }(_u); Fs.registeredClasses.OHLCSeries = Cu, Fs.registeredClasses.OHLCSeriesDataItem = wu; var Ou = function (t) { function e() { var e = t.call(this) || this; return e.className = "StepLineSeriesSegment", e; } return n(e, t), e.prototype.drawSegment = function (t, e, i, n, r, s) { if (t.length > 0 && e.length > 0) if (r) { var o = xr(t[0]); if (t.length > 0) for (var a = 1; a < t.length; a++) { var l = t[a]; a / 2 == Math.round(a / 2) ? o += xr(l) : o += _r(l); } this.strokeSprite.path = o, (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) && (o = xr(t[0]) + br(t), o += _r(e[0]) + br(e), o += _r(t[0]), o += " Z", this.fillSprite.path = o); } else o = xr(t[0]) + br(t), this.strokeSprite.path = o, (this.fillOpacity > 0 || this.fillSprite.fillOpacity > 0) && (o += _r(e[0]) + br(e), o += _r(t[0]), o += " Z", this.fillSprite.path = o); }, e; }(fh); Fs.registeredClasses.StepLineSeriesSegment = Ou; var Su = function (t) { function e() { var e = t.call(this) || this; return e.className = "StepLineSeriesDataItem", e.applyTheme(), e; } return n(e, t), e; }(gh), Iu = function (t) { function e() { var e = t.call(this) || this; return e.className = "StepLineSeries", e.applyTheme(), e.startLocation = 0, e.endLocation = 1, e; } return n(e, t), e.prototype.createDataItem = function () { return new Su(); }, e.prototype.addPoints = function (t, e, i, n, r) { var s, o, a, l; this.baseAxis == this.xAxis && (s = this.startLocation, o = this.endLocation, a = this.getAdjustedXLocation(e, this.yOpenField), l = this.getAdjustedXLocation(e, this.yField)), this.baseAxis == this.yAxis && (a = this.startLocation, l = this.endLocation, s = this.getAdjustedXLocation(e, this.xOpenField), o = this.getAdjustedXLocation(e, this.xField)); var h = this.xAxis.getX(e, i, s), u = this.yAxis.getY(e, n, a), p = this.xAxis.getX(e, i, o), c = this.yAxis.getY(e, n, l); if (h = R(h, -1e5, 1e5), u = R(u, -1e5, 1e5), p = R(p, -1e5, 1e5), c = R(c, -1e5, 1e5), !this.noRisers && t.length > 1) { var d = t[t.length - 1]; this.baseAxis == this.xAxis && (r ? t.push({ x: d.x, y: c }) : t.push({ x: h, y: d.y })), this.baseAxis == this.yAxis && (r ? t.push({ x: p, y: d.y }) : t.push({ x: d.x, y: u })); } var f = { x: h, y: u }, g = { x: p, y: c }; r ? t.push(g, f) : t.push(f, g); }, e.prototype.drawSegment = function (t, e, i) { var n = !1; this.yAxis == this.baseAxis && (n = !0), t.drawSegment(e, i, this.tensionX, this.tensionY, this.noRisers, n); }, e.prototype.createSegment = function () { return new Ou(); }, Object.defineProperty(e.prototype, "noRisers", { get: function get() { return this.getPropertyValue("noRisers"); }, set: function set(t) { this.setPropertyValue("noRisers", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "startLocation", { get: function get() { return this.getPropertyValue("startLocation"); }, set: function set(t) { this.setPropertyValue("startLocation", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endLocation", { get: function get() { return this.getPropertyValue("endLocation"); }, set: function set(t) { this.setPropertyValue("endLocation", t, !0); }, enumerable: !0, configurable: !0 }), e; }(yh); Fs.registeredClasses.StepLineSeries = Iu, Fs.registeredClasses.StepLineSeriesDataItem = Su; var Du = function (t) { function e() { var e = t.call(this) || this; return e.className = "RadarColumn", e; } return n(e, t), e.prototype.createAssets = function () { this.radarColumn = this.createChild(Ka), this.radarColumn.shouldClone = !1, this.radarColumn.strokeOpacity = void 0, this.column = this.radarColumn; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.radarColumn && this.radarColumn.copyFrom(e.radarColumn); }, e.prototype.getTooltipX = function () { var t = this.getPropertyValue("tooltipX"); return A(t) || (t = this.radarColumn.tooltipX), t; }, e.prototype.getTooltipY = function () { var t = this.getPropertyValue("tooltipX"); return A(t) || (t = this.radarColumn.tooltipY), t; }, e; }(ru); Fs.registeredClasses.RadarColumn = Du; var ku = function (t) { function e() { var e = t.call(this) || this; return e.className = "ColumnSeriesDataItem", e.applyTheme(), e; } return n(e, t), e; }(su), Tu = function (t) { function e() { var e = t.call(this) || this; return e.className = "RadarColumnSeries", e.applyTheme(), e; } return n(e, t), e.prototype.createColumnTemplate = function () { return new Du(); }, e.prototype.validate = function () { this.chart.invalid && this.chart.validate(), t.prototype.validate.call(this); }, e.prototype.validateDataElementReal = function (t) { var e, i, n, r, s = this, o = this.chart.startAngle, a = this.chart.endAngle, l = this.yField, h = this.yOpenField, u = this.xField, c = this.xOpenField, d = this.getStartLocation(t), f = this.getEndLocation(t), g = (a - o) / (this.dataItems.length * (this.end - this.start)), y = this.columns.template.percentWidth; p(y) && (y = 100); var m = j((f - d) * (1 - y / 100) / 2, 5); if (d += m, f -= m, this.baseAxis == this.xAxis ? (n = K({ x: this.yAxis.getX(t, l, t.locations[l], "valueY"), y: this.yAxis.getY(t, l, t.locations[l], "valueY") }), r = K({ x: this.yAxis.getX(t, h, t.locations[h], "valueY"), y: this.yAxis.getY(t, h, t.locations[h], "valueY") }), e = this.xAxis.getAngle(t, c, d, "valueX"), i = this.xAxis.getAngle(t, u, f, "valueX"), o += d * g, a -= (1 - f) * g) : (n = K({ x: this.yAxis.getX(t, l, d, "valueY"), y: this.yAxis.getY(t, l, d, "valueY") }), r = K({ x: this.yAxis.getX(t, h, f, "valueY"), y: this.yAxis.getY(t, h, f, "valueY") }), e = this.xAxis.getAngle(t, u, t.locations[u], "valueX"), i = this.xAxis.getAngle(t, c, t.locations[c], "valueX")), i < e) { var v = i; i = e, e = v; } e = R(e, o, a), i = R(i, o, a); var b = t.column; b || (b = this.columns.create(), t.column = b, se(this.columns.template, b, va), t.addSprite(b), b.paper = this.paper, this.setColumnStates(b)); var x = b.radarColumn; x.startAngle = e; var _ = i - e; _ > 0 ? (x.arc = _, x.radius = n, x.innerRadius = r, b.__disabled = !1, b.parent = this.columnsContainer, pe(this.axisRanges.iterator(), function (i) { var o = t.rangesColumns.getKey(i.uid); o || (o = s.columns.create(), se(s.columns.template, o, va), ne(i.contents, o, va), o.dataItem && St(o.dataItem.sprites, o), t.addSprite(o), o.paper = s.paper, s.setColumnStates(o), t.rangesColumns.setKey(i.uid, o)); var a = o.radarColumn; a.startAngle = e, a.arc = _, a.radius = n, a.innerRadius = r, a.invalid && (a.paper = s.paper, a.validate()), o.__disabled = !1, o.parent = i.contents; })) : this.disableUnusedColumns(t); }, e.prototype.getPoint = function (t, e, i, n, r, s, o) { s || (s = "valueX"), o || (o = "valueY"); var a = K({ x: this.yAxis.getX(t, i, r, o), y: this.yAxis.getY(t, i, r, o) }); 0 == a && (a = 1e-5); var l = this.xAxis.getAngle(t, e, n, s); return { x: a * H(l), y: a * B(l) }; }, e.prototype.getMaskPath = function () { var t = this.yAxis.renderer; return Sr(t.startAngle, t.endAngle - t.startAngle, t.pixelRadius, t.pixelInnerRadius); }, e.prototype.positionBulletReal = function (t, e, i) { var n = this.xAxis, r = this.yAxis; (e < n.start || e > n.end || i < r.start || i > r.end) && (t.visible = !1), t.moveTo(this.xAxis.renderer.positionToPoint(e, i)); }, e; }(ou); Fs.registeredClasses.RadarColumnSeries = Tu, Fs.registeredClasses.RadarColumnSeriesDataItem = ku; var Au = function (t) { function e() { var e = t.call(this) || this; return e.slice = e.createChild(ba), e.slice.shouldClone = !1, e.slice.setElement(e.paper.add("path")), e.slice.isMeasured = !1, e.orientation = "vertical", e.bottomWidth = h(100), e.topWidth = h(100), e.isMeasured = !1, e.width = 10, e.height = 10, e.expandDistance = 0, e.className = "FunnelSlice", e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.pixelPaddingTop, i = this.pixelPaddingBottom, n = this.pixelPaddingRight, r = this.pixelPaddingLeft, s = this.pixelWidth - n - r, o = this.pixelHeight - e - i, a = this.expandDistance, l = ""; if ("vertical" == this.orientation) { var h = { x: (s - (m = hi(this.topWidth, s))) / 2 + r, y: e }, u = { x: (s + m) / 2 + r, y: e }, p = { x: (s + (v = hi(this.bottomWidth, s))) / 2 + r, y: e + o }, c = { x: (s - v) / 2 + r, y: e + o }, d = { x: u.x + (p.x - u.x) / 2 + a * o, y: u.y + .5 * o }, f = { x: h.x + (c.x - h.x) / 2 - a * o, y: h.y + .5 * o }, g = _r(p), y = ""; 0 != a && (g = Pr(p, d), y = Pr(h, f)), l = xr(h) + _r(u) + g + _r(c) + y, this.tickPoint = { x: u.x + (p.x - u.x) / 2, y: u.y + (p.y - u.y) / 2 }; } else { var m, v, b = { x: r, y: (o - (m = hi(this.topWidth, o))) / 2 + e }, x = { x: r, y: (o + m) / 2 + e }, _ = { x: r + s, y: (o - (v = hi(this.bottomWidth, o))) / 2 + e }, P = { x: r + s, y: (o + v) / 2 + e }; d = { y: b.y + (_.y - b.y) / 2 - a * s, x: b.x + .5 * s }, f = { y: x.y + (P.y - x.y) / 2 + a * s, x: x.x + .5 * s }, g = _r(_), y = "", 0 != a && (g = Pr(_, d), y = Pr(x, f)), l = xr(x) + _r(b) + g + _r(P) + y, this.tickPoint = { y: x.y + (P.y - x.y) / 2, x: x.x + (P.x - x.x) / 2 }; } this.slice.path = l, this.invalidateLayout(); }, e.prototype.getPoint = function (t, e) { var i = this.pixelPaddingTop, n = this.pixelPaddingBottom, r = this.pixelPaddingRight, s = this.pixelPaddingLeft, o = this.pixelWidth - r - s, a = this.pixelHeight - i - n; if ("vertical" == this.orientation) { var l = { x: (o - (c = hi(this.topWidth, o))) / 2 + s, y: i }, h = { x: (o + c) / 2 + s, y: i }, u = { x: (o + (d = hi(this.bottomWidth, o))) / 2 + s, y: i + a }, p = l.x + ({ x: (o - d) / 2 + s, y: i + a }.x - l.x) * e; return { x: p + (h.x + (u.x - h.x) * e - p) * t, y: h.y + (u.y - h.y) * e }; } var c, d, f = { x: s, y: (a - (c = hi(this.topWidth, a))) / 2 + i }, g = { x: s, y: (a + c) / 2 + i }, y = { x: s + o, y: (a - (d = hi(this.bottomWidth, a))) / 2 + i }, m = f.y + (y.y - f.y) * t; return { y: m + (g.y + ({ x: s + o, y: (a + d) / 2 + i }.y - g.y) * t - m) * e, x: f.x + (y.x - f.x) * t }; }, Object.defineProperty(e.prototype, "bottomWidth", { get: function get() { return this.getPropertyValue("bottomWidth"); }, set: function set(t) { this.setPercentProperty("bottomWidth", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "topWidth", { get: function get() { return this.getPropertyValue("topWidth"); }, set: function set(t) { this.setPercentProperty("topWidth", t, !0, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "orientation", { get: function get() { return this.getPropertyValue("orientation"); }, set: function set(t) { this.setPropertyValue("orientation", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "expandDistance", { get: function get() { return this.getPropertyValue("expandDistance"); }, set: function set(t) { this.setPropertyValue("expandDistance", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.slice && this.slice.copyFrom(e.slice); }, e; }(_a); Fs.registeredClasses.FunnelSlice = Au; var Vu = function (t) { function e() { var e = t.call(this) || this; return e._label = new ys(), e._slice = new ys(), e.className = "FunnelTick", e.element = e.paper.add("path"), e._disposers.push(e._label), e._disposers.push(e._slice), e.setPropertyValue("locationX", 0), e.setPropertyValue("locationY", 0), e.applyTheme(), e; } return n(e, t), e.prototype.draw = function () { t.prototype.draw.call(this); var e = this.slice, i = e.getPoint(this.locationX, this.locationY); if (i) { var n = this.label, r = e.dataItem.component; if ("vertical" == r.orientation) { var s = n.pixelX, o = n.pixelY; r.labelsOpposite || (s += n.maxRight); var a = Xi(i, e, this.parent), l = Xi({ x: s, y: o }, n.parent, this.parent); this.path = xr(a) + _r(l); } else s = n.pixelX, o = n.pixelY, r.labelsOpposite || (o += n.maxBottom), a = Xi(i, e, this.parent), l = Xi({ x: s, y: o }, n.parent, this.parent), this.path = xr(a) + _r(l); } }, Object.defineProperty(e.prototype, "slice", { get: function get() { return this._slice.get(); }, set: function set(t) { this._slice.set(t, new gs([t.events.on("transformed", this.invalidate, this, !1), t.events.on("validated", this.invalidate, this, !1)])); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "label", { get: function get() { return this._label.get(); }, set: function set(t) { this._label.set(t, t.events.on("transformed", this.invalidate, this, !1)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "locationX", { get: function get() { return this.getPropertyValue("locationX"); }, set: function set(t) { this.setPropertyValue("locationX", t, !1, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "locationY", { get: function get() { return this.getPropertyValue("locationY"); }, set: function set(t) { this.setPropertyValue("locationY", t, !1, !0); }, enumerable: !0, configurable: !0 }), e; }(Kl); Fs.registeredClasses.FunnelTick = Vu; var Fu = function (t) { function e() { var e = t.call(this) || this; return e.className = "FunnelSeriesDataItem", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "sliceLink", { get: function get() { var t = this; if (!this._sliceLink) { var e = this.component.sliceLinks.create(); this._sliceLink = e, this._disposers.push(e), e.parent = this.component.slicesContainer, this._disposers.push(new fs(function () { t.component && t.component.sliceLinks.removeValue(e); })), this.addSprite(e), e.visible = this.visible; } return this._sliceLink; }, enumerable: !0, configurable: !0 }), e; }(kh), Mu = function (t) { function e() { var e = t.call(this) || this; return e._nextY = 0, e.className = "FunnelSeries", e.orientation = "vertical", e.width = h(100), e.height = h(100), e.slicesContainer.width = h(100), e.slicesContainer.height = h(100), e._disposers.push(e.slicesContainer.events.on("maxsizechanged", e.invalidateDataItems, e, !1)), e.labelsOpposite = !0, e.labelsContainer.layout = "absolute", e.bottomRatio = 0, e.applyTheme(), e; } return n(e, t), e.prototype.createSlice = function () { return new Au(); }, e.prototype.createTick = function () { return new Vu(); }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Funnel Series")); }, e.prototype.createDataItem = function () { return new Fu(); }, e.prototype.initSlice = function (t) { t.isMeasured = !1, t.defaultState.properties.scale = 1, t.observe("scale", this.handleSliceScale, this), t.observe(["dx", "dy", "x", "y"], this.handleSliceMove, this), t.tooltipText = "{category}: {value.percent.formatNumber('#.#')}% ({value.value})", t.states.create("hover").properties.expandDistance = .2; }, e.prototype.initLabel = function (e) { t.prototype.initLabel.call(this, e), e.verticalCenter = "middle", e.horizontalCenter = "middle", e.isMeasured = !0, e.padding(5, 5, 5, 5); }, e.prototype.validate = function () { t.prototype.validate.call(this), this._nextY = 0; }, e.prototype.validateDataElements = function () { var e = this.slicesContainer, i = this.labelsContainer, n = this.labels.template; this.alignLabels ? (n.interactionsEnabled = !0, e.isMeasured = !0, i.isMeasured = !0) : (n.interactionsEnabled = !1, e.isMeasured = !1, i.isMeasured = !1); var r = 0, s = 0; this.dataItems.each(function (t) { S(t.value) && (s++, t.value > 0 ? r += t.getWorkingValue("value") / t.value : r += 1); }), this._total = 1 / s * r, this._count = s, t.prototype.validateDataElements.call(this), this.arrangeLabels(); }, e.prototype.getNextValue = function (t) { var e = t.index, i = t.getWorkingValue("value"); if (e < this.dataItems.length - 1) { var n = this.dataItems.getIndex(e + 1); if (i = n.getWorkingValue("value"), !n.visible || n.isHiding) return this.getNextValue(n); } return i; }, e.prototype.formDataElement = function () {}, e.prototype.validateDataElement = function (e) { if (S(e.value)) { var i = e.slice; i.orientation = this.orientation; var n = e.sliceLink; n.orientation = this.orientation; var r = e.tick, s = e.label; r.slice = i, r.label = s, this.decorateSlice(e), n.fill = i.fill, e.index == this.dataItems.length - 1 && (n.disabled = !0), t.prototype.validateDataElement.call(this, e); } }, e.prototype.decorateSlice = function (t) { var e = t.slice, i = t.sliceLink, n = t.label, r = t.tick, s = this.slicesContainer.innerWidth, o = this.slicesContainer.innerHeight, a = this.getNextValue(t), l = t.getWorkingValue("value"), h = this.bottomRatio, u = 1; if (t.value > 0 && (u = l / t.value), "vertical" == this.orientation) { var p = i.pixelHeight * u; o += p, e.topWidth = l / this.dataItem.values.value.high * s, e.bottomWidth = (l - (l - a) * h) / this.dataItem.values.value.high * s, i.topWidth = e.bottomWidth, i.bottomWidth = (l - (l - a)) / this.dataItem.values.value.high * s, e.y = this._nextY, e.height = W(0, o / this._count * u / this._total - p), e.x = s / 2, this.alignLabels ? n.x = void 0 : n.x = e.x, n.y = e.pixelY + e.pixelHeight * r.locationY, this._nextY += e.pixelHeight + p, i.y = this._nextY - p, i.x = e.x; } else { var c = i.pixelWidth * u; s += c, e.topWidth = l / this.dataItem.values.value.high * o, e.bottomWidth = (l - (l - a) * h) / this.dataItem.values.value.high * o, i.topWidth = e.bottomWidth, i.bottomWidth = (l - (l - a)) / this.dataItem.values.value.high * o, e.x = this._nextY, e.width = s / this._count * u * 1 / this._total - c, e.y = o / 2, this.alignLabels ? n.y = this.labelsContainer.measuredHeight : n.y = e.y, n.x = e.pixelX + e.pixelWidth * r.locationX, this._nextY += e.pixelWidth + c, i.x = this._nextY - c, i.y = e.y; } }, e.prototype.arrangeLabels = function () { if (this.alignLabels) { var t = this.labels.length; if (t > 1) { var e = this.labels.getIndex(t - 1), i = e.pixelY, n = e.pixelX; if (t > 1) { for (var r = t - 2; r >= 0; r--) (s = this.labels.getIndex(r)).visible && (s.invalid && s.validate(), "vertical" == this.orientation ? s.pixelY + s.measuredHeight > i && (s.y = i - s.measuredHeight) : s.pixelX + s.measuredWidth > n && (s.x = n - s.measuredWidth), i = s.pixelY, n = s.pixelX); for (i = 0, n = 0, r = 0; r < t; r++) { var s; (s = this.labels.getIndex(r)).visible && (s.invalid && s.validate(), "vertical" == this.orientation ? s.pixelY < i && (s.y = i) : s.pixelX < n && (s.x = n), i += s.measuredHeight, n += s.measuredWidth); } } } } }, e.prototype.positionBullet = function (e) { t.prototype.positionBullet.call(this, e); var i = e.dataItem.slice, n = e.locationX; A(n) || (n = .5); var r = e.locationY; A(r) || (r = 1), e.x = i.pixelX + i.measuredWidth * n, e.y = i.pixelY + i.measuredHeight * r; }, Object.defineProperty(e.prototype, "orientation", { get: function get() { return this.getPropertyValue("orientation"); }, set: function set(t) { this.setPropertyValue("orientation", t) && (this.labelsOpposite = this.labelsOpposite, this.invalidate(), "vertical" == t ? (this.ticks.template.locationX = 1, this.ticks.template.locationY = .5, this.labels.template.rotation = 0, this.layout = "horizontal") : (this.ticks.template.locationX = .5, this.ticks.template.locationY = 1, this.labels.template.rotation = -90, this.layout = "vertical")); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bottomRatio", { get: function get() { return this.getPropertyValue("bottomRatio"); }, set: function set(t) { this.setPropertyValue("bottomRatio", t) && this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "sliceLinks", { get: function get() { if (!this._sliceLinks) { var t = new Au(); t.applyOnClones = !0, t.fillOpacity = .5, t.expandDistance = -.3, t.hiddenState.properties.opacity = 0, this._disposers.push(t), this._sliceLinks = new Hs(t), this._disposers.push(new Bs(this._sliceLinks)); } return this._sliceLinks; }, enumerable: !0, configurable: !0 }), e.prototype.show = function (e) { var i = this, n = this.startIndex, r = this.endIndex, s = this.defaultState.transitionDuration; A(e) && (s = e); var o = 0; return pe(me(this.dataItems.iterator()), function (t) { var e = t[0], a = t[1]; i.sequencedInterpolation && (o = i.sequencedInterpolationDelay * e + s * (e - n) / (r - n)), a.show(s, o, ["value"]); }), t.prototype.show.call(this, e); }, e.prototype.hide = function (e) { var i = this, n = ["value"], r = this.startIndex, s = this.endIndex, o = 0, a = this.hiddenState.transitionDuration; A(e) && (a = e), pe(me(this.dataItems.iterator()), function (t) { var e = t[0], l = t[1]; i.sequencedInterpolation && (o = i.sequencedInterpolationDelay * e + a * (e - r) / (s - r)), l.hide(a, o, 0, n); }); var l = t.prototype.hide.call(this, e); return l && !l.isFinished() && l.delay(o), l; }, e.prototype.setAlignLabels = function (e) { t.prototype.setAlignLabels.call(this, e), this.ticks.template.disabled = !e; var i = this.labelsContainer; i && (e ? (i.height = void 0, i.width = void 0, i.margin(10, 10, 10, 10)) : (i.width = h(100), i.height = h(100))), this.labelsOpposite = this.labelsOpposite; }, Object.defineProperty(e.prototype, "labelsOpposite", { get: function get() { return this.getPropertyValue("labelsOpposite"); }, set: function set(t) { this.setPropertyValue("labelsOpposite", t); var e = this.labels.template, i = "none", n = "none"; this.alignLabels ? t ? (this.labelsContainer.toFront(), "vertical" == this.orientation ? (this.ticks.template.locationX = 1, e.horizontalCenter = "left", i = "right") : (this.ticks.template.locationY = 1, e.horizontalCenter = "right", n = "bottom")) : (this.labelsContainer.toBack(), "vertical" == this.orientation ? (this.ticks.template.locationX = 0, i = "left") : (n = "top", this.ticks.template.locationY = 0)) : "vertical" == this.orientation ? i = "center" : n = "middle", e.align = i, e.valign = n, this.validateLayout(), this.ticks.each(function (t) { t.invalidate(); }), this.invalidateDataItems(); }, enumerable: !0, configurable: !0 }), e; }(Th); Fs.registeredClasses.FunnelSeries = Mu, Fs.registeredClasses.FunnelSeriesDataItem = Fu; var ju = function (t) { function e() { var e = t.call(this) || this; return e.className = "PyramidSeriesDataItem", e.applyTheme(), e; } return n(e, t), e; }(Fu), Lu = function (t) { function e() { var e = t.call(this) || this; return e.className = "PyramidSeries", e.topWidth = h(0), e.bottomWidth = h(100), e.pyramidHeight = h(100), e.valueIs = "area", e.sliceLinks.template.width = 0, e.sliceLinks.template.height = 0, e.applyTheme(), e; } return n(e, t), e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Pyramid Series")); }, e.prototype.createDataItem = function () { return new ju(); }, e.prototype.validate = function () { t.prototype.validate.call(this), this._nextWidth = void 0; }, e.prototype.getNextValue = function (t) { var e = t.index, i = t.getWorkingValue("value"); return e < this.dataItems.length - 1 && (i = this.dataItems.getIndex(e + 1).getWorkingValue("value")), 0 == i && (i = 1e-6), i; }, e.prototype.validateDataElements = function () { var e = this, i = this.slicesContainer.innerWidth, n = this.slicesContainer.innerHeight; if (this.dataItems.each(function (t) { var r = t.getWorkingValue("value") / t.value, s = t.sliceLink; "vertical" == e.orientation ? n -= s.pixelHeight * r : i -= s.pixelWidth * r; }), this._pyramidHeight = hi(this.pyramidHeight, n), this._pyramidWidth = hi(this.pyramidHeight, i), "vertical" == this.orientation) { var r = (n - this._pyramidHeight) / 2; this.slicesContainer.y = r, this.labelsContainer.y = r, this.ticksContainer.y = r; } else { var s = (i - this._pyramidWidth) / 2; this.slicesContainer.x = s, this.labelsContainer.x = s, this.ticksContainer.x = s; } t.prototype.validateDataElements.call(this); }, e.prototype.decorateSlice = function (t) { var e = this.dataItem.values.value.sum; if (0 != e) { var i = t.slice, n = t.sliceLink, r = t.label, s = t.tick; this.getNextValue(t); var o = t.getWorkingValue("value"); 0 == o && (o = 1e-6); var a = this._pyramidWidth, l = this._pyramidHeight, h = this.slicesContainer.innerWidth, u = this.slicesContainer.innerHeight, p = n.pixelWidth, c = n.pixelHeight; if ("vertical" == this.orientation) { var d = hi(this.topWidth, h); A(this._nextWidth) || (this._nextWidth = d); var f = hi(this.bottomWidth, h), g = this._nextWidth, y = Math.atan2(l, d - f); 0 == (_ = Math.tan(Math.PI / 2 - y)) && (_ = 1e-8); var m = void 0, v = void 0; if ("area" == this.valueIs) { var b = (d + f) / 2 * l * o / e, x = Math.abs(g * g - 2 * b * _); v = (2 * b - (m = (g - Math.sqrt(x)) / _) * g) / m; } else v = g - (m = l * o / this.dataItem.values.value.sum) * _; i.height = m, i.width = h, i.bottomWidth = v, i.topWidth = g, n.topWidth = i.bottomWidth, n.bottomWidth = i.bottomWidth, i.y = this._nextY, this.alignLabels ? r.x = 0 : r.x = h / 2, r.y = i.pixelY + i.pixelHeight * s.locationY + i.dy, this._nextY += i.pixelHeight + c * o / t.value, n.y = this._nextY - c, n.x = h / 2; } else { d = hi(this.topWidth, u), A(this._nextWidth) || (this._nextWidth = d); var _; f = hi(this.bottomWidth, u), g = this._nextWidth, y = Math.atan2(a, d - f), 0 == (_ = Math.tan(Math.PI / 2 - y)) && (_ = 1e-8); var P = void 0; v = void 0, v = "area" == this.valueIs ? (2 * (b = (d + f) / 2 * a * o / this.dataItem.values.value.sum) - (P = (g - Math.sqrt(g * g - 2 * b * _)) / _) * g) / P : g - (P = a * o / this.dataItem.values.value.sum) * _, i.width = P, i.height = u, i.bottomWidth = v, i.topWidth = g, n.topWidth = i.bottomWidth, n.bottomWidth = i.bottomWidth, i.x = this._nextY, this.alignLabels ? r.y = this.labelsContainer.measuredHeight : r.y = u / 2, r.x = i.pixelX + i.pixelWidth * s.locationX + i.dx, this._nextY += i.pixelWidth + p * o / t.value, n.x = this._nextY - p, n.y = u / 2; } this._nextWidth = i.bottomWidth; } }, Object.defineProperty(e.prototype, "topWidth", { get: function get() { return this.getPropertyValue("topWidth"); }, set: function set(t) { this.setPercentProperty("topWidth", t, !1, !1, 10, !1) && this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pyramidHeight", { get: function get() { return this.getPropertyValue("pyramidHeight"); }, set: function set(t) { this.setPercentProperty("pyramidHeight", t, !1, !1, 10, !1) && this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "bottomWidth", { get: function get() { return this.getPropertyValue("bottomWidth"); }, set: function set(t) { this.setPercentProperty("bottomWidth", t, !1, !1, 10, !1) && this.invalidate(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "valueIs", { get: function get() { return this.getPropertyValue("valueIs"); }, set: function set(t) { this.setPropertyValue("valueIs", t) && this.invalidate(); }, enumerable: !0, configurable: !0 }), e; }(Mu); Fs.registeredClasses.PyramidSeries = Lu, Fs.registeredClasses.PyramidSeriesDataItem = ju; var Eu = function (t) { function e() { var e = t.call(this) || this; return e.className = "PictorialStackedSeriesDataItem", e.applyTheme(), e; } return n(e, t), e; }(ju), Ru = function (t) { function e() { var e = t.call(this) || this; return e.className = "PictorialStackedSeries", e.topWidth = h(100), e.bottomWidth = h(100), e.valueIs = "height", e.applyTheme(), e.startLocation = 0, e.endLocation = 1, e._maskSprite = e.slicesContainer.createChild(ba), e._maskSprite.visible = !1, e._maskSprite.zIndex = 100, e._maskSprite.shouldClone = !1, e; } return n(e, t), e.prototype.validateDataElements = function () { var e = this.slicesContainer.maxWidth, i = this.slicesContainer.maxHeight, n = this._maskSprite, r = n.measuredWidth / n.scale, s = n.measuredHeight / n.scale, o = X(i / s, e / r); o == 1 / 0 && (o = 1), o = W(.001, o); var a = this.startLocation, l = this.endLocation, h = X(e, r * o), u = X(i, s * o); if (n.scale = o, "vertical" == this.orientation ? (this.topWidth = h + 4, this.bottomWidth = h + 4, this.pyramidHeight = u * (l - a), n.x = e / 2, n.y = u / 2) : (this.topWidth = u + 4, this.bottomWidth = u + 4, this.pyramidHeight = h * (l - a), n.valign = "middle", n.x = h / 2, n.y = i / 2), n.verticalCenter = "middle", n.horizontalCenter = "middle", t.prototype.validateDataElements.call(this), "vertical" == this.orientation) { var p = (i - u) / 2; this.slicesContainer.y = p, this.labelsContainer.y = p, this.ticksContainer.y = p, this.slices.template.dy = a * u; } else { var c = (e - h) / 2; this.slicesContainer.x = c, this.labelsContainer.x = c, this.ticksContainer.x = c, this.slices.template.dx = a * h; } h > 0 && u > 0 && (this.slicesContainer.mask = this._maskSprite); }, e.prototype.applyInternalDefaults = function () { t.prototype.applyInternalDefaults.call(this), S(this.readerTitle) || (this.readerTitle = this.language.translate("Pyramid Series")); }, e.prototype.createDataItem = function () { return new Eu(); }, Object.defineProperty(e.prototype, "maskSprite", { get: function get() { return this._maskSprite; }, enumerable: !0, configurable: !0 }), e.prototype.initSlice = function (e) { t.prototype.initSlice.call(this, e); var i = e.states.getKey("hover"); i && (i.properties.expandDistance = 0); }, Object.defineProperty(e.prototype, "startLocation", { get: function get() { return this.getPropertyValue("startLocation"); }, set: function set(t) { this.setPropertyValue("startLocation", t) && this.invalidateDataItems(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endLocation", { get: function get() { return this.getPropertyValue("endLocation"); }, set: function set(t) { this.setPropertyValue("endLocation", t) && this.invalidateDataItems(); }, enumerable: !0, configurable: !0 }), e; }(Lu); Fs.registeredClasses.PictorialStackedSeries = Ru, Fs.registeredClasses.PictorialStackedSeriesDataItem = Eu; var Bu = function (t) { function e() { var e = t.call(this) || this; return e.className = "ConeColumn", e; } return n(e, t), e.prototype.createAssets = function () { this.coneColumn = this.createChild(gl), this.coneColumn.shouldClone = !1, this.column = this.coneColumn; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.coneColumn && this.coneColumn.copyFrom(e.coneColumn); }, e; }(ru); Fs.registeredClasses.ConeColumn = Bu; var Nu = function (t) { function e() { var e = t.call(this) || this; return e.className = "ConeSeriesDataItem", e.applyTheme(), e; } return n(e, t), e; }(su), Hu = function (t) { function e() { var e = t.call(this) || this; return e.className = "ConeSeries", e.applyTheme(), e; } return n(e, t), e.prototype.createColumnTemplate = function () { return new Bu(); }, e.prototype.getMaskPath = function () { var t = 0, e = 0, i = this.columns.getIndex(0); if (i) return this.baseAxis == this.xAxis ? e = i.coneColumn.bottom.radiusY + 1 : t = i.coneColumn.bottom.radiusY + 1, kr({ x: -t, y: 0, width: this.xAxis.axisLength + t, height: this.yAxis.axisLength + e }); }, e.prototype.validateDataElementReal = function (e) { if (t.prototype.validateDataElementReal.call(this, e), e.column) { var i = e.column.coneColumn; i.fill = e.column.fill, this.baseAxis == this.yAxis ? i.orientation = "horizontal" : i.orientation = "vertical"; } }, e; }(ou); Fs.registeredClasses.ConeSeries = Hu, Fs.registeredClasses.ConeSeriesDataItem = Nu; var Wu = function (t) { function e() { var e = t.call(this) || this; return e.className = "CurvedColumn", e; } return n(e, t), e.prototype.createAssets = function () { this.curvedColumn = this.createChild(ba), this.curvedColumn.shouldClone = !1, this.setPropertyValue("tension", .7), this.width = h(120), this.height = h(120), this.column = this.curvedColumn; }, e.prototype.draw = function () { t.prototype.draw.call(this); var e, i = this.realWidth, n = this.realHeight, r = this.realX - this.pixelX, s = this.realY - this.pixelY; this.width; var o = 1, a = 1; "vertical" == this.orientation ? (o = this.tension, e = [{ x: 0, y: n + s }, { x: i / 2, y: s }, { x: i, y: n + s }]) : (a = this.tension, e = [{ x: r, y: 0 }, { x: r + i, y: n / 2 }, { x: r, y: n }]); var l = xr(e[0]) + new sl(o, a).smooth(e); this.column.path = l; }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.curvedColumn && this.curvedColumn.copyFrom(e.curvedColumn); }, Object.defineProperty(e.prototype, "tension", { get: function get() { return this.getPropertyValue("tension"); }, set: function set(t) { this.setPropertyValue("tension", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "orientation", { get: function get() { return this.getPropertyValue("orientation"); }, set: function set(t) { this.setPropertyValue("orientation", t, !0); }, enumerable: !0, configurable: !0 }), e; }(ru); Fs.registeredClasses.CurvedColumn = Wu; var Xu = function (t) { function e() { var e = t.call(this) || this; return e.className = "CurvedColumnSeriesDataItem", e.applyTheme(), e; } return n(e, t), e; }(su), Yu = function (t) { function e() { var e = t.call(this) || this; return e.className = "CurvedColumnSeries", e.applyTheme(), e; } return n(e, t), e.prototype.createColumnTemplate = function () { return new Wu(); }, e.prototype.validateDataElementReal = function (e) { t.prototype.validateDataElementReal.call(this, e); var i = e.column; (i = e.column) && (e.column.curvedColumn.fill = e.column.fill, this.baseAxis == this.yAxis ? i.orientation = "horizontal" : i.orientation = "vertical"); }, e; }(ou); Fs.registeredClasses.CurvedColumnSeries = Yu, Fs.registeredClasses.CurvedColumnSeriesDataItem = Xu; var zu = function (t) { function e() { var e = t.call(this) || this; return e.className = "DurationAxisDataItem", e.applyTheme(), e; } return n(e, t), e; }(th), Uu = function (t) { function e() { var e = t.call(this) || this; return e._baseUnit = "second", e.className = "DurationAxis", e.setPropertyValue("maxZoomFactor", 1e6), e.applyTheme(), e; } return n(e, t), e.prototype.formatLabel = function (t, e) { return this.durationFormatter.format(t, e || this.axisDurationFormat); }, e.prototype.adjustMinMax = function (e, i, n, r, s) { var a, l, h, u = this.baseUnit; if (this.setPropertyValue("maxPrecision", 0), "millisecond" == u || "second" == u || "minute" == u || "hour" == u) { r <= 1 && (r = 1), r = Math.round(r); var p = e, c = i; 0 === n && (n = Math.abs(i)); var d, f = [60, 30, 20, 15, 10, 2, 1], g = 1; "hour" == u && (f = [24, 12, 6, 4, 2, 1]); try { for (var y = o(f), m = y.next(); !m.done; m = y.next()) { var v = m.value; if (n / v > r) { g = v; break; } } } catch (t) { l = { error: t }; } finally { try { m && !m.done && (h = y["return"]) && h.call(y); } finally { if (l) throw l.error; } } var b = Math.ceil((i - e) / g / r), x = Math.log(Math.abs(b)) * Math.LOG10E, _ = Math.pow(10, Math.floor(x)) / 10; d = g * (b = Y(f, b / _) * _), this.durationFormatter.getValueUnit(d, this.baseUnit), e = Math.floor(e / d) * d, i = Math.ceil(i / d) * d, s && ((e -= d) < 0 && p >= 0 && (e = 0), (i += d) > 0 && c <= 0 && (i = 0)), a = { min: e, max: i, step: d }; } else a = t.prototype.adjustMinMax.call(this, e, i, n, r, s); return this.axisDurationFormat = this.durationFormatter.getFormat(a.step, a.max, this.baseUnit), a; }, Object.defineProperty(e.prototype, "tooltipDurationFormat", { get: function get() { return this._tooltipDurationFormat; }, set: function set(t) { this._tooltipDurationFormat = t; }, enumerable: !0, configurable: !0 }), e.prototype.getTooltipText = function (t) { var e = j(this.positionToValue(t), this._stepDecimalPlaces), i = this.formatLabel(e, this.tooltipDurationFormat); return this._adapterO ? this._adapterO.apply("getTooltipText", i) : i; }, Object.defineProperty(e.prototype, "baseUnit", { get: function get() { return this._baseUnit; }, set: function set(t) { this._baseUnit != t && (this._baseUnit = t, this.durationFormatter.baseUnit = t, this.invalidate()); }, enumerable: !0, configurable: !0 }), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.baseUnit = e.baseUnit; }, e; }(eh); Fs.registeredClasses.DurationAxis = Uu, Fs.registeredClasses.DurationAxisDataItem = zu; var Gu = function (t) { function e() { var e = t.call(this) || this; e.className = "CircleBullet"; var i = e.createChild(Ea); return i.shouldClone = !1, i.radius = 5, i.isMeasured = !1, e.circle = i, e.applyTheme(), e; } return n(e, t), e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.circle.copyFrom(e.circle); }, e; }(Vl); Fs.registeredClasses.CircleBullet = Gu; var Ku = function (t) { function e() { var e = t.call(this) || this; return e.className = "ErrorBullet", e.errorLine = e.createChild(ba), e.errorLine.shouldClone = !1, e.width = 20, e.height = 20, e.strokeOpacity = 1, e.isDynamic = !0, e; } return n(e, t), e.prototype.validatePosition = function () { t.prototype.validatePosition.call(this); var e = this.pixelWidth / 2, i = this.pixelHeight / 2; this.errorLine.path = xr({ x: -e, y: -i }) + _r({ x: e, y: -i }) + xr({ x: 0, y: -i }) + _r({ x: 0, y: i }) + xr({ x: -e, y: i }) + _r({ x: e, y: i }); }, e.prototype.copyFrom = function (e) { t.prototype.copyFrom.call(this, e), this.errorLine.copyFrom(e.errorLine); }, e; }(Vl); Fs.registeredClasses.ErrorBullet = Ku; var Zu = function (t) { function e() { var e = t.call(this) || this; return e.className = "NavigationBarDataItem", e.applyTheme(), e; } return n(e, t), Object.defineProperty(e.prototype, "name", { get: function get() { return this.properties.name; }, set: function set(t) { this.setProperty("name", t); }, enumerable: !0, configurable: !0 }), e; }(Va), qu = function (t) { function e() { var e = t.call(this) || this; e.className = "NavigationBar"; var i = new ta(), n = new Qa(); n.valign = "middle", n.paddingTop = 8, n.paddingBottom = 8, e.paddingBottom = 2, e.links = new Hs(n), e._disposers.push(new Bs(e.links)), e._disposers.push(n), e._linksIterator = new Ss(e.links, function () { return e.links.create(); }), e._linksIterator.createNewItems = !0; var r = new rl(); r.direction = "right", r.width = 8, r.height = 12, r.fill = i.getFor("alternativeBackground"), r.fillOpacity = .5, r.valign = "middle", r.marginLeft = 10, r.marginRight = 10, e.separators = new Hs(r), e._disposers.push(new Bs(e.separators)), e._disposers.push(r); var s = new Qa(); return e.activeLink = s, s.copyFrom(n), s.valign = "middle", s.fontWeight = "bold", e.width = h(100), e.layout = "grid", e.dataFields.name = "name", e.applyTheme(), e; } return n(e, t), e.prototype.validateDataElements = function () { this.removeChildren(), this._linksIterator.reset(), t.prototype.validateDataElements.call(this); }, e.prototype.validateDataElement = function (e) { var i; if (t.prototype.validateDataElement.call(this, e), e.index < this.dataItems.length - 1) { (i = this._linksIterator.getLast()).parent = this; var n = this.separators.create(); n.parent = this, n.valign = "middle"; } else (i = this.activeLink).events.copyFrom(this.links.template.events), i.hide(0), i.show(), i.parent = this; i.dataItem = e, i.text = e.name, i.validate(); }, e; }(Fa); Fs.registeredClasses.NavigationBar = qu, Fs.registeredClasses.NavigationBarDataItem = Zu; var $u = function (t) { function e() { var e = t.call(this) || this; e.point = { x: 0, y: 0 }, e._stick = "none", e.className = "Cursor", e.width = h(100), e.height = h(100), e.shouldClone = !1, e.hide(0), e.trackable = !0, e.clickable = !0, e.isMeasured = !1; var i = pr(); return e._disposers.push(i.body.events.on("down", e.handleCursorDown, e)), e._disposers.push(i.body.events.on("up", e.handleCursorUp, e)), e._disposers.push(i.body.events.on("track", e.handleCursorMove, e)), e.applyTheme(), e; } return n(e, t), e.prototype.handleCursorMove = function (t) { if (!(!this.interactionsEnabled || this.interactions.isTouchProtected && t.touch)) { if (("zoom" == this._generalBehavior || "pan" == this._generalBehavior) && this.downPoint || pr().isLocalElement(t.pointer, this.paper.svg, this.uid)) { var e = Ki(t.pointer.point, this); return "hard" == this._stick && this._stickPoint && (e = this._stickPoint), "soft" == this._stick && this._stickPoint && (this.fitsToBounds(e) || (e = this._stickPoint)), this.triggerMove(e), e; } this.isHidden && this.isHiding || this.hide(); } }, e.prototype.hideReal = function (e) { if ("hard" != this._stick && "soft" != this._stick || !this._stickPoint) return t.prototype.hideReal.call(this, e); }, e.prototype.triggerMove = function (t, e) { t.x = j(t.x, 1), t.y = j(t.y, 1), e && (this._stick = e), "hard" != e && "soft" != e || (this._stickPoint = t), this.triggerMoveReal(t); }, e.prototype.triggerMoveReal = function (t) { this.point.x == t.x && this.point.y == t.y || (this.point = t, this.invalidatePosition(), this.fitsToBounds(t) ? this.show(0) : this.downPoint || this.hide(0), this.visible && (this.getPositions(), this.dispatch("cursorpositionchanged"))); }, e.prototype.triggerDown = function (t) { this.triggerDownReal(t); }, e.prototype.triggerDownReal = function (t) { switch (this._generalBehavior) { case "zoom": this.dispatchImmediately("zoomstarted"); break; case "select": this.dispatchImmediately("selectstarted"); break; case "pan": this.dispatchImmediately("panstarted"), pr().setGlobalStyle(sa.grabbing); } }, e.prototype.triggerUp = function (t) { this.triggerUpReal(t); }, e.prototype.triggerUpReal = function (t) { Ls.requestFrame(), this.updatePoint(this.upPoint); var e = pr(); if (K(this._upPointOrig, this._downPointOrig) > e.getHitOption(this.interactions, "hitTolerance")) { switch (this._generalBehavior) { case "zoom": this.dispatch("zoomended"); break; case "select": this.dispatch("selectended"); break; case "pan": this.dispatch("panended"), e.setGlobalStyle(sa["default"]); } this.downPoint = void 0, this.updateSelection(); } else "select" == this._generalBehavior && this.dispatchImmediately("selectended"), this.dispatchImmediately("behaviorcanceled"), e.setGlobalStyle(sa["default"]), this.downPoint = void 0; }, e.prototype.updateSelection = function () {}, e.prototype.getPositions = function () { this.xPosition = this.point.x / this.innerWidth, this.yPosition = 1 - this.point.y / this.innerHeight; }, e.prototype.handleCursorDown = function (t) { if (!(!this.interactionsEnabled || this.interactions.isTouchProtected && t.touch) && pr().isLocalElement(t.pointer, this.paper.svg, this.uid)) { var e = Ki(t.pointer.point, this); this._downPointOrig = { x: e.x, y: e.y }, t.event.cancelable && this.shouldPreventGestures(t.touch) && this.fitsToBounds(e) && t.event.preventDefault(), this.triggerMove(e), this.triggerDown(e); } }, e.prototype.shouldPreventGestures = function (t) { return !0; }, e.prototype.updatePoint = function (t) {}, e.prototype.handleCursorUp = function (t) { if (this.interactionsEnabled && (("zoom" == this._generalBehavior || "pan" == this._generalBehavior) && this.downPoint || pr().isLocalElement(t.pointer, this.paper.svg, this.uid))) { var e = Ki(t.pointer.point, this); this._upPointOrig = { x: e.x, y: e.y }, this.triggerMove(e), this.triggerUp(e); } }, Object.defineProperty(e.prototype, "chart", { get: function get() { return this._chart; }, set: function set(t) { this._chart = t, S(this._chart.plotContainer) && pr().lockElement(this._chart.plotContainer.interactions); }, enumerable: !0, configurable: !0 }), e; }(_a); Fs.registeredClasses.Cursor = $u; var Ju = function (t) { function e() { var e = t.call(this) || this; e._lineX = new ys(), e._lineY = new ys(), e._xAxis = new ys(), e._yAxis = new ys(), e.className = "XYCursor", e.behavior = "zoomX", e.maxPanOut = .1; var i = new ta(), n = e.createChild(ba); n.shouldClone = !1, n.fillOpacity = .2, n.fill = i.getFor("alternativeBackground"), n.isMeasured = !1, n.visible = !1, n.interactionsEnabled = !1, e.selection = n, e._disposers.push(e.selection); var r = e.createChild(ba); r.shouldClone = !1, r.stroke = i.getFor("grid"), r.fill = Je(), r.strokeDasharray = "3,3", r.isMeasured = !1, r.strokeOpacity = .4, r.interactionsEnabled = !1, r.y = 0, e.lineX = r, e._disposers.push(e.lineX); var s = e.createChild(ba); return s.shouldClone = !1, s.stroke = i.getFor("grid"), s.fill = Je(), s.strokeDasharray = "3,3", s.isMeasured = !1, s.strokeOpacity = .4, s.interactionsEnabled = !1, s.x = 0, e.lineY = s, e._disposers.push(e.lineY), e.events.on("sizechanged", e.updateSize, e, !1), e._disposers.push(e._lineX), e._disposers.push(e._lineY), e._disposers.push(e._xAxis), e._disposers.push(e._yAxis), e.mask = e, e.hideSeriesTooltipsOnSelection = !0, e.applyTheme(), e; } return n(e, t), e.prototype.updateSize = function () { this.lineX && (this.lineX.path = xr({ x: 0, y: 0 }) + _r({ x: 0, y: this.innerHeight })), this.lineY && (this.lineY.path = xr({ x: 0, y: 0 }) + _r({ x: this.innerWidth, y: 0 })); }, e.prototype.updateSelection = function () { if (this._usesSelection) { var t = this.downPoint, e = this.behavior; if (t) { var i = this.point; this.lineX && (i.x = this.lineX.pixelX), this.lineY && (i.y = this.lineY.pixelY); var n = this.selection, r = Math.min(i.x, t.x), s = Math.min(i.y, t.y), o = j(Math.abs(t.x - i.x), this._positionPrecision), a = j(Math.abs(t.y - i.y), this._positionPrecision); switch (e) { case "zoomX": s = 0, a = this.pixelHeight; break; case "zoomY": r = 0, o = this.pixelWidth; break; case "selectX": s = 0, a = this.pixelHeight; break; case "selectY": r = 0, o = this.pixelWidth; } n.x = r, n.y = s, n.path = Dr(o, a), n.validatePosition(); } else "select" != this._generalBehavior && this.selection.hide(); } }, e.prototype.fixPoint = function (t) { return t.x = Math.max(0, t.x), t.y = Math.max(0, t.y), t.x = Math.min(this.pixelWidth, t.x), t.y = Math.min(this.pixelHeight, t.y), t; }, e.prototype.triggerMoveReal = function (e) { t.prototype.triggerMoveReal.call(this, e), this.snapToSeries && !this.snapToSeries.isHidden || this.updateLinePositions(e), this.downPoint && K(this.downPoint, e) > 3 && "pan" == this._generalBehavior && (this.getPanningRanges(), this.dispatch("panning")); }, e.prototype.updateLinePositions = function (t) { t = this.fixPoint(this.point), this.lineX && this.lineX.visible && !this.xAxis && (this.lineX.x = t.x), this.lineY && this.lineY.visible && !this.yAxis && (this.lineY.y = t.y), this.updateSelection(); }, e.prototype.triggerDownReal = function (e) { if (this.visible && !this.isHiding) { if ("select" == this._generalBehavior && (this.selection.parent = this.parent), this.fitsToBounds(e)) { this.downPoint = { x: e.x, y: e.y }, this.updatePoint(e), this.point.x = this.downPoint.x, this.point.y = this.downPoint.y; var i = this.selection, n = this.downPoint.x, r = this.downPoint.y; this._usesSelection && (i.x = n, i.y = r, i.path = "", i.show()), t.prototype.triggerDownReal.call(this, e); } else this.downPoint = void 0; } else this.downPoint = void 0; }, e.prototype.updatePoint = function (t) { this.lineX && (t.x = this.lineX.pixelX), this.lineY && (t.y = this.lineY.pixelY); }, e.prototype.triggerUpReal = function (e) { K(this._upPointOrig, this._downPointOrig) > pr().getHitOption(this.interactions, "hitTolerance") ? this.downPoint && (this.upPoint = e, this.updatePoint(this.upPoint), "pan" != this._generalBehavior && this.getRanges(), "select" != this._generalBehavior && this.selection.hide(), t.prototype.triggerUpReal.call(this, e)) : ("select" != this._generalBehavior && this.selection.hide(0), "pan" == this._generalBehavior && pr().setGlobalStyle(sa["default"])), this.downPoint = void 0, this.dispatch("cursorpositionchanged"); }, e.prototype.getPanningRanges = function () { var t = j(this.downPoint.x / this.innerWidth, 5), e = j(this.downPoint.y / this.innerHeight, 5), i = t - j(this.point.x / this.innerWidth, 5), n = -e + j(this.point.y / this.innerHeight, 5); this.xRange = { start: i, end: 1 + i }, this.yRange = { start: n, end: 1 + n }, "panX" == this.behavior && (this.yRange.start = 0, this.yRange.end = 1), "panY" == this.behavior && (this.xRange.start = 0, this.xRange.end = 1); }, e.prototype.getRanges = function () { this.lineX && (this.upPoint.x = this.lineX.pixelX), this.lineY && (this.upPoint.y = this.lineY.pixelY), this.selection; var t = j(this.downPoint.x / this.innerWidth, 5), e = j(this.upPoint.x / this.innerWidth, 5), i = j(this.downPoint.y / this.innerHeight, 5), n = j(this.upPoint.y / this.innerHeight, 5); this.xRange = { start: X(t, e), end: W(t, e) }, this.yRange = { start: X(i, n), end: W(i, n) }; }, Object.defineProperty(e.prototype, "behavior", { get: function get() { return this.getPropertyValue("behavior"); }, set: function set(t) { this.setPropertyValue("behavior", t, !0), this._usesSelection = !1, -1 != t.indexOf("zoom") && (this._generalBehavior = "zoom", this._usesSelection = !0), -1 != t.indexOf("select") && (this._generalBehavior = "select", this._usesSelection = !0), -1 != t.indexOf("pan") && (this._generalBehavior = "pan", this._usesSelection = !1); }, enumerable: !0, configurable: !0 }), e.prototype.shouldPreventGestures = function (t) { return !(this.interactions.isTouchProtected && t || "none" == this.behavior); }, Object.defineProperty(e.prototype, "fullWidthLineX", { get: function get() { return this.getPropertyValue("fullWidthLineX"); }, set: function set(t) { this.setPropertyValue("fullWidthLineX", t), t || this.updateSize(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "fullWidthLineY", { get: function get() { return this.getPropertyValue("fullWidthLineY"); }, set: function set(t) { this.setPropertyValue("fullWidthLineY", t), t || this.updateSize(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "hideSeriesTooltipsOnSelection", { get: function get() { return this.getPropertyValue("hideSeriesTooltipsOnSelection"); }, set: function set(t) { this.setPropertyValue("hideSeriesTooltipsOnSelection", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "maxPanOut", { get: function get() { return this.getPropertyValue("maxPanOut"); }, set: function set(t) { this.setPropertyValue("maxPanOut", t); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "xAxis", { get: function get() { return this._xAxis.get(); }, set: function set(t) { this._xAxis.get() != t && this._xAxis.set(t, new gs([t.tooltip.events.on("positionchanged", this.handleXTooltipPosition, this, !1)])); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "yAxis", { get: function get() { return this._yAxis.get(); }, set: function set(t) { this._yAxis.get() != t && this._yAxis.set(t, new gs([t.tooltip.events.on("positionchanged", this.handleYTooltipPosition, this, !1)])); }, enumerable: !0, configurable: !0 }), e.prototype.handleXTooltipPosition = function (t) { var e = this.xAxis.tooltip, i = Hi({ x: e.pixelX, y: e.pixelY }, this), n = i.x; if (i.y = 1, this.lineX && (this.lineX.x = n, this.fitsToBounds(i) || this.hide()), this.xAxis && this.fullWidthLineX) { var r = this.xAxis.currentItemStartPoint, s = this.xAxis.currentItemEndPoint; if (r && s) { this.lineX.x = n; var o = s.x - r.x; this.lineX.path = Dr(o, this.innerHeight, -o / 2); } } }, e.prototype.handleYTooltipPosition = function (t) { var e = this.yAxis.tooltip, i = Hi({ x: e.pixelX, y: e.pixelY }, this), n = i.y; if (i.x = 1, this.lineY && (this.lineY.y = n, this.fitsToBounds(i) || this.hide()), this.yAxis && this.fullWidthLineY) { var r = this.yAxis.currentItemStartPoint, s = this.yAxis.currentItemEndPoint; if (r && s) { this.lineY.y = n; var o = s.y - r.y; this.lineY.path = Dr(this.innerWidth, o, 0, -o / 2); } } }, Object.defineProperty(e.prototype, "lineX", { get: function get() { return this._lineX.get(); }, set: function set(t) { t ? (t.setElement(this.paper.add("path")), this._lineX.set(t, t.events.on("positionchanged", this.updateSelection, this, !1)), t.interactionsEnabled = !1, t.parent = this) : this._lineX.reset(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "lineY", { get: function get() { return this._lineY.get(); }, set: function set(t) { t ? (t.setElement(this.paper.add("path")), this._lineY.set(t, t.events.on("positionchanged", this.updateSelection, this, !1)), t.parent = this, t.interactionsEnabled = !1) : this._lineY.reset(); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "selection", { get: function get() { return this._selection; }, set: function set(t) { this._selection = t, t && (t.element = this.paper.add("path"), t.parent = this); }, enumerable: !0, configurable: !0 }), e.prototype.processConfig = function (e) { e && (S(e.xAxis) && T(e.xAxis) && (this.map.hasKey(e.xAxis) ? e.xAxis = this.map.getKey(e.xAxis) : (this.processingErrors.push('[XYCursor] No axis with id "' + e.xAxis + '" found for `xAxis`'), delete e.xAxis)), S(e.yAxis) && T(e.yAxis) && (this.map.hasKey(e.yAxis) ? e.yAxis = this.map.getKey(e.yAxis) : (this.processingErrors.push('[XYCursor] No axis with id "' + e.yAxis + '" found for `yAxis`'), delete e.yAxis)), S(e.snapToSeries) && T(e.snapToSeries) && (this.map.hasKey(e.snapToSeries) ? e.snapToSeries = this.map.getKey(e.snapToSeries) : (this.processingErrors.push('[XYCursor] No series with id "' + e.snapToSeries + '" found for `series`'), delete e.snapToSeries))), t.prototype.processConfig.call(this, e); }, Object.defineProperty(e.prototype, "snapToSeries", { get: function get() { return this.getPropertyValue("snapToSeries"); }, set: function set(t) { this.setPropertyValue("snapToSeries", t) && (this._snapToDisposer && this._snapToDisposer.dispose(), t && (this._snapToDisposer = t.events.on("tooltipshownat", this.handleSnap, this, !1))); }, enumerable: !0, configurable: !0 }), e.prototype.handleSnap = function () { var t = this.snapToSeries, e = t.tooltipY, i = t.tooltipX; this.xAxis && this.xAxis.renderer.opposite && (e -= this.pixelHeight), this.point = { x: i, y: e }, this.getPositions(); var n = i, r = e; i -= this.pixelWidth, this.yAxis && this.yAxis.renderer.opposite && (i += this.pixelWidth); var s = t.tooltip, o = s.animationDuration, a = s.animationEasing; t.baseAxis == t.xAxis && t.yAxis.showTooltipAtPosition(this.yPosition), t.baseAxis == t.yAxis && t.xAxis.showTooltipAtPosition(this.xPosition), this.lineX.animate([{ property: "y", to: e }], o, a), this.lineY.animate([{ property: "x", to: i }], o, a), this.xAxis || this.lineX.animate([{ property: "x", to: n }], o, a), this.yAxis || this.lineY.animate([{ property: "y", to: r }], o, a); }, e.prototype.dispose = function () { this.hide(0), t.prototype.dispose.call(this); }, e; }($u); Fs.registeredClasses.XYCursor = Ju; var Qu = function (t) { function e() { var e = t.call(this) || this; return e.className = "RadarCursor", e.radius = h(100), e.innerRadius = h(0), e.applyTheme(), e.mask = void 0, e; } return n(e, t), e.prototype.fitsToBounds = function (t) { var e = K(t); return e < this.truePixelRadius + 1 && e > this.pixelInnerRadius - 1; }, Object.defineProperty(e.prototype, "startAngle", { get: function get() { return this.getPropertyValue("startAngle"); }, set: function set(t) { this.setPropertyValue("startAngle", t, !0); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "endAngle", { get: function get() { return this.getPropertyValue("endAngle"); }, set: function set(t) { this.setPropertyValue("endAngle", t, !0); }, enumerable: !0, configurable: !0 }), e.prototype.triggerMoveReal = function (e) { this.xAxis && (!this.xAxis || this.xAxis.cursorTooltipEnabled && !this.xAxis.tooltip.disabled) || this.updateLineX(this.point), this.yAxis && (!this.yAxis || this.yAxis.cursorTooltipEnabled && !this.yAxis.tooltip.disabled) || this.updateLineY(this.point), this.updateSelection(), t.prototype.triggerMoveReal.call(this, e); }, e.prototype.updateLineX = function (t) { var e = this.pixelRadius, i = this.startAngle, n = this.endAngle, r = this.pixelInnerRadius; if (e > 0 && A(i) && A(n) && A(r)) { var s = ht(Q(t), i, n), o = void 0; if (this.lineX && this.lineX.visible) { if (this.lineX.moveTo({ x: 0, y: 0 }), this.xAxis && this.fullWidthLineX) { var a = this.xAxis.currentItemStartPoint, l = this.xAxis.currentItemEndPoint; if (a && l) { var h = ht(Q(a), i, n), u = ht(Q(l), i, n) - h; i < n ? u < 0 && (u += 360) : u > 0 && (u -= 360), o = xr({ x: r * H(s -= u / 2), y: r * B(s) }) + _r({ x: e * H(s), y: e * B(s) }) + Or(s, u, e) + _r({ x: r * H(s + u), y: r * B(s + u) }) + Or(s + u, -u, r); } } o || (o = xr({ x: r * H(s), y: r * B(s) }) + _r({ x: e * H(s), y: e * B(s) })), this.lineX.path = o; } } }, e.prototype.updateLineY = function (t) { if (this.lineY && this.lineY.visible) { var e = this.startAngle, i = this.endAngle, n = this.truePixelRadius, r = R(K(t), 0, this.truePixelRadius); if (A(r) && A(e)) { this.lineY.moveTo({ x: 0, y: 0 }); var s = void 0, o = i - e; if (this.yAxis && this.fullWidthLineY) { var a = this.yAxis.currentItemStartPoint, l = this.yAxis.currentItemEndPoint; if (a && l) { var h = R(K(a), 0, n); s = xr({ x: (r = R(K(l), 0, n)) * H(e), y: r * B(e) }) + Or(e, o, r), s += xr({ x: h * H(i), y: h * B(i) }) + Or(i, -o, h); } } s || (s = xr({ x: r * H(e), y: r * B(e) }) + Or(e, i - e, r)), this.lineY.path = s; } } }, e.prototype.updateSelection = function () { if (this._usesSelection) { var t = this.downPoint; if (t) { var e = this.point, i = this.pixelRadius, n = this.truePixelRadius, r = this.pixelInnerRadius, s = Math.min(this.startAngle, this.endAngle), o = Math.max(this.startAngle, this.endAngle), a = ht(Q(t), s, o), l = ht(Q(e), s, o), h = K(t); if (h < n) { var u = R(K(e), 0, n); this._prevAngle = l; var p = xr({ x: 0, y: 0 }), c = B(a), d = H(a), f = B(l), g = H(l), y = this.behavior; "zoomX" == y || "selectX" == y ? p += _r({ x: i * d, y: i * c }) + Or(a, l - a, i) + _r({ x: r * g, y: r * f }) + Or(l, a - l, r) : "zoomY" == y || "selectY" == y ? p = xr({ x: u * H(s), y: u * B(s) }) + Or(s, o - s, u) + _r({ x: h * H(o), y: h * B(o) }) + Or(o, s - o, h) + " Z" : "zoomXY" == y && (p = xr({ x: u * H(a), y: u * B(a) }) + Or(a, l - a, u) + _r({ x: h * H(l), y: h * B(l) }) + Or(l, a - l, h) + " Z"), this.selection.path = p; } this.selection.moveTo({ x: 0, y: 0 }); } } }, e.prototype.getPositions = function () { if (this.chart) { var t = this.pixelInnerRadius, e = this.truePixelRadius - t, i = this.startAngle, n = this.endAngle, r = (ht(Q(this.point), i, n) - i) / (n - i); this.xPosition = r, this.yPosition = R((K(this.point) - t) / e, 0, 1); } }, e.prototype.updatePoint = function (t) {}, e.prototype.handleXTooltipPosition = function (t) { if (this.xAxis.cursorTooltipEnabled) { var e = this.xAxis.tooltip; this.updateLineX(Hi({ x: e.pixelX, y: e.pixelY }, this)); } }, e.prototype.handleYTooltipPosition = function (t) { if (this.yAxis.cursorTooltipEnabled) { var e = this.yAxis.tooltip; this.updateLineY(Hi({ x: e.pixelX, y: e.pixelY }, this)); } }, e.prototype.updateLinePositions = function (t) {}, e.prototype.getRanges = function () { var t = this.downPoint; if (t) { var e = this.upPoint; if (this.chart) { var i = this.pixelRadius, n = this.startAngle, r = this.endAngle, s = ht(Q(t), this.startAngle, this.endAngle), o = ht(Q(e), this.startAngle, this.endAngle), a = R(K(t), 0, i), l = R(K(e), 0, i), h = 0, u = 1, p = 0, c = 1, d = this.behavior; if ("zoomX" == d || "selectX" == d || "zoomXY" == d || "selectXY" == d) { var f = r - n; h = j((s - n) / f, 5), u = j((o - n) / f, 5); } "zoomY" != d && "selectY" != d && "zoomXY" != d && "selectXY" != d || (p = j(a / i, 5), c = j(l / i, 5)), this.xRange = { start: Math.min(h, u), end: Math.max(h, u) }, this.yRange = { start: Math.min(p, c), end: Math.max(p, c) }, "selectX" == this.behavior || "selectY" == this.behavior || "selectXY" == this.behavior || this.selection.hide(); } } }, e.prototype.updateSize = function () {}, Object.defineProperty(e.prototype, "radius", { get: function get() { return this.getPropertyValue("radius"); }, set: function set(t) { this.setPercentProperty("radius", t, !1, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelRadius", { get: function get() { return ui(this.radius, this.truePixelRadius); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "truePixelRadius", { get: function get() { return hi(h(100), X(this.innerWidth / 2, this.innerHeight / 2)); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "innerRadius", { get: function get() { return this.getPropertyValue("innerRadius"); }, set: function set(t) { this.setPercentProperty("innerRadius", t, !1, !1, 10, !1); }, enumerable: !0, configurable: !0 }), Object.defineProperty(e.prototype, "pixelInnerRadius", { get: function get() { var t = this.innerRadius; return t instanceof hs && (t = h(100 * t.value * this.chart.innerRadiusModifyer)), ui(t, this.truePixelRadius) || 0; }, enumerable: !0, configurable: !0 }), e.prototype.fixPoint = function (t) { return t; }, e; }(Ju); Fs.registeredClasses.RadarCursor = Qu; var tp = function tp(t) { Ur(t, "SpriteState") && (t.transitionDuration = 400), Ur(t, "Component") && (t.rangeChangeDuration = 700, t.interpolationDuration = 700, t.sequencedInterpolation = !1, Ur(t, "SankeyDiagram") && (t.sequencedInterpolation = !0), Ur(t, "FunnelSeries") && (t.sequencedInterpolation = !0)), Ur(t, "Chart") && (t.defaultState.transitionDuration = 2e3, t.hiddenState.transitionDuration = 1e3), Ur(t, "Tooltip") && (t.animationDuration = 400, t.defaultState.transitionDuration = 400, t.hiddenState.transitionDuration = 400), Ur(t, "Scrollbar") && (t.animationDuration = 700), Ur(t, "Series") && (t.defaultState.transitionDuration = 1e3, t.hiddenState.transitionDuration = 700, t.hiddenState.properties.opacity = 1, t.showOnInit = !0), Ur(t, "MapSeries") && (t.hiddenState.properties.opacity = 0), Ur(t, "PercentSeries") && (t.hiddenState.properties.opacity = 0), Ur(t, "FunnelSlice") && (t.defaultState.transitionDuration = 800, t.hiddenState.transitionDuration = 1e3, t.hiddenState.properties.opacity = 1), Ur(t, "Slice") && (t.defaultState.transitionDuration = 700, t.hiddenState.transitionDuration = 1e3, t.hiddenState.properties.opacity = 1), Ur(t, "Preloader") && (t.hiddenState.transitionDuration = 2e3), Ur(t, "Column") && (t.defaultState.transitionDuration = 700, t.hiddenState.transitionDuration = 1e3, t.hiddenState.properties.opacity = 1), Ur(t, "Column3D") && (t.hiddenState.properties.opacity = 0); }; i.d(e, "am4core", function () { return ss; }), i.d(e, "am4charts", function () { return os; }), i.d(e, "am4themes_animated", function () { return tp; }), Ms.commercialLicense = !0; }]); }.call(null, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); /***/ } }]); //# sourceMappingURL=95-es5.js.map