@versini/sassysaint 8.64.2 → 8.66.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{AboutChangelog.BBcTYMq9.js → AboutChangelog.DpM88TD4.js} +2 -2
- package/dist/chunks/{AboutEntry.Bt3z15H7.js → AboutEntry.myjEE_YS.js} +5 -5
- package/dist/chunks/{App.zHzyWMKP.js → App.D11WXiGv.js} +16 -16
- package/dist/chunks/{Chart.HgFUiY6N.js → Chart.C09_D0Js.js} +636 -629
- package/dist/chunks/{ChatBubbleAssistant.BuUR08u9.js → ChatBubbleAssistant.4n93HLwe.js} +4 -4
- package/dist/chunks/{ChatBubbleUser.634b_maN.js → ChatBubbleUser.BA5mfRX3.js} +3 -3
- package/dist/chunks/{ChatHistoryTable.BPalaIGQ.js → ChatHistoryTable.GOTm0B_0.js} +3 -3
- package/dist/chunks/{HistoryEntry.MtjyeH3M.js → HistoryEntry.DbFidH9-.js} +3 -3
- package/dist/chunks/ProfileEntry.CQn1T1HP.js +181 -0
- package/dist/chunks/{SettingsEntry.BX8BwVn4.js → SettingsEntry.DOIpVprT.js} +2 -2
- package/dist/chunks/{Table.DsPL_Dm_.js → Table.BVEnC3sJ.js} +2 -2
- package/dist/chunks/UsageEntry.CBS_lg8M.js +131 -0
- package/dist/chunks/{UserMemoriesPanel.dPS5rxYJ.js → UserMemoriesPanel.CJWaZZty.js} +3 -3
- package/dist/chunks/{index.diXefYJE.js → index.6qKz8JoC.js} +1 -1
- package/dist/chunks/{index.DrAdBw3a.js → index.CLaxLST5.js} +3 -3
- package/dist/chunks/{index.BU65_15J.js → index.CVG2GNQJ.js} +1 -1
- package/dist/chunks/{index.Dyy0OIeR.js → index.CaVPHC4s.js} +3 -2
- package/dist/chunks/{index.oUO6FHVX.js → index.CytEb1Ff.js} +2 -2
- package/dist/chunks/{index.DVFk_U1W.js → index.Dcg8QQwK.js} +1 -1
- package/dist/chunks/{index.pJLv5cOs.js → index.DresqUv9.js} +1 -1
- package/dist/chunks/{useMarkdown.6I3qRoVT.js → useMarkdown.BhytnMpG.js} +6 -6
- package/dist/components/SassySaint/SassySaint.js +1 -1
- package/dist/index.js +4 -4
- package/dist/style.css +1 -1
- package/package.json +3 -3
- package/dist/chunks/ProfileEntry.C8SQncPj.js +0 -158
- package/dist/chunks/UsageEntry.bXqYQDZN.js +0 -99
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as Ap } from "react/jsx-runtime";
|
|
2
|
-
import { getDefaultExportFromCjs as ln } from "./App.
|
|
2
|
+
import { getDefaultExportFromCjs as ln } from "./App.D11WXiGv.js";
|
|
3
3
|
import Cp, { useState as Pp, useEffect as Op } from "react";
|
|
4
|
-
import { TRIMESTERS as rn, TRIMESTERS_SHORT as Lp, isProbablyMobile as Ep } from "./index.
|
|
4
|
+
import { TRIMESTERS as rn, TRIMESTERS_SHORT as Lp, isProbablyMobile as Ep } from "./index.CaVPHC4s.js";
|
|
5
5
|
var ls = { exports: {} }, Ip = ls.exports, on;
|
|
6
6
|
function Dp() {
|
|
7
|
-
return on || (on = 1, (function(
|
|
7
|
+
return on || (on = 1, (function(we, he) {
|
|
8
8
|
/**
|
|
9
9
|
* Highcharts JS v12.4.0 (2025-09-04)
|
|
10
10
|
* @module highcharts/highcharts
|
|
@@ -13,16 +13,16 @@ function Dp() {
|
|
|
13
13
|
*
|
|
14
14
|
* License: www.highcharts.com/license
|
|
15
15
|
*/
|
|
16
|
-
(function(
|
|
17
|
-
|
|
16
|
+
(function(Ot, xt) {
|
|
17
|
+
Ot._Highcharts = xt(), we.exports = Ot._Highcharts;
|
|
18
18
|
})(typeof window > "u" ? Ip : window, () => (() => {
|
|
19
|
-
let
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
for (var e in t)
|
|
23
|
-
},
|
|
19
|
+
let Ot, xt;
|
|
20
|
+
var at, St, _, nt, gt, Dt, Fe, Ge, de, Me, Tt, Ye, Se, Te, z, J, rt, dt, qt = {};
|
|
21
|
+
qt.d = (l, t) => {
|
|
22
|
+
for (var e in t) qt.o(t, e) && !qt.o(l, e) && Object.defineProperty(l, e, { enumerable: !0, get: t[e] });
|
|
23
|
+
}, qt.o = (l, t) => Object.prototype.hasOwnProperty.call(l, t);
|
|
24
24
|
var je = {};
|
|
25
|
-
|
|
25
|
+
qt.d(je, { default: () => Tp }), (function(l) {
|
|
26
26
|
l.SVG_NS = "http://www.w3.org/2000/svg", l.product = "Highcharts", l.version = "12.4.0", l.win = typeof window < "u" ? window : {}, l.doc = l.win.document, l.svg = !!l.doc?.createElementNS?.(l.SVG_NS, "svg")?.createSVGRect, l.pageLang = l.doc?.documentElement?.closest("[lang]")?.lang, l.userAgent = l.win.navigator?.userAgent || "", l.isChrome = l.win.chrome, l.isFirefox = l.userAgent.indexOf("Firefox") !== -1, l.isMS = /(edge|msie|trident)/i.test(l.userAgent) && !l.win.opera, l.isSafari = !l.isChrome && l.userAgent.indexOf("Safari") !== -1, l.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(l.userAgent), l.isWebKit = l.userAgent.indexOf("AppleWebKit") !== -1, l.deg2rad = 2 * Math.PI / 360, l.marginNames = ["plotTop", "marginRight", "marginBottom", "plotLeft"], l.noop = function() {
|
|
27
27
|
}, l.supportsPassiveEvents = (function() {
|
|
28
28
|
let t = !1;
|
|
@@ -34,22 +34,22 @@ function Dp() {
|
|
|
34
34
|
}
|
|
35
35
|
return t;
|
|
36
36
|
})(), l.charts = [], l.composed = [], l.dateFormats = {}, l.seriesTypes = {}, l.symbolSizes = {}, l.chartCount = 0;
|
|
37
|
-
})(
|
|
38
|
-
let C =
|
|
37
|
+
})(at || (at = {}));
|
|
38
|
+
let C = at, { charts: fi, doc: Kt, win: Xt } = C;
|
|
39
39
|
function Ue(l, t, e, i) {
|
|
40
40
|
let s = t ? "Highcharts error" : "Highcharts warning";
|
|
41
41
|
l === 32 && (l = `${s}: Deprecated member`);
|
|
42
42
|
let r = cs(l), o = r ? `${s} #${l}: www.highcharts.com/errors/${l}/` : l.toString();
|
|
43
43
|
if (i !== void 0) {
|
|
44
44
|
let a = "";
|
|
45
|
-
r && (o += "?"),
|
|
45
|
+
r && (o += "?"), ce(i, function(n, h) {
|
|
46
46
|
a += `
|
|
47
47
|
- ${h}: ${n}`, r && (o += encodeURI(h) + "=" + encodeURI(n));
|
|
48
48
|
}), o += a;
|
|
49
49
|
}
|
|
50
50
|
zr(C, "displayError", { chart: e, code: l, message: o, params: i }, function() {
|
|
51
51
|
if (t) throw Error(o);
|
|
52
|
-
|
|
52
|
+
Xt.console && Ue.messages.indexOf(o) === -1 && console.warn(o);
|
|
53
53
|
}), Ue.messages.push(o);
|
|
54
54
|
}
|
|
55
55
|
function Or(l, t) {
|
|
@@ -62,32 +62,32 @@ function Dp() {
|
|
|
62
62
|
let t = Object.prototype.toString.call(l);
|
|
63
63
|
return t === "[object Array]" || t === "[object Array Iterator]";
|
|
64
64
|
}
|
|
65
|
-
function
|
|
65
|
+
function Ae(l, t) {
|
|
66
66
|
return !!l && typeof l == "object" && (!t || !mi(l));
|
|
67
67
|
}
|
|
68
68
|
function ds(l) {
|
|
69
|
-
return
|
|
69
|
+
return Ae(l) && typeof l.nodeType == "number";
|
|
70
70
|
}
|
|
71
71
|
function Lr(l) {
|
|
72
72
|
let t = l?.constructor;
|
|
73
|
-
return !!(
|
|
73
|
+
return !!(Ae(l, !0) && !ds(l) && t?.name && t.name !== "Object");
|
|
74
74
|
}
|
|
75
75
|
function cs(l) {
|
|
76
76
|
return typeof l == "number" && !isNaN(l) && l < 1 / 0 && l > -1 / 0;
|
|
77
77
|
}
|
|
78
|
-
function
|
|
78
|
+
function Ce(l) {
|
|
79
79
|
return l != null;
|
|
80
80
|
}
|
|
81
81
|
function Er(l, t, e) {
|
|
82
|
-
let i, s = Ve(t) && !
|
|
83
|
-
|
|
82
|
+
let i, s = Ve(t) && !Ce(e), r = (o, a) => {
|
|
83
|
+
Ce(o) ? l.setAttribute(a, o) : s ? (i = l.getAttribute(a)) || a !== "class" || (i = l.getAttribute(a + "Name")) : l.removeAttribute(a);
|
|
84
84
|
};
|
|
85
|
-
return Ve(t) ? r(e, t) :
|
|
85
|
+
return Ve(t) ? r(e, t) : ce(t, r), i;
|
|
86
86
|
}
|
|
87
87
|
function Ir(l) {
|
|
88
88
|
return mi(l) ? l : [l];
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function Pe(l, t) {
|
|
91
91
|
let e;
|
|
92
92
|
for (e in l || (l = {}), t) l[e] = t[e];
|
|
93
93
|
return l;
|
|
@@ -100,7 +100,7 @@ function Dp() {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
function ps(l, t) {
|
|
103
|
-
|
|
103
|
+
Pe(l.style, t);
|
|
104
104
|
}
|
|
105
105
|
function Dr(l) {
|
|
106
106
|
return Math.pow(10, Math.floor(Math.log(l) / Math.LN10));
|
|
@@ -117,7 +117,7 @@ function Dp() {
|
|
|
117
117
|
let e, i = l.length;
|
|
118
118
|
for (e = 0; e < i; e++) if (t(l[e], e)) return l[e];
|
|
119
119
|
};
|
|
120
|
-
function
|
|
120
|
+
function ce(l, t, e) {
|
|
121
121
|
for (let i in l) Object.hasOwnProperty.call(l, i) && t.call(e || l[i], l[i], i, l);
|
|
122
122
|
}
|
|
123
123
|
function Nr(l, t, e) {
|
|
@@ -127,7 +127,7 @@ function Dp() {
|
|
|
127
127
|
}
|
|
128
128
|
function s(o) {
|
|
129
129
|
let a, n;
|
|
130
|
-
l.nodeName && (t ? (a = {})[t] = !0 : a = o,
|
|
130
|
+
l.nodeName && (t ? (a = {})[t] = !0 : a = o, ce(a, function(h, c) {
|
|
131
131
|
if (o[c]) for (n = o[c].length; n--; ) i(c, o[c][n].fn);
|
|
132
132
|
}));
|
|
133
133
|
}
|
|
@@ -143,11 +143,11 @@ function Dp() {
|
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
function zr(l, t, e, i) {
|
|
146
|
-
if (e = e || {},
|
|
147
|
-
let s =
|
|
148
|
-
s.initEvent(t, !0, !0), e =
|
|
146
|
+
if (e = e || {}, Kt?.createEvent && (l.dispatchEvent || l.fireEvent && l !== C)) {
|
|
147
|
+
let s = Kt.createEvent("Events");
|
|
148
|
+
s.initEvent(t, !0, !0), e = Pe(s, e), l.dispatchEvent ? l.dispatchEvent(e) : l.fireEvent(t, e);
|
|
149
149
|
} else if (l.hcEvents) {
|
|
150
|
-
e.target ||
|
|
150
|
+
e.target || Pe(e, { preventDefault: function() {
|
|
151
151
|
e.defaultPrevented = !0;
|
|
152
152
|
}, target: l, type: t });
|
|
153
153
|
let s = [], r = l, o = !1;
|
|
@@ -161,10 +161,10 @@ function Dp() {
|
|
|
161
161
|
let dn = (function() {
|
|
162
162
|
let l = Math.random().toString(36).substring(2, 9) + "-", t = 0;
|
|
163
163
|
return function() {
|
|
164
|
-
return "highcharts-" + (
|
|
164
|
+
return "highcharts-" + (Ot ? "" : l) + t++;
|
|
165
165
|
};
|
|
166
166
|
})();
|
|
167
|
-
|
|
167
|
+
Xt.jQuery && (Xt.jQuery.fn.highcharts = function() {
|
|
168
168
|
let l = [].slice.call(arguments);
|
|
169
169
|
if (this[0]) return l[0] ? (new C[Ve(l[0]) ? l.shift() : "Chart"](this[0], l[0], l[1]), this) : fi[Er(this[0], "data-highcharts-chart")];
|
|
170
170
|
});
|
|
@@ -190,26 +190,26 @@ function Dp() {
|
|
|
190
190
|
}, attr: Er, clamp: function(l, t, e) {
|
|
191
191
|
return l > t ? l < e ? l : e : t;
|
|
192
192
|
}, clearTimeout: function(l) {
|
|
193
|
-
|
|
193
|
+
Ce(l) && clearTimeout(l);
|
|
194
194
|
}, correctFloat: Br, createElement: function(l, t, e, i, s) {
|
|
195
|
-
let r =
|
|
196
|
-
return t &&
|
|
195
|
+
let r = Kt.createElement(l);
|
|
196
|
+
return t && Pe(r, t), s && ps(r, { padding: "0", border: "none", margin: "0" }), e && ps(r, e), i && i.appendChild(r), r;
|
|
197
197
|
}, crisp: function(l, t = 0, e) {
|
|
198
198
|
let i = t % 2 / 2, s = e ? -1 : 1;
|
|
199
199
|
return (Math.round(l * s - i) + i) * s;
|
|
200
|
-
}, css: ps, defined:
|
|
201
|
-
|
|
200
|
+
}, css: ps, defined: Ce, destroyObjectProperties: function(l, t, e) {
|
|
201
|
+
ce(l, function(i, s) {
|
|
202
202
|
i !== t && i?.destroy && i.destroy(), (i?.destroy || !e) && delete l[s];
|
|
203
203
|
});
|
|
204
204
|
}, diffObjects: function(l, t, e, i) {
|
|
205
205
|
let s = {};
|
|
206
206
|
return (function r(o, a, n, h) {
|
|
207
207
|
let c = e ? a : o;
|
|
208
|
-
|
|
208
|
+
ce(o, function(d, p) {
|
|
209
209
|
if (!h && i && i.indexOf(p) > -1 && a[p]) {
|
|
210
210
|
d = Ir(d), n[p] = [];
|
|
211
211
|
for (let u = 0; u < Math.max(d.length, a[p].length); u++) a[p][u] && (d[u] === void 0 ? n[p][u] = a[p][u] : (n[p][u] = {}, r(d[u], a[p][u], n[p][u], h + 1)));
|
|
212
|
-
} else
|
|
212
|
+
} else Ae(d, !0) && !d.nodeType ? (n[p] = mi(d) ? [] : {}, r(d, a[p] || {}, n[p], h + 1), Object.keys(n[p]).length === 0 && (p !== "colorAxis" || h !== 0) && delete n[p]) : (o[p] !== a[p] || p in o && !(p in a)) && p !== "__proto__" && p !== "constructor" && (n[p] = c[p]);
|
|
213
213
|
});
|
|
214
214
|
})(l, t, s, 0), s;
|
|
215
215
|
}, discardElement: function(l) {
|
|
@@ -220,10 +220,10 @@ function Dp() {
|
|
|
220
220
|
l.splice(e, 1);
|
|
221
221
|
break;
|
|
222
222
|
}
|
|
223
|
-
}, error: Ue, extend:
|
|
223
|
+
}, error: Ue, extend: Pe, extendClass: function(l, t) {
|
|
224
224
|
let e = function() {
|
|
225
225
|
};
|
|
226
|
-
return e.prototype = new l(),
|
|
226
|
+
return e.prototype = new l(), Pe(e.prototype, t), e;
|
|
227
227
|
}, find: hn, fireEvent: zr, getAlignFactor: (l = "") => ({ center: 0.5, right: 1, middle: 0.5, bottom: 1 })[l] || 0, getClosestDistance: function(l, t) {
|
|
228
228
|
let e, i, s, r = !t;
|
|
229
229
|
return l.forEach((o) => {
|
|
@@ -231,15 +231,15 @@ function Dp() {
|
|
|
231
231
|
}), e;
|
|
232
232
|
}, getMagnitude: Dr, getNestedProperty: function(l, t) {
|
|
233
233
|
let e = l.split(".");
|
|
234
|
-
for (; e.length &&
|
|
234
|
+
for (; e.length && Ce(t); ) {
|
|
235
235
|
let i = e.shift();
|
|
236
236
|
if (i === void 0 || i === "__proto__") return;
|
|
237
237
|
if (i === "this") {
|
|
238
238
|
let r;
|
|
239
|
-
return
|
|
239
|
+
return Ae(t) && (r = t["@this"]), r ?? t;
|
|
240
240
|
}
|
|
241
241
|
let s = t[i.replace(/[\\'"]/g, "")];
|
|
242
|
-
if (!
|
|
242
|
+
if (!Ce(s) || typeof s == "function" || typeof s.nodeType == "number" || s === Xt) return;
|
|
243
243
|
t = s;
|
|
244
244
|
}
|
|
245
245
|
return t;
|
|
@@ -250,7 +250,7 @@ function Dp() {
|
|
|
250
250
|
return a < o && a >= o - 1 && (o = Math.floor(a)), Math.max(0, o - (l(t, "padding-left", !0) || 0) - (l(t, "padding-right", !0) || 0));
|
|
251
251
|
}
|
|
252
252
|
if (e === "height") return Math.max(0, Math.min(t.offsetHeight, t.scrollHeight) - (l(t, "padding-top", !0) || 0) - (l(t, "padding-bottom", !0) || 0));
|
|
253
|
-
let r =
|
|
253
|
+
let r = Xt.getComputedStyle(t, void 0);
|
|
254
254
|
return r && (s = r.getPropertyValue(e), $e(i, e !== "opacity") && (s = Or(s))), s;
|
|
255
255
|
}, insertItem: function(l, t) {
|
|
256
256
|
let e, i = l.options.index, s = t.length;
|
|
@@ -261,10 +261,10 @@ function Dp() {
|
|
|
261
261
|
return e;
|
|
262
262
|
}, isArray: mi, isClass: Lr, isDOMElement: ds, isFunction: function(l) {
|
|
263
263
|
return typeof l == "function";
|
|
264
|
-
}, isNumber: cs, isObject:
|
|
264
|
+
}, isNumber: cs, isObject: Ae, isString: Ve, merge: function(l, ...t) {
|
|
265
265
|
let e, i = [l, ...t], s = {}, r = function(a, n) {
|
|
266
|
-
return typeof a != "object" && (a = {}),
|
|
267
|
-
c !== "__proto__" && c !== "constructor" && (!
|
|
266
|
+
return typeof a != "object" && (a = {}), ce(n, function(h, c) {
|
|
267
|
+
c !== "__proto__" && c !== "constructor" && (!Ae(h, !0) || Lr(h) || ds(h) ? a[c] = n[c] : a[c] = r(a[c] || {}, h));
|
|
268
268
|
}), a;
|
|
269
269
|
};
|
|
270
270
|
l === !0 && (s = i[1], i = Array.prototype.slice.call(i, 2));
|
|
@@ -279,9 +279,9 @@ function Dp() {
|
|
|
279
279
|
return n % 1 == 0;
|
|
280
280
|
}) : e <= 0.1 && (t = [1 / e]))), r = 0; r < t.length && (o = t[r], (!s || !(o * e >= l)) && (s || !(a <= (t[r] + (t[r + 1] || t[r])) / 2))); r++) ;
|
|
281
281
|
return Br(o * e, -Math.round(Math.log(1e-3) / Math.LN10));
|
|
282
|
-
}, objectEach:
|
|
283
|
-
let t =
|
|
284
|
-
return { top: e.top + (
|
|
282
|
+
}, objectEach: ce, offset: function(l) {
|
|
283
|
+
let t = Kt.documentElement, e = l.parentElement || l.parentNode ? l.getBoundingClientRect() : { top: 0, left: 0, width: 0, height: 0 };
|
|
284
|
+
return { top: e.top + (Xt.pageYOffset || t.scrollTop) - (t.clientTop || 0), left: e.left + (Xt.pageXOffset || t.scrollLeft) - (t.clientLeft || 0), width: e.width, height: e.height };
|
|
285
285
|
}, pad: function(l, t, e) {
|
|
286
286
|
return Array((t || 2) + 1 - String(l).replace("-", "").length).join(e || "0") + l;
|
|
287
287
|
}, pick: $e, pInt: Or, pushUnique: function(l, t) {
|
|
@@ -305,7 +305,7 @@ function Dp() {
|
|
|
305
305
|
}, timeUnits: { millisecond: 1, second: 1e3, minute: 6e4, hour: 36e5, day: 864e5, week: 6048e5, month: 24192e5, year: 314496e5 }, ucfirst: function(l) {
|
|
306
306
|
return Ve(l) ? l.substring(0, 1).toUpperCase() + l.substring(1) : String(l);
|
|
307
307
|
}, uniqueKey: dn, useSerialIds: function(l) {
|
|
308
|
-
return
|
|
308
|
+
return Ot = $e(l, Ot);
|
|
309
309
|
}, wrap: function(l, t, e) {
|
|
310
310
|
let i = l[t];
|
|
311
311
|
l[t] = function() {
|
|
@@ -314,7 +314,7 @@ function Dp() {
|
|
|
314
314
|
return i.apply(r, arguments.length ? arguments : s);
|
|
315
315
|
}].concat([].slice.call(arguments)));
|
|
316
316
|
};
|
|
317
|
-
} }, { pageLang: cn, win: xi } = C, { defined: Rr, error: Wr, extend: us, isNumber: Xr, isObject: gs, isString: Ze, merge: pn, objectEach: un, pad:
|
|
317
|
+
} }, { pageLang: cn, win: xi } = C, { defined: Rr, error: Wr, extend: us, isNumber: Xr, isObject: gs, isString: Ze, merge: pn, objectEach: un, pad: _t, splat: gn, timeUnits: fs, ucfirst: fn } = B, mn = C.isSafari && xi.Intl && !xi.Intl.DateTimeFormat.prototype.formatRange, xn = (l) => l.main === void 0, yn = class {
|
|
318
318
|
constructor(l, t) {
|
|
319
319
|
this.options = { timezone: "UTC" }, this.variableTimezone = !1, this.Date = xi.Date, this.update(l), this.lang = t;
|
|
320
320
|
}
|
|
@@ -386,7 +386,7 @@ function Dp() {
|
|
|
386
386
|
}
|
|
387
387
|
if (Ze(l) && l.indexOf("%") !== -1) {
|
|
388
388
|
let s = this, [r, o, a, n, h, c, d, p] = this.toParts(t), u = i?.weekdays || this.weekdays, g = i?.shortWeekdays || this.shortWeekdays, x = i?.months || this.months, m = i?.shortMonths || this.shortMonths;
|
|
389
|
-
un(us({ a: g ? g[p] : u[p].substr(0, 3), A: u[p], d:
|
|
389
|
+
un(us({ a: g ? g[p] : u[p].substr(0, 3), A: u[p], d: _t(a), e: _t(a, 2, " "), w: p, v: i?.weekFrom ?? "", b: m[o], B: x[o], m: _t(o + 1), o: o + 1, y: r.toString().substr(2, 2), Y: r, H: _t(n), k: n, I: _t(n % 12 || 12), l: n % 12 || 12, M: _t(h), p: n < 12 ? "AM" : "PM", P: n < 12 ? "am" : "pm", S: _t(c), L: _t(d, 3) }, C.dateFormats), function(f, y) {
|
|
390
390
|
if (Ze(l)) for (; l.indexOf("%" + y) !== -1; ) l = l.replace("%" + y, typeof f == "function" ? f.call(s, t) : f);
|
|
391
391
|
});
|
|
392
392
|
} else if (gs(l)) {
|
|
@@ -432,24 +432,24 @@ function Dp() {
|
|
|
432
432
|
}
|
|
433
433
|
return r.info = bn(l, { higherRanks: o, totalRange: n * a }), r;
|
|
434
434
|
}
|
|
435
|
-
}, { isTouchDevice: vn } = C, { fireEvent: kn, merge: wn } = B,
|
|
435
|
+
}, { isTouchDevice: vn } = C, { fireEvent: kn, merge: wn } = B, Vt = { colors: ["#2caffe", "#544fc5", "#00e272", "#fe6a35", "#6b8abc", "#d568fb", "#2ee0ca", "#fa4b42", "#feb56a", "#91e8e1"], symbols: ["circle", "diamond", "square", "triangle", "triangle-down"], lang: { weekFrom: "week from", chartTitle: "Chart title", locale: void 0, loading: "Loading...", months: void 0, seriesName: "Series {add index 1}", shortMonths: void 0, weekdays: void 0, numericSymbols: ["k", "M", "G", "T", "P", "E"], pieSliceName: "Slice", resetZoom: "Reset zoom", yAxisTitle: "Values", resetZoomTitle: "Reset zoom level 1:1" }, global: { buttonTheme: { fill: "#f7f7f7", padding: 8, r: 2, stroke: "#cccccc", "stroke-width": 1, style: { color: "#333333", cursor: "pointer", fontSize: "0.8em", fontWeight: "normal" }, states: { hover: { fill: "#e6e6e6" }, select: { fill: "#e6e9ff", style: { color: "#000000", fontWeight: "bold" } }, disabled: { style: { color: "#cccccc" } } } } }, time: { Date: void 0, timezone: "UTC", timezoneOffset: 0, useUTC: void 0 }, chart: { alignThresholds: !1, panning: { enabled: !1, type: "x" }, styledMode: !1, borderRadius: 0, colorCount: 10, allowMutatingData: !0, ignoreHiddenSeries: !0, spacing: [10, 10, 15, 10], resetZoomButton: { theme: {}, position: {} }, reflow: !0, type: "line", zooming: { singleTouch: !1, resetButton: { theme: { zIndex: 6 }, position: { align: "right", x: -10, y: 10 } } }, width: null, height: null, borderColor: "#334eff", backgroundColor: "#ffffff", plotBorderColor: "#cccccc" }, title: { style: { color: "#333333", fontWeight: "bold" }, text: "Chart title", margin: 15, minScale: 0.67 }, subtitle: { style: { color: "#666666", fontSize: "0.8em" }, text: "" }, caption: { margin: 15, style: { color: "#666666", fontSize: "0.8em" }, text: "", align: "left", verticalAlign: "bottom" }, plotOptions: {}, legend: { enabled: !0, align: "center", alignColumns: !0, className: "highcharts-no-tooltip", events: {}, layout: "horizontal", itemMarginBottom: 2, itemMarginTop: 2, labelFormatter: function() {
|
|
436
436
|
return this.name;
|
|
437
|
-
}, borderColor: "#999999", borderRadius: 0, navigation: { style: { fontSize: "0.8em" }, activeColor: "#0022ff", inactiveColor: "#cccccc" }, itemStyle: { color: "#333333", cursor: "pointer", fontSize: "0.8em", textDecoration: "none", textOverflow: "ellipsis" }, itemHoverStyle: { color: "#000000" }, itemHiddenStyle: { color: "#666666", textDecoration: "line-through" }, shadow: !1, itemCheckboxStyle: { position: "absolute", width: "13px", height: "13px" }, squareSymbol: !0, symbolPadding: 5, verticalAlign: "bottom", x: 0, y: 0, title: { style: { color: "#333333", fontSize: "0.8em", fontWeight: "bold" } } }, loading: { labelStyle: { fontWeight: "bold", position: "relative", top: "45%" }, style: { position: "absolute", backgroundColor: "#ffffff", opacity: 0.5, textAlign: "center" } }, tooltip: { enabled: !0, animation: { duration: 300, easing: (l) => Math.sqrt(1 - Math.pow(l - 1, 2)) }, borderRadius: 3, dateTimeLabelFormats: { millisecond: "%[AebHMSL]", second: "%[AebHMS]", minute: "%[AebHM]", hour: "%[AebHM]", day: "%[AebY]", week: "%v %[AebY]", month: "%[BY]", year: "%Y" }, footerFormat: "", headerShape: "callout", hideDelay: 500, padding: 8, position: { x: 0, y: 3 }, shared: !1, snap: vn ? 25 : 10, headerFormat: '<span style="font-size: 0.8em">{ucfirst point.key}</span><br/>', pointFormat: '<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>', backgroundColor: "#ffffff", borderWidth: void 0, stickOnContact: !1, style: { color: "#333333", cursor: "default", fontSize: "0.8em" }, useHTML: !1 }, credits: { enabled: !0, href: "https://www.highcharts.com?credits", position: { align: "right", x: -10, verticalAlign: "bottom", y: -5 }, style: { cursor: "pointer", color: "#999999", fontSize: "0.6em" }, text: "Highcharts.com" } }, xs = new ms(
|
|
438
|
-
return
|
|
437
|
+
}, borderColor: "#999999", borderRadius: 0, navigation: { style: { fontSize: "0.8em" }, activeColor: "#0022ff", inactiveColor: "#cccccc" }, itemStyle: { color: "#333333", cursor: "pointer", fontSize: "0.8em", textDecoration: "none", textOverflow: "ellipsis" }, itemHoverStyle: { color: "#000000" }, itemHiddenStyle: { color: "#666666", textDecoration: "line-through" }, shadow: !1, itemCheckboxStyle: { position: "absolute", width: "13px", height: "13px" }, squareSymbol: !0, symbolPadding: 5, verticalAlign: "bottom", x: 0, y: 0, title: { style: { color: "#333333", fontSize: "0.8em", fontWeight: "bold" } } }, loading: { labelStyle: { fontWeight: "bold", position: "relative", top: "45%" }, style: { position: "absolute", backgroundColor: "#ffffff", opacity: 0.5, textAlign: "center" } }, tooltip: { enabled: !0, animation: { duration: 300, easing: (l) => Math.sqrt(1 - Math.pow(l - 1, 2)) }, borderRadius: 3, dateTimeLabelFormats: { millisecond: "%[AebHMSL]", second: "%[AebHMS]", minute: "%[AebHM]", hour: "%[AebHM]", day: "%[AebY]", week: "%v %[AebY]", month: "%[BY]", year: "%Y" }, footerFormat: "", headerShape: "callout", hideDelay: 500, padding: 8, position: { x: 0, y: 3 }, shared: !1, snap: vn ? 25 : 10, headerFormat: '<span style="font-size: 0.8em">{ucfirst point.key}</span><br/>', pointFormat: '<span style="color:{point.color}">●</span> {series.name}: <b>{point.y}</b><br/>', backgroundColor: "#ffffff", borderWidth: void 0, stickOnContact: !1, style: { color: "#333333", cursor: "default", fontSize: "0.8em" }, useHTML: !1 }, credits: { enabled: !0, href: "https://www.highcharts.com?credits", position: { align: "right", x: -10, verticalAlign: "bottom", y: -5 }, style: { cursor: "pointer", color: "#999999", fontSize: "0.6em" }, text: "Highcharts.com" } }, xs = new ms(Vt.time, Vt.lang), Lt = { defaultOptions: Vt, defaultTime: xs, getOptions: function() {
|
|
438
|
+
return Vt;
|
|
439
439
|
}, setOptions: function(l) {
|
|
440
|
-
return kn(C, "setOptions", { options: l }), wn(!0,
|
|
441
|
-
} }, { win: Mn } = C, { isNumber: qe, isString: Sn, merge: Tn, pInt:
|
|
442
|
-
class
|
|
440
|
+
return kn(C, "setOptions", { options: l }), wn(!0, Vt, l), l.time && xs.update(Vt.time), l.lang && "locale" in l.lang && xs.update({ locale: l.lang.locale }), l.lang?.chartTitle && (Vt.title = { ...Vt.title, text: l.lang.chartTitle }), Vt;
|
|
441
|
+
} }, { win: Mn } = C, { isNumber: qe, isString: Sn, merge: Tn, pInt: yt, defined: Fr } = B, Gr = (l, t, e) => `color-mix(in srgb,${l},${t} ${100 * e}%)`, ys = (l) => Sn(l) && !!l && l !== "none";
|
|
442
|
+
class tt {
|
|
443
443
|
static parse(t) {
|
|
444
|
-
return t ? new
|
|
444
|
+
return t ? new tt(t) : tt.None;
|
|
445
445
|
}
|
|
446
446
|
constructor(t) {
|
|
447
447
|
let e, i, s, r;
|
|
448
448
|
this.rgba = [NaN, NaN, NaN, NaN], this.input = t;
|
|
449
449
|
let o = C.Color;
|
|
450
|
-
if (o && o !==
|
|
451
|
-
if (typeof t == "object" && t.stops !== void 0) this.stops = t.stops.map((a) => new
|
|
452
|
-
else if (typeof t == "string") for (this.input = t =
|
|
450
|
+
if (o && o !== tt) return new o(t);
|
|
451
|
+
if (typeof t == "object" && t.stops !== void 0) this.stops = t.stops.map((a) => new tt(a[1]));
|
|
452
|
+
else if (typeof t == "string") for (this.input = t = tt.names[t.toLowerCase()] || t, s = tt.parsers.length; s-- && !i; ) (e = (r = tt.parsers[s]).regex.exec(t)) && (i = r.parse(e));
|
|
453
453
|
i && (this.rgba = i);
|
|
454
454
|
}
|
|
455
455
|
get(t) {
|
|
@@ -468,8 +468,8 @@ function Dp() {
|
|
|
468
468
|
if (this.stops) this.stops.forEach(function(i) {
|
|
469
469
|
i.brighten(t);
|
|
470
470
|
});
|
|
471
|
-
else if (qe(t) && t !== 0) if (qe(e[0])) for (let i = 0; i < 3; i++) e[i] +=
|
|
472
|
-
else
|
|
471
|
+
else if (qe(t) && t !== 0) if (qe(e[0])) for (let i = 0; i < 3; i++) e[i] += yt(255 * t), e[i] < 0 && (e[i] = 0), e[i] > 255 && (e[i] = 255);
|
|
472
|
+
else tt.useColorMix && ys(this.input) && (this.output = Gr(this.input, t > 0 ? "white" : "black", Math.abs(t)));
|
|
473
473
|
return this;
|
|
474
474
|
}
|
|
475
475
|
setOpacity(t) {
|
|
@@ -477,22 +477,22 @@ function Dp() {
|
|
|
477
477
|
}
|
|
478
478
|
tweenTo(t, e) {
|
|
479
479
|
let i = this.rgba, s = t.rgba;
|
|
480
|
-
if (!qe(i[0]) || !qe(s[0])) return
|
|
480
|
+
if (!qe(i[0]) || !qe(s[0])) return tt.useColorMix && ys(this.input) && ys(t.input) && e < 0.99 ? Gr(this.input, t.input, e) : t.input || "none";
|
|
481
481
|
let r = s[3] !== 1 || i[3] !== 1, o = (n, h) => n + (i[h] - n) * (1 - e), a = s.slice(0, 3).map(o).map(Math.round);
|
|
482
482
|
return r && a.push(o(s[3], 3)), (r ? "rgba(" : "rgb(") + a.join(",") + ")";
|
|
483
483
|
}
|
|
484
484
|
}
|
|
485
|
-
|
|
486
|
-
return [
|
|
485
|
+
tt.names = { white: "#ffffff", black: "#000000" }, tt.parsers = [{ regex: /rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d?(?:\.\d+)?)\s*\)/, parse: function(l) {
|
|
486
|
+
return [yt(l[1]), yt(l[2]), yt(l[3]), parseFloat(l[4], 10)];
|
|
487
487
|
} }, { regex: /rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/, parse: function(l) {
|
|
488
|
-
return [
|
|
488
|
+
return [yt(l[1]), yt(l[2]), yt(l[3]), 1];
|
|
489
489
|
} }, { regex: /^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])?$/i, parse: function(l) {
|
|
490
|
-
return [
|
|
490
|
+
return [yt(l[1] + l[1], 16), yt(l[2] + l[2], 16), yt(l[3] + l[3], 16), Fr(l[4]) ? yt(l[4] + l[4], 16) / 255 : 1];
|
|
491
491
|
} }, { regex: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})?$/i, parse: function(l) {
|
|
492
|
-
return [
|
|
493
|
-
} }],
|
|
494
|
-
let { parse: Yr } =
|
|
495
|
-
class
|
|
492
|
+
return [yt(l[1], 16), yt(l[2], 16), yt(l[3], 16), Fr(l[4]) ? yt(l[4], 16) / 255 : 1];
|
|
493
|
+
} }], tt.useColorMix = Mn.CSS?.supports("color", "color-mix(in srgb,red,blue 9%)"), tt.None = new tt("");
|
|
494
|
+
let { parse: Yr } = tt, { win: An } = C, { isNumber: bs, objectEach: Cn } = B;
|
|
495
|
+
class bt {
|
|
496
496
|
constructor(t, e, i) {
|
|
497
497
|
this.pos = NaN, this.options = e, this.elem = t, this.prop = i;
|
|
498
498
|
}
|
|
@@ -520,10 +520,10 @@ function Dp() {
|
|
|
520
520
|
}, a = An.requestAnimationFrame || function(h) {
|
|
521
521
|
setTimeout(h, 13);
|
|
522
522
|
}, n = function() {
|
|
523
|
-
for (let h = 0; h <
|
|
524
|
-
|
|
523
|
+
for (let h = 0; h < bt.timers.length; h++) bt.timers[h]() || bt.timers.splice(h--, 1);
|
|
524
|
+
bt.timers.length && a(n);
|
|
525
525
|
};
|
|
526
|
-
t !== e || this.elem["forceAnimate:" + this.prop] ? (this.startTime = +/* @__PURE__ */ new Date(), this.start = t, this.end = e, this.unit = i, this.now = this.start, this.pos = 0, o.elem = this.elem, o.prop = this.prop, o() &&
|
|
526
|
+
t !== e || this.elem["forceAnimate:" + this.prop] ? (this.startTime = +/* @__PURE__ */ new Date(), this.start = t, this.end = e, this.unit = i, this.now = this.start, this.pos = 0, o.elem = this.elem, o.prop = this.prop, o() && bt.timers.push(o) === 1 && a(n)) : (delete r.curAnim[this.prop], r.complete && Object.keys(r.curAnim).length === 0 && r.complete.call(this.elem));
|
|
527
527
|
}
|
|
528
528
|
step(t) {
|
|
529
529
|
let e, i, s = +/* @__PURE__ */ new Date(), r = this.options, o = this.elem, a = r.complete, n = r.duration, h = r.curAnim;
|
|
@@ -568,25 +568,25 @@ function Dp() {
|
|
|
568
568
|
return g.length && bs(c) && (d = o.length + c * n, u ? (x(g, o), m(o)) : (x(o, g), m(g))), [g, o];
|
|
569
569
|
}
|
|
570
570
|
fillSetter() {
|
|
571
|
-
|
|
571
|
+
bt.prototype.strokeSetter.apply(this, arguments);
|
|
572
572
|
}
|
|
573
573
|
strokeSetter() {
|
|
574
574
|
this.elem.attr(this.prop, Yr(this.start).tweenTo(Yr(this.end), this.pos), void 0, !0);
|
|
575
575
|
}
|
|
576
576
|
}
|
|
577
|
-
|
|
577
|
+
bt.timers = [];
|
|
578
578
|
let { defined: Pn, getStyle: On, isArray: Ln, isNumber: En, isObject: vs, merge: jr, objectEach: In, pick: Dn } = B;
|
|
579
579
|
function ks(l) {
|
|
580
580
|
return vs(l) ? jr({ duration: 500, defer: 0 }, l) : { duration: 500 * !!l, defer: 0 };
|
|
581
581
|
}
|
|
582
582
|
function Ur(l, t) {
|
|
583
|
-
let e =
|
|
584
|
-
for (; e--; )
|
|
583
|
+
let e = bt.timers.length;
|
|
584
|
+
for (; e--; ) bt.timers[e].elem !== l || t && t !== bt.timers[e].prop || (bt.timers[e].stopped = !0);
|
|
585
585
|
}
|
|
586
|
-
let
|
|
586
|
+
let ft = { animate: function(l, t, e) {
|
|
587
587
|
let i, s = "", r, o, a;
|
|
588
588
|
vs(e) || (a = arguments, e = { duration: a[2], easing: a[3], complete: a[4] }), En(e.duration) || (e.duration = 400), e.easing = typeof e.easing == "function" ? e.easing : Math[e.easing] || Math.easeInOutSine, e.curAnim = jr(t), In(t, function(n, h) {
|
|
589
|
-
Ur(l, h), o = new
|
|
589
|
+
Ur(l, h), o = new bt(l, e, h), r = void 0, h === "d" && Ln(t.d) ? (o.paths = o.initPath(l, l.pathArray, t.d), o.toD = t.d, i = 0, r = 1) : l.attr ? i = l.attr(h) : (i = parseFloat(On(l, h)) || 0, h !== "opacity" && (s = "px")), r || (r = n), typeof r == "string" && r.match("px") && (r = r.replace(/px/g, "")), o.run(i, r, s);
|
|
590
590
|
});
|
|
591
591
|
}, animObject: ks, getDeferredAnimation: function(l, t, e) {
|
|
592
592
|
let i = ks(t), s = e ? [e] : l.series, r = 0, o = 0;
|
|
@@ -597,11 +597,11 @@ function Dp() {
|
|
|
597
597
|
}, setAnimation: function(l, t) {
|
|
598
598
|
t.renderer.globalAnimation = Dn(l, t.options.chart.animation, !0);
|
|
599
599
|
}, stop: Ur }, { SVG_NS: Vr, win: Bn } = C, { attr: Nn, createElement: zn, css: Rn, error: $r, isFunction: Wn, isString: Zr, objectEach: qr, splat: Xn } = B, { trustedTypes: ws } = Bn, yi = ws && Wn(ws.createPolicy) && ws.createPolicy("highcharts", { createHTML: (l) => l }), Hn = yi ? yi.createHTML("") : "";
|
|
600
|
-
class
|
|
600
|
+
class Q {
|
|
601
601
|
static filterUserAttributes(t) {
|
|
602
602
|
return qr(t, (e, i) => {
|
|
603
603
|
let s = !0;
|
|
604
|
-
|
|
604
|
+
Q.allowedAttributes.indexOf(i) === -1 && (s = !1), ["background", "dynsrc", "href", "lowsrc", "src"].indexOf(i) !== -1 && (s = Zr(e) && Q.allowedReferences.some((r) => e.indexOf(r) === 0)), s || ($r(33, !1, void 0, { "Invalid attribute in config": `${i}` }), delete t[i]), Zr(e) && t[i] && (t[i] = e.replace(/</g, "<"));
|
|
605
605
|
}), t;
|
|
606
606
|
}
|
|
607
607
|
static parseStyle(t) {
|
|
@@ -611,7 +611,7 @@ function Dp() {
|
|
|
611
611
|
}, {});
|
|
612
612
|
}
|
|
613
613
|
static setElementHTML(t, e) {
|
|
614
|
-
t.innerHTML =
|
|
614
|
+
t.innerHTML = Q.emptyHTML, e && new Q(e).addToDOM(t);
|
|
615
615
|
}
|
|
616
616
|
constructor(t) {
|
|
617
617
|
this.nodes = typeof t == "string" ? this.parseMarkup(t) : t;
|
|
@@ -620,13 +620,13 @@ function Dp() {
|
|
|
620
620
|
return (function e(i, s) {
|
|
621
621
|
let r;
|
|
622
622
|
return Xn(i).forEach(function(o) {
|
|
623
|
-
let a, n = o.tagName, h = o.textContent ? C.doc.createTextNode(o.textContent) : void 0, c =
|
|
623
|
+
let a, n = o.tagName, h = o.textContent ? C.doc.createTextNode(o.textContent) : void 0, c = Q.bypassHTMLFiltering;
|
|
624
624
|
if (n) if (n === "#text") a = h;
|
|
625
|
-
else if (
|
|
625
|
+
else if (Q.allowedTags.indexOf(n) !== -1 || c) {
|
|
626
626
|
let d = n === "svg" ? Vr : s.namespaceURI || Vr, p = C.doc.createElementNS(d, n), u = o.attributes || {};
|
|
627
627
|
qr(o, function(g, x) {
|
|
628
628
|
x !== "tagName" && x !== "attributes" && x !== "children" && x !== "style" && x !== "textContent" && (u[x] = g);
|
|
629
|
-
}), Nn(p, c ? u :
|
|
629
|
+
}), Nn(p, c ? u : Q.filterUserAttributes(u)), o.style && Rn(p, o.style), h && p.appendChild(h), e(o.children || [], p), a = p;
|
|
630
630
|
} else $r(33, !1, void 0, { "Invalid tagName in config": n });
|
|
631
631
|
a && s.appendChild(a), r = a;
|
|
632
632
|
}), r;
|
|
@@ -650,7 +650,7 @@ function Dp() {
|
|
|
650
650
|
if (h) {
|
|
651
651
|
let c = {};
|
|
652
652
|
[].forEach.call(h, (d) => {
|
|
653
|
-
d.name === "data-style" ? n.style =
|
|
653
|
+
d.name === "data-style" ? n.style = Q.parseStyle(d.value) : c[d.name] = d.value;
|
|
654
654
|
}), n.attributes = c;
|
|
655
655
|
}
|
|
656
656
|
if (r.childNodes.length) {
|
|
@@ -664,8 +664,8 @@ function Dp() {
|
|
|
664
664
|
return [].forEach.call(e.body.childNodes, (r) => s(r, i)), i;
|
|
665
665
|
}
|
|
666
666
|
}
|
|
667
|
-
|
|
668
|
-
let { defaultOptions: Kr, defaultTime: _r } =
|
|
667
|
+
Q.allowedAttributes = ["alt", "aria-controls", "aria-describedby", "aria-expanded", "aria-haspopup", "aria-hidden", "aria-label", "aria-labelledby", "aria-live", "aria-pressed", "aria-readonly", "aria-roledescription", "aria-selected", "class", "clip-path", "color", "colspan", "cx", "cy", "d", "disabled", "dx", "dy", "fill", "filterUnits", "flood-color", "flood-opacity", "height", "href", "id", "in", "in2", "markerHeight", "markerWidth", "offset", "opacity", "operator", "orient", "padding", "paddingLeft", "paddingRight", "patternUnits", "r", "radius", "refX", "refY", "result", "role", "rowspan", "scope", "slope", "src", "startOffset", "stdDeviation", "stroke-linecap", "stroke-width", "stroke", "style", "summary", "tabindex", "tableValues", "target", "text-align", "text-anchor", "textAnchor", "textLength", "title", "type", "valign", "width", "x", "x1", "x2", "xlink:href", "y", "y1", "y2", "zIndex"], Q.allowedReferences = ["https://", "http://", "mailto:", "/", "../", "./", "#"], Q.allowedTags = ["#text", "a", "abbr", "b", "br", "button", "caption", "circle", "clipPath", "code", "dd", "defs", "div", "dl", "dt", "em", "feComponentTransfer", "feComposite", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feMerge", "feMergeNode", "feMorphology", "feOffset", "filter", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "i", "img", "li", "linearGradient", "marker", "ol", "p", "path", "pattern", "pre", "rect", "small", "span", "stop", "strong", "style", "sub", "sup", "svg", "table", "tbody", "td", "text", "textPath", "th", "thead", "title", "tr", "tspan", "u", "ul"], Q.emptyHTML = Hn, Q.bypassHTMLFiltering = !1;
|
|
668
|
+
let { defaultOptions: Kr, defaultTime: _r } = Lt, { pageLang: Fn } = C, { extend: Gn, getNestedProperty: Yn, isArray: jn, isNumber: Jr, isObject: Un, isString: Vn, pick: $n, ucfirst: Zn } = B, bi = { add: (l, t) => l + t, divide: (l, t) => t !== 0 ? l / t : "", eq: (l, t) => l == t, each: function(l) {
|
|
669
669
|
let t = arguments[arguments.length - 1];
|
|
670
670
|
return !!jn(l) && l.map((e, i) => vi(t.body, Gn(Un(e) ? e : { "@this": e }, { "@index": i, "@first": i === 0, "@last": i === l.length - 1 }))).join("");
|
|
671
671
|
}, ge: (l, t) => l >= t, gt: (l, t) => l > t, if: (l) => !!l, le: (l, t) => l <= t, lt: (l, t) => l < t, multiply: (l, t) => l * t, ne: (l, t) => l != t, subtract: (l, t) => l - t, ucfirst: Zn, unless: (l) => !l }, Qr = {}, to = (l) => /^["'].+["']$/.test(l);
|
|
@@ -719,7 +719,7 @@ function Dp() {
|
|
|
719
719
|
let p = i || e, u = p ? "en" : this?.locale || n.locale || Fn, g = JSON.stringify(d) + u;
|
|
720
720
|
return s = (Qr[g] ?? (Qr[g] = new Intl.NumberFormat(u, d))).format(l), p && (s = s.replace(/([,\.])/g, "_$1").replace(/_\,/g, i ?? ",").replace("_.", e ?? ".")), (t || +s != 0) && (!(a < 0) || c) || (s = "0"), a && +s != 0 && (s += "e" + (a < 0 ? "" : "+") + a), s;
|
|
721
721
|
}
|
|
722
|
-
let
|
|
722
|
+
let Et = { dateFormat: function(l, t, e) {
|
|
723
723
|
return _r.dateFormat(l, t, e);
|
|
724
724
|
}, format: vi, helpers: bi, numberFormat: eo };
|
|
725
725
|
(function(l) {
|
|
@@ -729,9 +729,9 @@ function Dp() {
|
|
|
729
729
|
}, l.registerRendererType = function(e, i, s) {
|
|
730
730
|
l.rendererTypes[e] = i, (!t || s) && (t = e, C.Renderer = i);
|
|
731
731
|
};
|
|
732
|
-
})(
|
|
733
|
-
let Ke =
|
|
734
|
-
(
|
|
732
|
+
})(St || (St = {}));
|
|
733
|
+
let Ke = St, { clamp: qn, pick: Kn, pushUnique: _n, stableSort: Ms } = B;
|
|
734
|
+
(_ || (_ = {})).distribute = function l(t, e, i) {
|
|
735
735
|
let s = t, r = s.reducedLen || e, o = (b, v) => b.target - v.target, a = [], n = t.length, h = [], c = a.push, d, p, u, g = !0, x, m, f = 0, y;
|
|
736
736
|
for (d = n; d--; ) f += t[d].size;
|
|
737
737
|
if (f > r) {
|
|
@@ -747,10 +747,10 @@ function Dp() {
|
|
|
747
747
|
return (b.targets || []).some(() => (s[d].pos = b.pos + v, i !== void 0 && Math.abs(s[d].pos - s[d].target) > i ? (s.slice(0, d + 1).forEach((k) => delete k.pos), s.reducedLen = (s.reducedLen || e) - 0.1 * e, s.reducedLen > 0.1 * e && l(s, e, i), !0) : (v += s[d].size, d++, !1)));
|
|
748
748
|
}), Ms(s, o), s;
|
|
749
749
|
};
|
|
750
|
-
let ki =
|
|
750
|
+
let ki = _, { animate: Jn, animObject: Qn, stop: io } = ft, { deg2rad: so, doc: Oe, svg: tl, SVG_NS: wi, win: el, isFirefox: il } = C, { addEvent: sl, attr: Ss, createElement: rl, crisp: Mi, css: ro, defined: Ht, erase: ol, extend: _e, fireEvent: Ts, getAlignFactor: As, isArray: oo, isFunction: ao, isNumber: al, isObject: nl, isString: no, merge: Cs, objectEach: Le, pick: $t, pInt: Si, pushUnique: ll, replaceNested: hl, syncTimeout: dl, uniqueKey: lo } = B;
|
|
751
751
|
class ct {
|
|
752
752
|
_defaultGetter(t) {
|
|
753
|
-
let e =
|
|
753
|
+
let e = $t(this[t + "Value"], this[t], this.element ? this.element.getAttribute(t) : null, 0);
|
|
754
754
|
return /^-?[\d\.]+$/.test(e) && (e = parseFloat(e)), e;
|
|
755
755
|
}
|
|
756
756
|
_defaultSetter(t, e, i) {
|
|
@@ -774,7 +774,7 @@ function Dp() {
|
|
|
774
774
|
t ? (this.alignOptions = t, this.alignByTranslate = e, this.alignTo = i) : (t = this.alignOptions || {}, e = this.alignByTranslate, i = this.alignTo);
|
|
775
775
|
let n = !i || no(i) ? i || "renderer" : void 0;
|
|
776
776
|
n && (a && ll(o, this), i = void 0);
|
|
777
|
-
let h =
|
|
777
|
+
let h = $t(i, r[n], r), c = (h.x || 0) + (t.x || 0) + ((h.width || 0) - (t.width || 0)) * As(t.align), d = (h.y || 0) + (t.y || 0) + ((h.height || 0) - (t.height || 0)) * As(t.verticalAlign), p = { "text-align": t?.align };
|
|
778
778
|
return p[e ? "translateX" : "x"] = Math.round(c), p[e ? "translateY" : "y"] = Math.round(d), s && (this[this.placed ? "animate" : "attr"](p), this.placed = !0), this.alignAttr = p, this;
|
|
779
779
|
}
|
|
780
780
|
alignSetter(t) {
|
|
@@ -782,10 +782,10 @@ function Dp() {
|
|
|
782
782
|
e[t] && (this.alignValue = t, this.element.setAttribute("text-anchor", e[t]));
|
|
783
783
|
}
|
|
784
784
|
animate(t, e, i) {
|
|
785
|
-
let s = Qn(
|
|
786
|
-
return
|
|
785
|
+
let s = Qn($t(e, this.renderer.globalAnimation, !0)), r = s.defer;
|
|
786
|
+
return Oe.hidden && (s.duration = 0), s.duration !== 0 ? (i && (s.complete = i), dl(() => {
|
|
787
787
|
this.element && Jn(this, t, s);
|
|
788
|
-
}, r)) : (this.attr(t, void 0, i || s.complete),
|
|
788
|
+
}, r)) : (this.attr(t, void 0, i || s.complete), Le(t, function(o, a) {
|
|
789
789
|
s.step && s.step.call(this, o, { prop: a, pos: 1, elem: this });
|
|
790
790
|
}, this)), this;
|
|
791
791
|
}
|
|
@@ -797,7 +797,7 @@ function Dp() {
|
|
|
797
797
|
this.fakeTS = !0, r = r.replace(/(^[\d\.]+)(.*?)$/g, function(c, d, p) {
|
|
798
798
|
return 2 * Number(d) + p;
|
|
799
799
|
}), this.removeTextOutline();
|
|
800
|
-
let o =
|
|
800
|
+
let o = Oe.createElementNS(wi, "tspan");
|
|
801
801
|
Ss(o, { class: "highcharts-text-outline", fill: s, stroke: s, "stroke-width": r, "stroke-linejoin": "round" });
|
|
802
802
|
let a = e.querySelector("textPath") || e;
|
|
803
803
|
[].forEach.call(a.childNodes, (c) => {
|
|
@@ -808,13 +808,13 @@ function Dp() {
|
|
|
808
808
|
[].forEach.call(a.querySelectorAll("text tspan"), (c) => {
|
|
809
809
|
n += Number(c.getAttribute("dy"));
|
|
810
810
|
});
|
|
811
|
-
let h =
|
|
811
|
+
let h = Oe.createElementNS(wi, "tspan");
|
|
812
812
|
h.textContent = "", Ss(h, { x: Number(e.getAttribute("x")), dy: -n }), o.appendChild(h), a.insertBefore(o, a.firstChild);
|
|
813
813
|
}
|
|
814
814
|
}
|
|
815
815
|
attr(t, e, i, s) {
|
|
816
816
|
let { element: r } = this, o = ct.symbolCustomAttribs, a, n, h = this, c;
|
|
817
|
-
return typeof t == "string" && e !== void 0 && (a = t, (t = {})[a] = e), typeof t == "string" ? h = (this[t + "Getter"] || this._defaultGetter).call(this, t, r) : (
|
|
817
|
+
return typeof t == "string" && e !== void 0 && (a = t, (t = {})[a] = e), typeof t == "string" ? h = (this[t + "Getter"] || this._defaultGetter).call(this, t, r) : (Le(t, function(d, p) {
|
|
818
818
|
c = !1, s || io(this, p), this.symbolName && o.indexOf(p) !== -1 && (n || (this.symbolAttr(t), n = !0), c = !0), this.rotation && (p === "x" || p === "y") && (this.doTransform = !0), c || (this[p + "Setter"] || this._defaultSetter).call(this, d, p, r);
|
|
819
819
|
}, this), this.afterSetters()), i && i.call(this), h;
|
|
820
820
|
}
|
|
@@ -828,22 +828,22 @@ function Dp() {
|
|
|
828
828
|
crisp(t, e) {
|
|
829
829
|
e = Math.round(e || t.strokeWidth || 0);
|
|
830
830
|
let i = t.x || this.x || 0, s = t.y || this.y || 0, r = (t.width || this.width || 0) + i, o = (t.height || this.height || 0) + s, a = Mi(i, e), n = Mi(s, e);
|
|
831
|
-
return _e(t, { x: a, y: n, width: Mi(r, e) - a, height: Mi(o, e) - n }),
|
|
831
|
+
return _e(t, { x: a, y: n, width: Mi(r, e) - a, height: Mi(o, e) - n }), Ht(t.strokeWidth) && (t.strokeWidth = e), t;
|
|
832
832
|
}
|
|
833
833
|
complexColor(t, e, i) {
|
|
834
834
|
let s = this.renderer, r, o, a, n, h, c, d, p, u, g, x = [], m;
|
|
835
835
|
Ts(this.renderer, "complexColor", { args: arguments }, function() {
|
|
836
836
|
if (t.radialGradient ? o = "radialGradient" : t.linearGradient && (o = "linearGradient"), o) {
|
|
837
|
-
if (a = t[o], h = s.gradients, c = t.stops, u = i.radialReference, oo(a) && (t[o] = a = { x1: a[0], y1: a[1], x2: a[2], y2: a[3], gradientUnits: "userSpaceOnUse" }), o === "radialGradient" && u && !
|
|
837
|
+
if (a = t[o], h = s.gradients, c = t.stops, u = i.radialReference, oo(a) && (t[o] = a = { x1: a[0], y1: a[1], x2: a[2], y2: a[3], gradientUnits: "userSpaceOnUse" }), o === "radialGradient" && u && !Ht(a.gradientUnits) && (n = a, a = Cs(a, s.getRadialAttr(u, n), { gradientUnits: "userSpaceOnUse" })), Le(a, function(f, y) {
|
|
838
838
|
y !== "id" && x.push(y, f);
|
|
839
|
-
}),
|
|
839
|
+
}), Le(c, function(f) {
|
|
840
840
|
x.push(f);
|
|
841
841
|
}), h[x = x.join(",")]) g = h[x].attr("id");
|
|
842
842
|
else {
|
|
843
843
|
a.id = g = lo();
|
|
844
844
|
let f = h[x] = s.createElement(o).attr(a).add(s.defs);
|
|
845
845
|
f.radAttr = n, f.stops = [], c.forEach(function(y) {
|
|
846
|
-
y[1].indexOf("rgba") === 0 ? (d = (r =
|
|
846
|
+
y[1].indexOf("rgba") === 0 ? (d = (r = tt.parse(y[1])).get("rgb"), p = r.get("a")) : (d = y[1], p = 1);
|
|
847
847
|
let b = s.createElement("stop").attr({ offset: y[0], "stop-color": d, "stop-opacity": p }).add(f);
|
|
848
848
|
f.stops.push(b);
|
|
849
849
|
});
|
|
@@ -856,7 +856,7 @@ function Dp() {
|
|
|
856
856
|
}
|
|
857
857
|
css(t) {
|
|
858
858
|
let e = this.styles, i = {}, s = this.element, r, o = !e;
|
|
859
|
-
if (e &&
|
|
859
|
+
if (e && Le(t, function(a, n) {
|
|
860
860
|
e && e[n] !== a && (i[n] = a, o = !0);
|
|
861
861
|
}), o) {
|
|
862
862
|
e && (t = _e(e, i)), t.width === null || t.width === "auto" ? delete this.textWidth : s.nodeName.toLowerCase() === "text" && t.width && (r = this.textWidth = Si(t.width)), _e(this.styles, t), r && !tl && this.renderer.forExport && delete t.width;
|
|
@@ -871,7 +871,7 @@ function Dp() {
|
|
|
871
871
|
let e, i = this["stroke-width"];
|
|
872
872
|
if (i === "inherit" && (i = 1), t) {
|
|
873
873
|
let s = (t = t.toLowerCase()).replace("shortdashdotdot", "3,1,1,1,1,1,").replace("shortdashdot", "3,1,1,1").replace("shortdot", "1,1,").replace("shortdash", "3,1,").replace("longdash", "8,3,").replace(/dot/g, "1,3,").replace("dash", "4,3,").replace(/,$/, "").split(",");
|
|
874
|
-
for (e = s.length; e--; ) s[e] = "" + Si(s[e]) *
|
|
874
|
+
for (e = s.length; e--; ) s[e] = "" + Si(s[e]) * $t(i, NaN);
|
|
875
875
|
t = s.join(",").replace(/NaN/g, "none"), this.element.setAttribute("stroke-dasharray", t);
|
|
876
876
|
}
|
|
877
877
|
}
|
|
@@ -888,7 +888,7 @@ function Dp() {
|
|
|
888
888
|
t.stops.length = 0, t.stops = void 0;
|
|
889
889
|
}
|
|
890
890
|
for (t.safeRemoveChild(e); r?.div && r.div.childNodes.length === 0; ) o = r.parentGroup, t.safeRemoveChild(r.div), delete r.div, r = o;
|
|
891
|
-
t.alignOptions && ol(i.alignedObjects, t),
|
|
891
|
+
t.alignOptions && ol(i.alignedObjects, t), Le(t, (n, h) => {
|
|
892
892
|
(t[h]?.parentGroup === t || ["connector", "foreignObject"].indexOf(h) !== -1) && t[h]?.destroy?.(), delete t[h];
|
|
893
893
|
});
|
|
894
894
|
}
|
|
@@ -902,8 +902,8 @@ function Dp() {
|
|
|
902
902
|
i.setAttributeNS("http://www.w3.org/1999/xlink", e, t);
|
|
903
903
|
}
|
|
904
904
|
getBBox(t, e) {
|
|
905
|
-
let i, s, r, o, { alignValue: a, element: n, renderer: h, styles: c, textStr: d } = this, { cache: p, cacheKeys: u } = h, g = n.namespaceURI === this.SVG_NS, x =
|
|
906
|
-
if (
|
|
905
|
+
let i, s, r, o, { alignValue: a, element: n, renderer: h, styles: c, textStr: d } = this, { cache: p, cacheKeys: u } = h, g = n.namespaceURI === this.SVG_NS, x = $t(e, this.rotation, 0), m = h.styledMode ? n && ct.prototype.getStyle.call(n, "font-size") : c.fontSize;
|
|
906
|
+
if (Ht(d) && ((o = d.toString()).indexOf("<") === -1 && (o = o.replace(/\d/g, "0")), o += ["", h.rootFontSize, m, x, this.textWidth, a, c.lineClamp, c.textOverflow, c.fontWeight].join(",")), o && !t && (i = p[o]), !i || i.polygon) {
|
|
907
907
|
if (g || h.forExport) {
|
|
908
908
|
try {
|
|
909
909
|
r = this.fakeTS && function(y) {
|
|
@@ -925,8 +925,8 @@ function Dp() {
|
|
|
925
925
|
return i;
|
|
926
926
|
}
|
|
927
927
|
getRotatedBox(t, e) {
|
|
928
|
-
let { x: i, y: s, width: r, height: o } = t, { alignValue: a, translateY: n, rotationOriginX: h = 0, rotationOriginY: c = 0 } = this, d = As(a), p = Number(this.element.getAttribute("y") || 0) - (n ? 0 : s), u = e * so, g = (e - 90) * so, x = Math.cos(u), m = Math.sin(u), f = r * x, y = r * m, b = Math.cos(g), v = Math.sin(g), [[k, M], [S, w]] = [h, c].map((X) => [X - X * x, X * m]), A = i + d * (r - f) + k + w + p * b, P = A + f, T = P - o * b, L = T - f, I = s + p - d * y - M + S + p * v, D = I + y, O = D - o * v, E = O - y, N = Math.min(A, P, T, L),
|
|
929
|
-
return { x: N, y:
|
|
928
|
+
let { x: i, y: s, width: r, height: o } = t, { alignValue: a, translateY: n, rotationOriginX: h = 0, rotationOriginY: c = 0 } = this, d = As(a), p = Number(this.element.getAttribute("y") || 0) - (n ? 0 : s), u = e * so, g = (e - 90) * so, x = Math.cos(u), m = Math.sin(u), f = r * x, y = r * m, b = Math.cos(g), v = Math.sin(g), [[k, M], [S, w]] = [h, c].map((X) => [X - X * x, X * m]), A = i + d * (r - f) + k + w + p * b, P = A + f, T = P - o * b, L = T - f, I = s + p - d * y - M + S + p * v, D = I + y, O = D - o * v, E = O - y, N = Math.min(A, P, T, L), K = Math.min(I, D, O, E), F = Math.max(A, P, T, L) - N, G = Math.max(I, D, O, E) - K;
|
|
929
|
+
return { x: N, y: K, width: F, height: G, polygon: [[A, I], [P, D], [T, O], [L, E]] };
|
|
930
930
|
}
|
|
931
931
|
getStyle(t) {
|
|
932
932
|
return el.getComputedStyle(this.element || this, "").getPropertyValue(t);
|
|
@@ -941,7 +941,7 @@ function Dp() {
|
|
|
941
941
|
return { height: 0, width: 0, x: 0, y: 0 };
|
|
942
942
|
}
|
|
943
943
|
constructor(t, e) {
|
|
944
|
-
this.onEvents = {}, this.opacity = 1, this.SVG_NS = wi, this.element = e === "span" || e === "body" ? rl(e) :
|
|
944
|
+
this.onEvents = {}, this.opacity = 1, this.SVG_NS = wi, this.element = e === "span" || e === "body" ? rl(e) : Oe.createElementNS(this.SVG_NS, e), this.renderer = t, this.styles = {}, Ts(this, "afterInit");
|
|
945
945
|
}
|
|
946
946
|
on(t, e) {
|
|
947
947
|
let { onEvents: i } = this;
|
|
@@ -982,20 +982,20 @@ function Dp() {
|
|
|
982
982
|
strokeWidth() {
|
|
983
983
|
if (!this.renderer.styledMode) return this["stroke-width"] || 0;
|
|
984
984
|
let t = this.getStyle("stroke-width"), e = 0, i;
|
|
985
|
-
return /px$/.test(t) ? e = Si(t) : t !== "" && (Ss(i =
|
|
985
|
+
return /px$/.test(t) ? e = Si(t) : t !== "" && (Ss(i = Oe.createElementNS(wi, "rect"), { width: t, "stroke-width": 0 }), this.element.parentNode.appendChild(i), e = i.getBBox().width, i.parentNode.removeChild(i)), e;
|
|
986
986
|
}
|
|
987
987
|
symbolAttr(t) {
|
|
988
988
|
let e = this;
|
|
989
989
|
ct.symbolCustomAttribs.forEach(function(i) {
|
|
990
|
-
e[i] =
|
|
990
|
+
e[i] = $t(t[i], e[i]);
|
|
991
991
|
}), e.attr({ d: e.renderer.symbols[e.symbolName](e.x, e.y, e.width, e.height, e) });
|
|
992
992
|
}
|
|
993
993
|
textSetter(t) {
|
|
994
994
|
t !== this.textStr && (delete this.textPxLength, this.textStr = t, this.added && this.renderer.buildText(this), this.reAlign());
|
|
995
995
|
}
|
|
996
996
|
titleSetter(t) {
|
|
997
|
-
let e = this.element, i = e.getElementsByTagName("title")[0] ||
|
|
998
|
-
e.insertBefore ? e.insertBefore(i, e.firstChild) : e.appendChild(i), i.textContent = hl(
|
|
997
|
+
let e = this.element, i = e.getElementsByTagName("title")[0] || Oe.createElementNS(this.SVG_NS, "title");
|
|
998
|
+
e.insertBefore ? e.insertBefore(i, e.firstChild) : e.appendChild(i), i.textContent = hl($t(t, ""), [/<[^>]*>/g, ""]).replace(/</g, "<").replace(/>/g, ">");
|
|
999
999
|
}
|
|
1000
1000
|
toFront() {
|
|
1001
1001
|
let t = this.element;
|
|
@@ -1006,7 +1006,7 @@ function Dp() {
|
|
|
1006
1006
|
}
|
|
1007
1007
|
updateTransform(t = "transform") {
|
|
1008
1008
|
let { element: e, foreignObject: i, matrix: s, padding: r, rotation: o = 0, rotationOriginX: a, rotationOriginY: n, scaleX: h, scaleY: c, text: d, translateX: p = 0, translateY: u = 0 } = this, g = ["translate(" + p + "," + u + ")"];
|
|
1009
|
-
|
|
1009
|
+
Ht(s) && g.push("matrix(" + s.join(",") + ")"), o && (g.push("rotate(" + o + " " + (a ?? e.getAttribute("x") ?? this.x ?? 0) + " " + (n ?? e.getAttribute("y") ?? this.y ?? 0) + ")"), d?.element.tagName !== "SPAN" || d?.foreignObject || d.attr({ rotation: o, rotationOriginX: (a || 0) - r, rotationOriginY: (n || 0) - r })), (Ht(h) || Ht(c)) && g.push("scale(" + $t(h, 1) + " " + $t(c, 1) + ")"), g.length && !(d || this).textPath && (i?.element || e).setAttribute(t, g.join(" "));
|
|
1010
1010
|
}
|
|
1011
1011
|
visibilitySetter(t, e, i) {
|
|
1012
1012
|
t === "inherit" ? i.removeAttribute(e) : this[e] !== t && i.setAttribute(e, t), this[e] = t;
|
|
@@ -1016,8 +1016,8 @@ function Dp() {
|
|
|
1016
1016
|
}
|
|
1017
1017
|
zIndexSetter(t, e) {
|
|
1018
1018
|
let i = this.renderer, s = this.parentGroup, r = (s || i).element || i.box, o = this.element, a = r === i.box, n, h, c, d = !1, p, u = this.added, g;
|
|
1019
|
-
if (
|
|
1020
|
-
for ((t = this.zIndex) && s && (s.handleZ = !0), g = (n = r.childNodes).length - 1; g >= 0 && !d; g--) p = !
|
|
1019
|
+
if (Ht(t) ? (o.setAttribute("data-z-index", t), t *= 1, this[e] === t && (u = !1)) : Ht(this[e]) && o.removeAttribute("data-z-index"), this[e] = t, u) {
|
|
1020
|
+
for ((t = this.zIndex) && s && (s.handleZ = !0), g = (n = r.childNodes).length - 1; g >= 0 && !d; g--) p = !Ht(c = (h = n[g]).getAttribute("data-z-index")), h !== o && (t < 0 && p && !a && !g ? (r.insertBefore(o, n[g]), d = !0) : (Si(c) <= t || p && (!Ht(t) || t >= 0)) && (r.insertBefore(o, n[g + 1]), d = !0));
|
|
1021
1021
|
d || (r.insertBefore(o, n[3 * !!a]), d = !0);
|
|
1022
1022
|
}
|
|
1023
1023
|
return d;
|
|
@@ -1026,11 +1026,11 @@ function Dp() {
|
|
|
1026
1026
|
ct.symbolCustomAttribs = ["anchorX", "anchorY", "clockwise", "end", "height", "innerR", "r", "start", "width", "x", "y"], ct.prototype.strokeSetter = ct.prototype.fillSetter, ct.prototype.yGetter = ct.prototype.xGetter, ct.prototype.matrixSetter = ct.prototype.rotationOriginXSetter = ct.prototype.rotationOriginYSetter = ct.prototype.rotationSetter = ct.prototype.scaleXSetter = ct.prototype.scaleYSetter = ct.prototype.translateXSetter = ct.prototype.translateYSetter = ct.prototype.verticalAlignSetter = function(l, t) {
|
|
1027
1027
|
this[t] = l, this.doTransform = !0;
|
|
1028
1028
|
};
|
|
1029
|
-
let
|
|
1030
|
-
class
|
|
1029
|
+
let Ft = ct, { defined: ho, extend: cl, getAlignFactor: co, isNumber: Je, merge: pl, pick: Ti, removeEvent: po } = B;
|
|
1030
|
+
class pe extends Ft {
|
|
1031
1031
|
constructor(t, e, i, s, r, o, a, n, h, c) {
|
|
1032
1032
|
let d;
|
|
1033
|
-
super(t, "g"), this.paddingLeftSetter = this.paddingSetter, this.paddingRightSetter = this.paddingSetter, this.doUpdate = !1, this.textStr = e, this.x = i, this.y = s, this.anchorX = o, this.anchorY = a, this.baseline = h, this.className = c, this.addClass(c === "button" ? "highcharts-no-tooltip" : "highcharts-label"), c && this.addClass("highcharts-" + c), this.text = t.text(void 0, 0, 0, n).attr({ zIndex: 1 }), typeof r == "string" && ((d = /^url\((.*?)\)$/.test(r)) || this.renderer.symbols[r]) && (this.symbolKey = r), this.bBox =
|
|
1033
|
+
super(t, "g"), this.paddingLeftSetter = this.paddingSetter, this.paddingRightSetter = this.paddingSetter, this.doUpdate = !1, this.textStr = e, this.x = i, this.y = s, this.anchorX = o, this.anchorY = a, this.baseline = h, this.className = c, this.addClass(c === "button" ? "highcharts-no-tooltip" : "highcharts-label"), c && this.addClass("highcharts-" + c), this.text = t.text(void 0, 0, 0, n).attr({ zIndex: 1 }), typeof r == "string" && ((d = /^url\((.*?)\)$/.test(r)) || this.renderer.symbols[r]) && (this.symbolKey = r), this.bBox = pe.emptyBBox, this.padding = 3, this.baselineOffset = 0, this.needsBox = t.styledMode || d, this.deferredAttr = {}, this.alignFactor = 0;
|
|
1034
1034
|
}
|
|
1035
1035
|
alignSetter(t) {
|
|
1036
1036
|
let e = co(t);
|
|
@@ -1048,14 +1048,14 @@ function Dp() {
|
|
|
1048
1048
|
css(t) {
|
|
1049
1049
|
if (t) {
|
|
1050
1050
|
let e = {};
|
|
1051
|
-
t = pl(t),
|
|
1051
|
+
t = pl(t), pe.textProps.forEach((i) => {
|
|
1052
1052
|
t[i] !== void 0 && (e[i] = t[i], delete t[i]);
|
|
1053
1053
|
}), this.text.css(e), "fontSize" in e || "fontWeight" in e ? this.updateTextPadding() : ("width" in e || "textOverflow" in e) && this.updateBoxSize();
|
|
1054
1054
|
}
|
|
1055
|
-
return
|
|
1055
|
+
return Ft.prototype.css.call(this, t);
|
|
1056
1056
|
}
|
|
1057
1057
|
destroy() {
|
|
1058
|
-
po(this.element, "mouseenter"), po(this.element, "mouseleave"), this.text && this.text.destroy(), this.box && (this.box = this.box.destroy()),
|
|
1058
|
+
po(this.element, "mouseenter"), po(this.element, "mouseleave"), this.text && this.text.destroy(), this.box && (this.box = this.box.destroy()), Ft.prototype.destroy.call(this);
|
|
1059
1059
|
}
|
|
1060
1060
|
fillSetter(t, e) {
|
|
1061
1061
|
t && (this.needsBox = !0), this.fill = t, this.boxAttr(e, t);
|
|
@@ -1096,7 +1096,7 @@ function Dp() {
|
|
|
1096
1096
|
t !== void 0 && this.text.attr({ text: t }), this.updateTextPadding(), this.reAlign();
|
|
1097
1097
|
}
|
|
1098
1098
|
updateBoxSize() {
|
|
1099
|
-
let t, e = this.text, i = {}, s = this.padding, r = this.bBox = (!Je(this.widthSetting) || !Je(this.heightSetting) || this.textAlign) && ho(e.textStr) ? e.getBBox(void 0, 0) :
|
|
1099
|
+
let t, e = this.text, i = {}, s = this.padding, r = this.bBox = (!Je(this.widthSetting) || !Je(this.heightSetting) || this.textAlign) && ho(e.textStr) ? e.getBBox(void 0, 0) : pe.emptyBBox;
|
|
1100
1100
|
this.width = this.getPaddedWidth(), this.height = (this.heightSetting || r.height || 0) + 2 * s;
|
|
1101
1101
|
let o = this.renderer.fontMetrics(e);
|
|
1102
1102
|
if (this.baselineOffset = s + Math.min((this.text.firstLineMetrics || o).b, r.height || 1 / 0), this.heightSetting && (this.baselineOffset += (this.heightSetting - o.h) / 2), this.needsBox && !e.textPath) {
|
|
@@ -1129,7 +1129,7 @@ function Dp() {
|
|
|
1129
1129
|
this.anchorY && (this["forceAnimate:anchorY"] = !0), this.ySetting = this.y = Math.round(t), this.attr("translateY", this.ySetting);
|
|
1130
1130
|
}
|
|
1131
1131
|
}
|
|
1132
|
-
|
|
1132
|
+
pe.emptyBBox = { width: 0, height: 0, x: 0, y: 0 }, pe.textProps = ["color", "direction", "fontFamily", "fontSize", "fontStyle", "fontWeight", "lineClamp", "lineHeight", "textAlign", "textDecoration", "textOutline", "textOverflow", "whiteSpace", "width"];
|
|
1133
1133
|
let { defined: uo, isNumber: ul, pick: Qe } = B;
|
|
1134
1134
|
function go(l, t, e, i, s) {
|
|
1135
1135
|
let r = [];
|
|
@@ -1184,7 +1184,7 @@ function Dp() {
|
|
|
1184
1184
|
if (s || this.ellipsis || this.width || l.textPath || i.indexOf(" ") !== -1 && (!this.noWrap || /<br.*?>/g.test(i))) {
|
|
1185
1185
|
if (i !== "") {
|
|
1186
1186
|
o && o.appendChild(t);
|
|
1187
|
-
let n = new
|
|
1187
|
+
let n = new Q(i);
|
|
1188
1188
|
this.modifyTree(n.nodes), n.addToDOM(t), this.modifyDOM(), this.ellipsis && (t.textContent || "").indexOf("…") !== -1 && l.attr("title", this.unescapeEntities(l.textStr || "", ["<", ">"])), o && o.removeChild(t);
|
|
1189
1189
|
}
|
|
1190
1190
|
} else t.appendChild(Os.createTextNode(this.unescapeEntities(i)));
|
|
@@ -1261,31 +1261,31 @@ function Dp() {
|
|
|
1261
1261
|
t && t.indexOf(e) !== -1 || (l = l.toString().replace(RegExp(e, "g"), i));
|
|
1262
1262
|
}), l;
|
|
1263
1263
|
}
|
|
1264
|
-
}, { defaultOptions: kl } =
|
|
1264
|
+
}, { defaultOptions: kl } = Lt, { charts: wl, deg2rad: yo, doc: Ee, isFirefox: bo, isMS: vo, isWebKit: Ml, noop: Sl, SVG_NS: Tl, symbolSizes: Is, win: Ds } = C, { addEvent: Ai, attr: Ci, createElement: Al, crisp: ko, css: Pi, defined: ue, destroyObjectProperties: Cl, extend: ge, isArray: Pl, isNumber: fe, isObject: ti, isString: Ol, merge: Bs, pick: Ns, pInt: Ll, replaceNested: El, uniqueKey: Il } = B;
|
|
1265
1265
|
class Oi {
|
|
1266
1266
|
constructor(t, e, i, s, r, o, a) {
|
|
1267
1267
|
let n, h;
|
|
1268
1268
|
this.x = 0, this.y = 0;
|
|
1269
1269
|
let c = this.createElement("svg").attr({ version: "1.1", class: "highcharts-root" }), d = c.element;
|
|
1270
|
-
a || c.css(this.getStyle(s || {})), t.appendChild(d), Ci(t, "dir", "ltr"), t.innerHTML.indexOf("xmlns") === -1 && Ci(d, "xmlns", this.SVG_NS), this.box = d, this.boxWrapper = c, this.alignedObjects = [], this.url = this.getReferenceURL(), this.createElement("desc").add().element.appendChild(
|
|
1270
|
+
a || c.css(this.getStyle(s || {})), t.appendChild(d), Ci(t, "dir", "ltr"), t.innerHTML.indexOf("xmlns") === -1 && Ci(d, "xmlns", this.SVG_NS), this.box = d, this.boxWrapper = c, this.alignedObjects = [], this.url = this.getReferenceURL(), this.createElement("desc").add().element.appendChild(Ee.createTextNode("Created with Highcharts 12.4.0")), this.defs = this.createElement("defs").add(), this.allowHTML = o, this.forExport = r, this.styledMode = a, this.gradients = {}, this.cache = {}, this.cacheKeys = [], this.imgCount = 0, this.rootFontSize = c.getStyle("font-size"), this.setSize(e, i, !1), bo && t.getBoundingClientRect && ((n = function() {
|
|
1271
1271
|
Pi(t, { left: 0, top: 0 }), h = t.getBoundingClientRect(), Pi(t, { left: Math.ceil(h.left) - h.left + "px", top: Math.ceil(h.top) - h.top + "px" });
|
|
1272
1272
|
})(), this.unSubPixelFix = Ai(Ds, "resize", n));
|
|
1273
1273
|
}
|
|
1274
1274
|
definition(t) {
|
|
1275
|
-
return new
|
|
1275
|
+
return new Q([t]).addToDOM(this.defs.element);
|
|
1276
1276
|
}
|
|
1277
1277
|
getReferenceURL() {
|
|
1278
|
-
if ((bo || Ml) &&
|
|
1279
|
-
if (!
|
|
1280
|
-
let t = Il(), e = new
|
|
1281
|
-
Pi(e, { position: "fixed", top: 0, left: 0, zIndex: 9e5 }),
|
|
1278
|
+
if ((bo || Ml) && Ee.getElementsByTagName("base").length) {
|
|
1279
|
+
if (!ue(xt)) {
|
|
1280
|
+
let t = Il(), e = new Q([{ tagName: "svg", attributes: { width: 8, height: 8 }, children: [{ tagName: "defs", children: [{ tagName: "clipPath", attributes: { id: t }, children: [{ tagName: "rect", attributes: { width: 4, height: 4 } }] }] }, { tagName: "rect", attributes: { id: "hitme", width: 8, height: 8, "clip-path": `url(#${t})`, fill: "rgba(0,0,0,0.001)" } }] }]).addToDOM(Ee.body);
|
|
1281
|
+
Pi(e, { position: "fixed", top: 0, left: 0, zIndex: 9e5 }), xt = Ee.elementFromPoint(6, 6)?.id === "hitme", Ee.body.removeChild(e);
|
|
1282
1282
|
}
|
|
1283
|
-
if (
|
|
1283
|
+
if (xt) return El(Ds.location.href.split("#")[0], [/<[^>]*>/g, ""], [/([\('\)])/g, "\\$1"], [/ /g, "%20"]);
|
|
1284
1284
|
}
|
|
1285
1285
|
return "";
|
|
1286
1286
|
}
|
|
1287
1287
|
getStyle(t) {
|
|
1288
|
-
return this.style =
|
|
1288
|
+
return this.style = ge({ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif', fontSize: "1rem" }, t), this.style;
|
|
1289
1289
|
}
|
|
1290
1290
|
setStyle(t) {
|
|
1291
1291
|
this.boxWrapper.css(this.getStyle(t));
|
|
@@ -1315,8 +1315,8 @@ function Dp() {
|
|
|
1315
1315
|
}
|
|
1316
1316
|
getContrast(t) {
|
|
1317
1317
|
if (t === "transparent") return "#000000";
|
|
1318
|
-
let e =
|
|
1319
|
-
if (
|
|
1318
|
+
let e = tt.parse(t).rgba, i = " clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)";
|
|
1319
|
+
if (fe(e[0]) || !tt.useColorMix) {
|
|
1320
1320
|
let s = e.map((o) => {
|
|
1321
1321
|
let a = o / 255;
|
|
1322
1322
|
return a <= 0.04 ? a / 12.92 : Math.pow((a + 0.055) / 1.055, 2.4);
|
|
@@ -1330,9 +1330,9 @@ function Dp() {
|
|
|
1330
1330
|
r = Bs(kl.global.buttonTheme, r), p && (delete r.fill, delete r.stroke, delete r["stroke-width"]);
|
|
1331
1331
|
let x = r.states || {}, m = r.style || {};
|
|
1332
1332
|
delete r.states, delete r.style;
|
|
1333
|
-
let f = [
|
|
1333
|
+
let f = [Q.filterUserAttributes(r)], y = [m];
|
|
1334
1334
|
return p || ["hover", "select", "disabled"].forEach((b, v) => {
|
|
1335
|
-
f.push(Bs(f[0],
|
|
1335
|
+
f.push(Bs(f[0], Q.filterUserAttributes(u[v + 5] || x[b] || {}))), y.push(f[v + 1].style), delete f[v + 1].style;
|
|
1336
1336
|
}), Ai(d.element, vo ? "mouseover" : "mouseenter", function() {
|
|
1337
1337
|
g !== 3 && d.setState(1);
|
|
1338
1338
|
}), Ai(d.element, vo ? "mouseout" : "mouseleave", function() {
|
|
@@ -1343,17 +1343,17 @@ function Dp() {
|
|
|
1343
1343
|
let v = y[b];
|
|
1344
1344
|
ti(v) && d.css(v);
|
|
1345
1345
|
}
|
|
1346
|
-
}, d.attr(f[0]), !p && (d.css(
|
|
1346
|
+
}, d.attr(f[0]), !p && (d.css(ge({ cursor: "default" }, m)), c && d.text.css({ pointerEvents: "none" })), d.on("touchstart", (b) => b.stopPropagation()).on("click", function(b) {
|
|
1347
1347
|
g !== 3 && s?.call(d, b);
|
|
1348
1348
|
});
|
|
1349
1349
|
}
|
|
1350
1350
|
crispLine(t, e) {
|
|
1351
1351
|
let [i, s] = t;
|
|
1352
|
-
return
|
|
1352
|
+
return ue(i[1]) && i[1] === s[1] && (i[1] = s[1] = ko(i[1], e)), ue(i[2]) && i[2] === s[2] && (i[2] = s[2] = ko(i[2], e)), t;
|
|
1353
1353
|
}
|
|
1354
1354
|
path(t) {
|
|
1355
1355
|
let e = this.styledMode ? {} : { fill: "none" };
|
|
1356
|
-
return Pl(t) ? e.d = t : ti(t) &&
|
|
1356
|
+
return Pl(t) ? e.d = t : ti(t) && ge(e, t), this.createElement("path").attr(e);
|
|
1357
1357
|
}
|
|
1358
1358
|
circle(t, e, i) {
|
|
1359
1359
|
let s = ti(t) ? t : t === void 0 ? {} : { x: t, y: e, r: i }, r = this.createElement("circle");
|
|
@@ -1369,7 +1369,7 @@ function Dp() {
|
|
|
1369
1369
|
}
|
|
1370
1370
|
rect(t, e, i, s, r, o) {
|
|
1371
1371
|
let a = ti(t) ? t : t === void 0 ? {} : { x: t, y: e, r, width: Math.max(i || 0, 0), height: Math.max(s || 0, 0) }, n = this.createElement("rect");
|
|
1372
|
-
return this.styledMode || (o !== void 0 && (a["stroke-width"] = o,
|
|
1372
|
+
return this.styledMode || (o !== void 0 && (a["stroke-width"] = o, ge(a, n.crisp(a))), a.fill = "none"), n.rSetter = function(h, c, d) {
|
|
1373
1373
|
n.r = h, Ci(d, { rx: h, ry: h });
|
|
1374
1374
|
}, n.rGetter = function() {
|
|
1375
1375
|
return n.r || 0;
|
|
@@ -1389,7 +1389,7 @@ function Dp() {
|
|
|
1389
1389
|
}
|
|
1390
1390
|
image(t, e, i, s, r, o) {
|
|
1391
1391
|
let a = { preserveAspectRatio: "none" };
|
|
1392
|
-
|
|
1392
|
+
fe(e) && (a.x = e), fe(i) && (a.y = i), fe(s) && (a.width = s), fe(r) && (a.height = r);
|
|
1393
1393
|
let n = this.createElement("image").attr(a), h = function(c) {
|
|
1394
1394
|
n.attr({ href: t }), o.call(n, c);
|
|
1395
1395
|
};
|
|
@@ -1402,7 +1402,7 @@ function Dp() {
|
|
|
1402
1402
|
}
|
|
1403
1403
|
symbol(t, e, i, s, r, o) {
|
|
1404
1404
|
let a, n, h, c, d = this, p = /^url\((.*?)\)$/, u = p.test(t), g = !u && (this.symbols[t] ? t : "circle"), x = g && this.symbols[g];
|
|
1405
|
-
if (x) typeof e == "number" && (n = x.call(this.symbols, e || 0, i || 0, s || 0, r || 0, o)), a = this.path(n), d.styledMode || a.attr("fill", "none"),
|
|
1405
|
+
if (x) typeof e == "number" && (n = x.call(this.symbols, e || 0, i || 0, s || 0, r || 0, o)), a = this.path(n), d.styledMode || a.attr("fill", "none"), ge(a, { symbolName: g || void 0, x: e, y: i, width: s, height: r }), o && ge(a, o);
|
|
1406
1406
|
else if (u) {
|
|
1407
1407
|
h = t.match(p)[1];
|
|
1408
1408
|
let m = a = this.image(h);
|
|
@@ -1412,9 +1412,9 @@ function Dp() {
|
|
|
1412
1412
|
let { alignByTranslate: v, element: k, width: M, height: S, imgwidth: w, imgheight: A } = this, P = b === "width" ? w : A, T = 1;
|
|
1413
1413
|
o && o.backgroundSize === "within" && M && S && w && A ? (T = Math.min(M / w, S / A), Ci(k, { width: Math.round(w * T), height: Math.round(A * T) })) : k && P && k.setAttribute(b, P), !v && w && A && this.translate(((M || 0) - w * T) / 2, ((S || 0) - A * T) / 2);
|
|
1414
1414
|
};
|
|
1415
|
-
}),
|
|
1415
|
+
}), ue(e) && m.attr({ x: e, y: i }), m.isImg = !0, m.symbolUrl = t, ue(m.imgwidth) && ue(m.imgheight) ? c(m) : (m.attr({ width: 0, height: 0 }), Al("img", { onload: function() {
|
|
1416
1416
|
let f = wl[d.chartIndex];
|
|
1417
|
-
this.width === 0 && (Pi(this, { position: "absolute", top: "-999em" }),
|
|
1417
|
+
this.width === 0 && (Pi(this, { position: "absolute", top: "-999em" }), Ee.body.appendChild(this)), Is[h] = { width: this.width, height: this.height }, m.imgwidth = this.width, m.imgheight = this.height, m.element && c(m), this.parentNode && this.parentNode.removeChild(this), d.imgCount--, d.imgCount || !f || f.hasLoaded || f.onload();
|
|
1418
1418
|
}, src: h }), this.imgCount++);
|
|
1419
1419
|
}
|
|
1420
1420
|
return a;
|
|
@@ -1425,7 +1425,7 @@ function Dp() {
|
|
|
1425
1425
|
text(t, e, i, s) {
|
|
1426
1426
|
let r = {};
|
|
1427
1427
|
if (s && (this.allowHTML || !this.forExport)) return this.html(t, e, i);
|
|
1428
|
-
r.x = Math.round(e || 0), i && (r.y = Math.round(i)),
|
|
1428
|
+
r.x = Math.round(e || 0), i && (r.y = Math.round(i)), ue(t) && (r.text = t);
|
|
1429
1429
|
let o = this.createElement("text").attr(r);
|
|
1430
1430
|
return s && (!this.forExport || this.allowHTML) || (o.xSetter = function(a, n, h) {
|
|
1431
1431
|
let c = h.getElementsByTagName("tspan"), d = h.getAttribute(n);
|
|
@@ -1434,7 +1434,7 @@ function Dp() {
|
|
|
1434
1434
|
}), o;
|
|
1435
1435
|
}
|
|
1436
1436
|
fontMetrics(t) {
|
|
1437
|
-
let e =
|
|
1437
|
+
let e = fe(t) ? t : Ll(Ft.prototype.getStyle.call(t, "font-size") || 0), i = e < 24 ? e + 3 : Math.round(1.2 * e), s = Math.round(0.8 * i);
|
|
1438
1438
|
return { h: i, b: s, f: e };
|
|
1439
1439
|
}
|
|
1440
1440
|
rotCorr(t, e, i) {
|
|
@@ -1443,21 +1443,21 @@ function Dp() {
|
|
|
1443
1443
|
}
|
|
1444
1444
|
pathToSegments(t) {
|
|
1445
1445
|
let e = [], i = [], s = { A: 8, C: 7, H: 2, L: 3, M: 3, Q: 5, S: 5, T: 3, V: 2 };
|
|
1446
|
-
for (let r = 0; r < t.length; r++) Ol(i[0]) &&
|
|
1446
|
+
for (let r = 0; r < t.length; r++) Ol(i[0]) && fe(t[r]) && i.length === s[i[0].toUpperCase()] && t.splice(r, 0, i[0].replace("M", "L").replace("m", "l")), typeof t[r] == "string" && (i.length && e.push(i.slice(0)), i.length = 0), i.push(t[r]);
|
|
1447
1447
|
return e.push(i.slice(0)), e;
|
|
1448
1448
|
}
|
|
1449
1449
|
label(t, e, i, s, r, o, a, n, h) {
|
|
1450
|
-
return new
|
|
1450
|
+
return new pe(this, t, e, i, s, r, o, a, n, h);
|
|
1451
1451
|
}
|
|
1452
1452
|
alignElements() {
|
|
1453
1453
|
this.alignedObjects.forEach((t) => t.align());
|
|
1454
1454
|
}
|
|
1455
1455
|
}
|
|
1456
|
-
|
|
1457
|
-
let { composed: Dl, isFirefox: Bl } = C, { attr: Nl, css:
|
|
1456
|
+
ge(Oi.prototype, { Element: Ft, SVG_NS: Tl, escapes: { "&": "&", "<": "<", ">": ">", "'": "'", '"': """ }, symbols: mo, draw: Sl }), Ke.registerRendererType("svg", Oi, !0);
|
|
1457
|
+
let { composed: Dl, isFirefox: Bl } = C, { attr: Nl, css: Jt, createElement: zl, defined: wo, extend: Rl, getAlignFactor: Wl, isNumber: Li, pInt: Xl, pushUnique: Hl } = B;
|
|
1458
1458
|
function Mo(l, t, e) {
|
|
1459
1459
|
let i = this.div?.style;
|
|
1460
|
-
|
|
1460
|
+
Ft.prototype[`${t}Setter`].call(this, l, t, e), i && (e.style[t] = i[t] = l);
|
|
1461
1461
|
}
|
|
1462
1462
|
let Fl = (l, t) => {
|
|
1463
1463
|
if (!l.div) {
|
|
@@ -1469,26 +1469,26 @@ function Dp() {
|
|
|
1469
1469
|
}, l.scaleXSetter = l.scaleYSetter = (r, o) => {
|
|
1470
1470
|
l[o] = r, l.doTransform = !0;
|
|
1471
1471
|
}, l.opacitySetter = l.visibilitySetter = Mo, l.css = (r) => (i.call(l, r), r.cursor && (s.style.cursor = r.cursor), r.pointerEvents && (s.style.pointerEvents = r.pointerEvents), l), l.on = function() {
|
|
1472
|
-
return
|
|
1472
|
+
return Ft.prototype.on.apply({ element: s, onEvents: l.onEvents }, arguments), l;
|
|
1473
1473
|
}, l.div = s;
|
|
1474
1474
|
}
|
|
1475
1475
|
return l.div;
|
|
1476
1476
|
};
|
|
1477
|
-
class
|
|
1477
|
+
class Ie extends Ft {
|
|
1478
1478
|
static compose(t) {
|
|
1479
1479
|
Hl(Dl, this.compose) && (t.prototype.html = function(e, i, s) {
|
|
1480
|
-
return new
|
|
1480
|
+
return new Ie(this, "span").attr({ text: e, x: Math.round(i), y: Math.round(s) });
|
|
1481
1481
|
});
|
|
1482
1482
|
}
|
|
1483
1483
|
constructor(t, e) {
|
|
1484
|
-
super(t, e),
|
|
1484
|
+
super(t, e), Ie.useForeignObject ? this.foreignObject = t.createElement("foreignObject").attr({ zIndex: 2 }) : this.css({ position: "absolute", ...t.styledMode ? {} : { fontFamily: t.style.fontFamily, fontSize: t.style.fontSize } }), this.element.style.whiteSpace = "nowrap";
|
|
1485
1485
|
}
|
|
1486
1486
|
getSpanCorrection(t, e, i) {
|
|
1487
1487
|
this.xCorr = -t * i, this.yCorr = -e;
|
|
1488
1488
|
}
|
|
1489
1489
|
css(t) {
|
|
1490
1490
|
let e, { element: i } = this, s = i.tagName === "SPAN" && t && "width" in t, r = s && t.width;
|
|
1491
|
-
return s && (delete t.width, this.textWidth = Xl(r) || void 0, e = !0), t?.textOverflow === "ellipsis" && (t.overflow = "hidden", t.whiteSpace = "nowrap"), t?.lineClamp && (t.display = "-webkit-box", t.WebkitLineClamp = t.lineClamp, t.WebkitBoxOrient = "vertical", t.overflow = "hidden"), Li(Number(t?.fontSize)) && (t.fontSize += "px"), Rl(this.styles, t),
|
|
1491
|
+
return s && (delete t.width, this.textWidth = Xl(r) || void 0, e = !0), t?.textOverflow === "ellipsis" && (t.overflow = "hidden", t.whiteSpace = "nowrap"), t?.lineClamp && (t.display = "-webkit-box", t.WebkitLineClamp = t.lineClamp, t.WebkitBoxOrient = "vertical", t.overflow = "hidden"), Li(Number(t?.fontSize)) && (t.fontSize += "px"), Rl(this.styles, t), Jt(i, t), e && this.updateTransform(), this;
|
|
1492
1492
|
}
|
|
1493
1493
|
htmlGetBBox() {
|
|
1494
1494
|
let { element: t } = this;
|
|
@@ -1500,15 +1500,15 @@ function Dp() {
|
|
|
1500
1500
|
return;
|
|
1501
1501
|
}
|
|
1502
1502
|
let { element: t, foreignObject: e, oldTextWidth: i, renderer: s, rotation: r, rotationOriginX: o, rotationOriginY: a, scaleX: n, scaleY: h, styles: { display: c = "inline-block", whiteSpace: d }, textAlign: p = "left", textWidth: u, translateX: g = 0, translateY: x = 0, x: m = 0, y: f = 0 } = this;
|
|
1503
|
-
if (e ||
|
|
1503
|
+
if (e || Jt(t, { marginLeft: `${g}px`, marginTop: `${x}px` }), t.tagName === "SPAN") {
|
|
1504
1504
|
let y, b = [r, p, t.innerHTML, u, this.textAlign].join(","), v = -(this.parentGroup?.padding * 1) || 0;
|
|
1505
1505
|
if (u !== i) {
|
|
1506
|
-
let w = this.textPxLength ? this.textPxLength : (
|
|
1507
|
-
(A > i || w > A || P) && (/[\-\s\u00AD]/.test(t.textContent || t.innerText) || t.style.textOverflow === "ellipsis") && (
|
|
1506
|
+
let w = this.textPxLength ? this.textPxLength : (Jt(t, { width: "", whiteSpace: d || "nowrap" }), t.offsetWidth), A = u || 0, P = !s.styledMode && t.style.textOverflow === "" && t.style.webkitLineClamp;
|
|
1507
|
+
(A > i || w > A || P) && (/[\-\s\u00AD]/.test(t.textContent || t.innerText) || t.style.textOverflow === "ellipsis") && (Jt(t, { width: (r || n || w > A || P) && Li(u) ? u + "px" : "auto", display: c, whiteSpace: d || "normal" }), this.oldTextWidth = u);
|
|
1508
1508
|
}
|
|
1509
|
-
e && (
|
|
1509
|
+
e && (Jt(t, { display: "inline-block", verticalAlign: "top" }), e.attr({ width: s.width, height: s.height })), b !== this.cTT && (y = s.fontMetrics(t).b, wo(r) && !e && (r !== (this.oldRotation || 0) || p !== this.oldAlign) && Jt(t, { transform: `rotate(${r}deg)`, transformOrigin: `${v}% ${v}px` }), this.getSpanCorrection(!wo(r) && !this.textWidth && this.textPxLength || t.offsetWidth, y, Wl(p)));
|
|
1510
1510
|
let { xCorr: k = 0, yCorr: M = 0 } = this, S = { left: `${m + k}px`, top: `${f + M}px`, textAlign: p, transformOrigin: `${(o ?? m) - k - m - v}px ${(a ?? f) - M - f - v}px` };
|
|
1511
|
-
(n || h) && (S.transform = `scale(${n ?? 1},${h ?? 1})`), e ? (super.updateTransform(), Li(m) && Li(f) ? (e.attr({ x: m + k, y: f + M, width: t.offsetWidth + 3, height: t.offsetHeight, "transform-origin": t.getAttribute("transform-origin") || "0 0" }),
|
|
1511
|
+
(n || h) && (S.transform = `scale(${n ?? 1},${h ?? 1})`), e ? (super.updateTransform(), Li(m) && Li(f) ? (e.attr({ x: m + k, y: f + M, width: t.offsetWidth + 3, height: t.offsetHeight, "transform-origin": t.getAttribute("transform-origin") || "0 0" }), Jt(t, { display: c, textAlign: p })) : Bl && e.attr({ width: 0, height: 0 })) : Jt(t, S), this.cTT = b, this.oldRotation = r, this.oldAlign = p;
|
|
1512
1512
|
}
|
|
1513
1513
|
}
|
|
1514
1514
|
add(t) {
|
|
@@ -1526,7 +1526,7 @@ function Dp() {
|
|
|
1526
1526
|
return this.added = !0, this.alignOnAdd && this.updateTransform(), this;
|
|
1527
1527
|
}
|
|
1528
1528
|
textSetter(t) {
|
|
1529
|
-
t !== this.textStr && (delete this.bBox, delete this.oldTextWidth,
|
|
1529
|
+
t !== this.textStr && (delete this.bBox, delete this.oldTextWidth, Q.setElementHTML(this.element, t ?? ""), this.textStr = t, this.doTransform = !0);
|
|
1530
1530
|
}
|
|
1531
1531
|
alignSetter(t) {
|
|
1532
1532
|
this.alignValue = this.textAlign = t, this.doTransform = !0;
|
|
@@ -1535,29 +1535,29 @@ function Dp() {
|
|
|
1535
1535
|
this[e] = t, this.doTransform = !0;
|
|
1536
1536
|
}
|
|
1537
1537
|
}
|
|
1538
|
-
let
|
|
1539
|
-
|
|
1538
|
+
let me = Ie.prototype;
|
|
1539
|
+
me.visibilitySetter = me.opacitySetter = Mo, me.ySetter = me.rotationSetter = me.rotationOriginXSetter = me.rotationOriginYSetter = me.xSetter, (function(l) {
|
|
1540
1540
|
l.xAxis = { alignTicks: !0, allowDecimals: void 0, panningEnabled: !0, zIndex: 2, zoomEnabled: !0, dateTimeLabelFormats: { millisecond: { main: "%[HMSL]", range: !1 }, second: { main: "%[HMS]", range: !1 }, minute: { main: "%[HM]", range: !1 }, hour: { main: "%[HM]", range: !1 }, day: { main: "%[eb]" }, week: { main: "%[eb]" }, month: { main: "%[bY]" }, year: { main: "%Y" } }, endOnTick: !1, gridLineDashStyle: "Solid", gridZIndex: 1, labels: { autoRotationLimit: 80, distance: 15, enabled: !0, indentation: 10, overflow: "justify", reserveSpace: void 0, rotation: void 0, staggerLines: 0, step: 0, useHTML: !1, zIndex: 7, style: { color: "#333333", cursor: "default", fontSize: "0.8em", textOverflow: "ellipsis" } }, maxPadding: 0.01, minorGridLineDashStyle: "Solid", minorTickLength: 2, minorTickPosition: "outside", minorTicksPerMajor: 5, minPadding: 0.01, offset: void 0, reversed: void 0, reversedStacks: !1, showEmpty: !0, showFirstLabel: !0, showLastLabel: !0, startOfWeek: 1, startOnTick: !1, tickLength: 10, tickPixelInterval: 100, tickmarkPlacement: "between", tickPosition: "outside", title: { align: "middle", useHTML: !1, x: 0, y: 0, style: { color: "#666666", fontSize: "0.8em" } }, visible: !0, minorGridLineColor: "#f2f2f2", minorGridLineWidth: 1, minorTickColor: "#999999", lineColor: "#333333", lineWidth: 1, gridLineColor: "#e6e6e6", gridLineWidth: void 0, tickColor: "#333333" }, l.yAxis = { reversedStacks: !0, endOnTick: !0, maxPadding: 0.05, minPadding: 0.05, tickPixelInterval: 72, showLastLabel: !0, labels: { x: void 0 }, startOnTick: !0, title: {}, stackLabels: { animation: {}, allowOverlap: !1, enabled: !1, crop: !0, overflow: "justify", formatter: function() {
|
|
1541
1541
|
let { numberFormatter: t } = this.axis.chart;
|
|
1542
1542
|
return t(this.total || 0, -1);
|
|
1543
1543
|
}, style: { color: "#000000", fontSize: "0.7em", fontWeight: "bold", textOutline: "1px contrast" } }, gridLineWidth: 1, lineWidth: 0 };
|
|
1544
|
-
})(
|
|
1545
|
-
let Gl =
|
|
1546
|
-
(
|
|
1544
|
+
})(nt || (nt = {}));
|
|
1545
|
+
let Gl = nt, { addEvent: Yl, isFunction: jl, objectEach: Ul, removeEvent: Vl } = B;
|
|
1546
|
+
(gt || (gt = {})).registerEventOptions = function(l, t) {
|
|
1547
1547
|
l.eventOptions = l.eventOptions || {}, Ul(t.events, function(e, i) {
|
|
1548
1548
|
l.eventOptions[i] !== e && (l.eventOptions[i] && (Vl(l, i, l.eventOptions[i]), delete l.eventOptions[i]), jl(e) && (l.eventOptions[i] = e, Yl(l, i, e, { order: 0 })));
|
|
1549
1549
|
});
|
|
1550
1550
|
};
|
|
1551
|
-
let Ei =
|
|
1551
|
+
let Ei = gt, { deg2rad: zs } = C, { clamp: $l, correctFloat: Ii, defined: Rs, destroyObjectProperties: Zl, extend: So, fireEvent: ei, getAlignFactor: ql, isNumber: Di, merge: Kl, objectEach: _l, pick: Gt } = B, De = class {
|
|
1552
1552
|
constructor(l, t, e, i, s) {
|
|
1553
1553
|
this.isNew = !0, this.isNewLabel = !0, this.axis = l, this.pos = t, this.type = e || "", this.parameters = s || {}, this.tickmarkOffset = this.parameters.tickmarkOffset, this.options = this.parameters.options, ei(this, "init"), e || i || this.addLabel();
|
|
1554
1554
|
}
|
|
1555
1555
|
addLabel() {
|
|
1556
|
-
let l = this, t = l.axis, e = t.options, i = t.chart, s = t.categories, r = t.logarithmic, o = t.names, a = l.pos, n =
|
|
1556
|
+
let l = this, t = l.axis, e = t.options, i = t.chart, s = t.categories, r = t.logarithmic, o = t.names, a = l.pos, n = Gt(l.options?.labels, e.labels), h = t.tickPositions, c = a === h[0], d = a === h[h.length - 1], p = (!n.step || n.step === 1) && t.tickInterval === 1, u = h.info, g = l.label, x, m, f, y = this.parameters.category || (s ? Gt(s[a], o[a], a) : a);
|
|
1557
1557
|
r && Di(y) && (y = Ii(r.lin2log(y))), t.dateTime && (u ? x = (m = i.time.resolveDTLFormat(e.dateTimeLabelFormats[!e.grid?.enabled && u.higherRanks[a] || u.unitName])).main : Di(y) && (x = t.dateTime.getXDateFormat(y, e.dateTimeLabelFormats || {}))), l.isFirst = c, l.isLast = d;
|
|
1558
1558
|
let b = { axis: t, chart: i, dateTimeLabelFormat: x, isFirst: c, isLast: d, pos: a, tick: l, tickPositionInfo: u, value: y };
|
|
1559
1559
|
ei(this, "labelFormat", b);
|
|
1560
|
-
let v = (S) => n.formatter ? n.formatter.call(S, S) : n.format ? (S.text = t.defaultLabelFormatter.call(S),
|
|
1560
|
+
let v = (S) => n.formatter ? n.formatter.call(S, S) : n.format ? (S.text = t.defaultLabelFormatter.call(S), Et.format(n.format, S, i)) : t.defaultLabelFormatter.call(S), k = v.call(b, b), M = m?.list;
|
|
1561
1561
|
M ? l.shortenLabel = function() {
|
|
1562
1562
|
for (f = 0; f < M.length; f++) if (So(b, { dateTimeLabelFormat: M[f] }), g.attr({ text: v.call(b, b) }), g.getBBox().width < t.getSlotWidth(l) - 2 * (n.padding || 0)) return;
|
|
1563
1563
|
g.attr({ text: "" });
|
|
@@ -1576,7 +1576,7 @@ function Dp() {
|
|
|
1576
1576
|
}
|
|
1577
1577
|
getLabelPosition(l, t, e, i, s, r, o, a) {
|
|
1578
1578
|
let n, h, c = this.axis, d = c.transA, p = c.isLinked && c.linkedParent ? c.linkedParent.reversed : c.reversed, u = c.staggerLines, g = c.tickRotCorr || { x: 0, y: 0 }, x = i || c.reserveSpaceDefault ? 0 : -c.labelOffset * (c.labelAlign === "center" ? 0.5 : 1), m = s.distance, f = {};
|
|
1579
|
-
return n = c.side === 0 ? e.rotation ? -m : -e.getBBox().height : c.side === 2 ? g.y + m : Math.cos(e.rotation * zs) * (g.y - e.getBBox(!1, 0).height / 2), Rs(s.y) && (n = c.side === 0 && c.horiz ? s.y + n : s.y), l = l +
|
|
1579
|
+
return n = c.side === 0 ? e.rotation ? -m : -e.getBBox().height : c.side === 2 ? g.y + m : Math.cos(e.rotation * zs) * (g.y - e.getBBox(!1, 0).height / 2), Rs(s.y) && (n = c.side === 0 && c.horiz ? s.y + n : s.y), l = l + Gt(s.x, [0, 1, 0, -1][c.side] * m) + x + g.x - (r && i ? r * d * (p ? -1 : 1) : 0), t = t + n - (r && !i ? r * d * (p ? 1 : -1) : 0), u && (h = o / (a || 1) % u, c.opposite && (h = u - h - 1), t += h * (c.labelOffset / u)), f.x = l, f.y = Math.round(t), ei(this, "afterGetLabelPosition", { pos: f, tickmarkOffset: r, index: o }), f;
|
|
1580
1580
|
}
|
|
1581
1581
|
getLabelSize() {
|
|
1582
1582
|
return this.label ? this.label.getBBox()[this.axis.horiz ? "height" : "width"] : 0;
|
|
@@ -1585,7 +1585,7 @@ function Dp() {
|
|
|
1585
1585
|
return r.crispLine([["M", l, t], ["L", l + (s ? 0 : -e), t + (s ? e : 0)]], i);
|
|
1586
1586
|
}
|
|
1587
1587
|
handleOverflow(l) {
|
|
1588
|
-
let t = this.axis, e = t.options.labels, i = l.x, s = t.chart.chartWidth, r = t.chart.spacing, o =
|
|
1588
|
+
let t = this.axis, e = t.options.labels, i = l.x, s = t.chart.chartWidth, r = t.chart.spacing, o = Gt(t.labelLeft, Math.min(t.pos, r[3])), a = Gt(t.labelRight, Math.max(t.isRadial ? 0 : t.pos + t.len, s - r[1])), n = this.label, h = this.rotation, c = ql(t.labelAlign || n.attr("align")), d = n.getBBox().width, p = t.getSlotWidth(this), u = p, g = 1, x;
|
|
1589
1589
|
h || e.overflow !== "justify" ? h < 0 && i - c * d < o ? x = Math.round(i / Math.cos(h * zs) - o) : h > 0 && i + c * d > a && (x = Math.round((s - i) / Math.cos(h * zs))) : (i - c * d < o ? u = l.x + u * (1 - c) - o : i + (1 - c) * d > a && (u = a - l.x + u * c, g = -1), (u = Math.min(p, u)) < p && t.labelAlign === "center" && (l.x += g * (p - u - c * (p - Math.min(d, u)))), (d > u || t.autoRotation && n?.styles?.width) && (x = u)), x && n && (this.shortenLabel ? this.shortenLabel() : n.css(So({}, { width: Math.floor(x) + "px", lineClamp: +!t.isRadial })));
|
|
1590
1590
|
}
|
|
1591
1591
|
moveLabel(l, t) {
|
|
@@ -1595,42 +1595,42 @@ function Dp() {
|
|
|
1595
1595
|
}), !r && (e.labelPos || i) && (o = e.labelPos || i.xy, e.movedLabel = e.createLabel(l, t, o), e.movedLabel && e.movedLabel.attr({ opacity: 0 }));
|
|
1596
1596
|
}
|
|
1597
1597
|
render(l, t, e) {
|
|
1598
|
-
let i = this.axis, s = i.horiz, r = this.pos, o =
|
|
1598
|
+
let i = this.axis, s = i.horiz, r = this.pos, o = Gt(this.tickmarkOffset, i.tickmarkOffset), a = this.getPosition(s, r, o, t), n = a.x, h = a.y, c = i.pos, d = c + i.len, p = s ? n : h, u = Gt(e, this.label?.newOpacity, 1);
|
|
1599
1599
|
!i.chart.polar && (Ii(p) < c || p > d) && (e = 0), e ?? (e = 1), this.isActive = !0, this.renderGridLine(t, e), this.renderMark(a, e), this.renderLabel(a, t, u, l), this.isNew = !1, ei(this, "afterRender");
|
|
1600
1600
|
}
|
|
1601
1601
|
renderGridLine(l, t) {
|
|
1602
|
-
let e = this.axis, i = e.options, s = {}, r = this.pos, o = this.type, a =
|
|
1602
|
+
let e = this.axis, i = e.options, s = {}, r = this.pos, o = this.type, a = Gt(this.tickmarkOffset, e.tickmarkOffset), n = e.chart.renderer, h = this.gridLine, c, d = i.gridLineWidth, p = i.gridLineColor, u = i.gridLineDashStyle;
|
|
1603
1603
|
this.type === "minor" && (d = i.minorGridLineWidth, p = i.minorGridLineColor, u = i.minorGridLineDashStyle), h || (e.chart.styledMode || (s.stroke = p, s["stroke-width"] = d || 0, s.dashstyle = u), o || (s.zIndex = 1), l && (t = 0), this.gridLine = h = n.path().attr(s).addClass("highcharts-" + (o ? o + "-" : "") + "grid-line").add(e.gridGroup)), h && (c = e.getPlotLinePath({ value: r + a, lineWidth: h.strokeWidth(), force: "pass", old: l, acrossPanes: !1 })) && h[l || this.isNew ? "attr" : "animate"]({ d: c, opacity: t });
|
|
1604
1604
|
}
|
|
1605
1605
|
renderMark(l, t) {
|
|
1606
|
-
let e = this.axis, i = e.options, s = e.chart.renderer, r = this.type, o = e.tickSize(r ? r + "Tick" : "tick"), a = l.x, n = l.y, h =
|
|
1606
|
+
let e = this.axis, i = e.options, s = e.chart.renderer, r = this.type, o = e.tickSize(r ? r + "Tick" : "tick"), a = l.x, n = l.y, h = Gt(i[r !== "minor" ? "tickWidth" : "minorTickWidth"], !r && e.isXAxis ? 1 : 0), c = i[r !== "minor" ? "tickColor" : "minorTickColor"], d = this.mark, p = !d;
|
|
1607
1607
|
o && (e.opposite && (o[0] = -o[0]), !d && (this.mark = d = s.path().addClass("highcharts-" + (r ? r + "-" : "") + "tick").add(e.axisGroup), e.chart.styledMode || d.attr({ stroke: c, "stroke-width": h })), d[p ? "attr" : "animate"]({ d: this.getMarkPath(a, n, o[0], d.strokeWidth(), e.horiz, s), opacity: t }));
|
|
1608
1608
|
}
|
|
1609
1609
|
renderLabel(l, t, e, i) {
|
|
1610
|
-
let s = this.axis, r = s.horiz, o = s.options, a = this.label, n = o.labels, h = n.step, c =
|
|
1610
|
+
let s = this.axis, r = s.horiz, o = s.options, a = this.label, n = o.labels, h = n.step, c = Gt(this.tickmarkOffset, s.tickmarkOffset), d = l.x, p = l.y, u = !0;
|
|
1611
1611
|
a && Di(d) && (a.xy = l = this.getLabelPosition(d, p, a, r, n, c, i, h), (!this.isFirst || this.isLast || o.showFirstLabel) && (!this.isLast || this.isFirst || o.showLastLabel) ? !r || n.step || n.rotation || t || e === 0 || this.handleOverflow(l) : u = !1, h && i % h && (u = !1), u && Di(l.y) ? (l.opacity = e, a[this.isNewLabel ? "attr" : "animate"](l).show(!0), this.isNewLabel = !1) : (a.hide(), this.isNewLabel = !0));
|
|
1612
1612
|
}
|
|
1613
1613
|
replaceMovedLabel() {
|
|
1614
1614
|
let l = this.label, t = this.axis;
|
|
1615
1615
|
l && !this.isNew && (l.animate({ opacity: 0 }, void 0, l.destroy), delete this.label), t.isDirty = !0, this.label = this.movedLabel, delete this.movedLabel;
|
|
1616
1616
|
}
|
|
1617
|
-
}, { animObject: Jl } =
|
|
1617
|
+
}, { animObject: Jl } = ft, { xAxis: To, yAxis: Ql } = Gl, { defaultOptions: Ws } = Lt, { registerEventOptions: th } = Ei, { deg2rad: eh } = C, { arrayMax: Ao, arrayMin: ih, clamp: Xs, correctFloat: Ct, defined: q, destroyObjectProperties: sh, erase: Co, error: Hs, extend: Bi, fireEvent: et, getClosestDistance: Po, insertItem: rh, isArray: Oo, isNumber: R, isString: Lo, merge: Ni, normalizeTickInterval: oh, objectEach: zi, pick: H, relativeLength: Ri, removeEvent: ah, splat: nh, syncTimeout: lh } = B, Eo = (l, t) => oh(t, void 0, void 0, H(l.options.allowDecimals, t < 0.5 || l.tickAmount !== void 0), !!l.tickAmount);
|
|
1618
1618
|
Bi(Ws, { xAxis: To, yAxis: Ni(To, Ql) });
|
|
1619
|
-
class
|
|
1619
|
+
class Be {
|
|
1620
1620
|
constructor(t, e, i) {
|
|
1621
1621
|
this.init(t, e, i);
|
|
1622
1622
|
}
|
|
1623
1623
|
init(t, e, i = this.coll) {
|
|
1624
1624
|
let s = i === "xAxis", r = this.isZAxis || (t.inverted ? !s : s);
|
|
1625
|
-
this.chart = t, this.horiz = r, this.isXAxis = s, this.coll = i,
|
|
1625
|
+
this.chart = t, this.horiz = r, this.isXAxis = s, this.coll = i, et(this, "init", { userOptions: e }), this.opposite = H(e.opposite, this.opposite), this.side = H(e.side, this.side, r ? 2 * !this.opposite : this.opposite ? 1 : 3), this.setOptions(e);
|
|
1626
1626
|
let o = this.options, a = o.labels;
|
|
1627
|
-
this.type ?? (this.type = o.type || "linear"), this.uniqueNames ?? (this.uniqueNames = o.uniqueNames ?? !0),
|
|
1627
|
+
this.type ?? (this.type = o.type || "linear"), this.uniqueNames ?? (this.uniqueNames = o.uniqueNames ?? !0), et(this, "afterSetType"), this.userOptions = e, this.minPixelPadding = 0, this.reversed = H(o.reversed, this.reversed), this.visible = o.visible, this.zoomEnabled = o.zoomEnabled, this.hasNames = this.type === "category" || o.categories === !0, this.categories = Oo(o.categories) && o.categories || (this.hasNames ? [] : void 0), this.names || (this.names = [], this.names.keys = {}), this.plotLinesAndBandsGroups = {}, this.positiveValuesOnly = !!this.logarithmic, this.isLinked = q(o.linkedTo), this.ticks = {}, this.labelEdge = [], this.minorTicks = {}, this.plotLinesAndBands = [], this.alternateBands = {}, this.len ?? (this.len = 0), this.minRange = this.userMinRange = o.minRange || o.maxZoom, this.range = o.range, this.offset = o.offset || 0, this.max = void 0, this.min = void 0;
|
|
1628
1628
|
let n = H(o.crosshair, nh(t.options.tooltip.crosshairs)[+!s]);
|
|
1629
|
-
this.crosshair = n === !0 ? {} : n, t.axes.indexOf(this) === -1 && (s ? t.axes.splice(t.xAxis.length, 0, this) : t.axes.push(this), rh(this, t[this.coll])), t.orderItems(this.coll), this.series = this.series || [], t.inverted && !this.isZAxis && s && !
|
|
1629
|
+
this.crosshair = n === !0 ? {} : n, t.axes.indexOf(this) === -1 && (s ? t.axes.splice(t.xAxis.length, 0, this) : t.axes.push(this), rh(this, t[this.coll])), t.orderItems(this.coll), this.series = this.series || [], t.inverted && !this.isZAxis && s && !q(this.reversed) && (this.reversed = !0), this.labelRotation = R(a.rotation) ? a.rotation : void 0, th(this, o), et(this, "afterInit");
|
|
1630
1630
|
}
|
|
1631
1631
|
setOptions(t) {
|
|
1632
1632
|
let e = this.horiz ? { labels: { autoRotation: [-45], padding: 3 }, margin: 15 } : { labels: { padding: 1 }, title: { rotation: 90 * this.side } };
|
|
1633
|
-
this.options = Ni(e, this.coll === "yAxis" ? { title: { text: this.chart.options.lang.yAxisTitle } } : {}, Ws[this.coll], t),
|
|
1633
|
+
this.options = Ni(e, this.coll === "yAxis" ? { title: { text: this.chart.options.lang.yAxisTitle } } : {}, Ws[this.coll], t), et(this, "afterSetOptions", { userOptions: t });
|
|
1634
1634
|
}
|
|
1635
1635
|
defaultLabelFormatter() {
|
|
1636
1636
|
let t = this.axis, { numberFormatter: e } = this.chart, i = R(this.value) ? this.value : NaN, s = t.chart.time, r = t.categories, o = this.dateTimeLabelFormat, a = Ws.lang, n = a.numericSymbols, h = a.numericSymbolMagnitude || 1e3, c = t.logarithmic ? Math.abs(i) : t.tickInterval, d = n?.length, p, u;
|
|
@@ -1641,24 +1641,24 @@ function Dp() {
|
|
|
1641
1641
|
}
|
|
1642
1642
|
getSeriesExtremes() {
|
|
1643
1643
|
let t, e = this;
|
|
1644
|
-
|
|
1644
|
+
et(this, "getSeriesExtremes", null, function() {
|
|
1645
1645
|
e.hasVisibleSeries = !1, e.dataMin = e.dataMax = e.threshold = void 0, e.softThreshold = !e.isXAxis, e.series.forEach((i) => {
|
|
1646
1646
|
if (i.reserveSpace()) {
|
|
1647
1647
|
let s = i.options, r, o = s.threshold, a, n;
|
|
1648
1648
|
if (e.hasVisibleSeries = !0, e.positiveValuesOnly && 0 >= (o || 0) && (o = void 0), e.isXAxis) (r = i.getColumn("x")).length && (r = e.logarithmic ? r.filter((h) => h > 0) : r, a = (t = i.getXExtremes(r)).min, n = t.max, R(a) || a instanceof Date || (r = r.filter(R), a = (t = i.getXExtremes(r)).min, n = t.max), r.length && (e.dataMin = Math.min(H(e.dataMin, a), a), e.dataMax = Math.max(H(e.dataMax, n), n)));
|
|
1649
1649
|
else {
|
|
1650
1650
|
let h = i.applyExtremes();
|
|
1651
|
-
R(h.dataMin) && (a = h.dataMin, e.dataMin = Math.min(H(e.dataMin, a), a)), R(h.dataMax) && (n = h.dataMax, e.dataMax = Math.max(H(e.dataMax, n), n)),
|
|
1651
|
+
R(h.dataMin) && (a = h.dataMin, e.dataMin = Math.min(H(e.dataMin, a), a)), R(h.dataMax) && (n = h.dataMax, e.dataMax = Math.max(H(e.dataMax, n), n)), q(o) && (e.threshold = o), (!s.softThreshold || e.positiveValuesOnly) && (e.softThreshold = !1);
|
|
1652
1652
|
}
|
|
1653
1653
|
}
|
|
1654
1654
|
});
|
|
1655
|
-
}),
|
|
1655
|
+
}), et(this, "afterGetSeriesExtremes");
|
|
1656
1656
|
}
|
|
1657
1657
|
translate(t, e, i, s, r, o) {
|
|
1658
1658
|
let a = this.linkedParent || this, n = s && a.old ? a.old.min : a.min;
|
|
1659
1659
|
if (!R(n)) return NaN;
|
|
1660
1660
|
let h = a.minPixelPadding, c = (a.isOrdinal || a.brokenAxis?.hasBreaks || a.logarithmic && r) && !!a.lin2val, d = 1, p = 0, u = s && a.old ? a.old.transA : a.transA, g = 0;
|
|
1661
|
-
return u || (u = a.transA), i && (d *= -1, p = a.len), a.reversed && (d *= -1, p -= d * (a.sector || a.len)), e ? (g = (t = t * d + p - h) / u + n, c && (g = a.lin2val(g))) : (c && (t = a.val2lin(t)), g = d * (t - n) * u + p + d * h + (R(o) ? u * o : 0), a.isRadial || (g =
|
|
1661
|
+
return u || (u = a.transA), i && (d *= -1, p = a.len), a.reversed && (d *= -1, p -= d * (a.sector || a.len)), e ? (g = (t = t * d + p - h) / u + n, c && (g = a.lin2val(g))) : (c && (t = a.val2lin(t)), g = d * (t - n) * u + p + d * h + (R(o) ? u * o : 0), a.isRadial || (g = Ct(g))), g;
|
|
1662
1662
|
}
|
|
1663
1663
|
toPixels(t, e) {
|
|
1664
1664
|
return this.translate(this.chart?.time.parse(t) ?? NaN, !1, !this.horiz, void 0, !0) + (e ? 0 : this.pos);
|
|
@@ -1672,14 +1672,14 @@ function Dp() {
|
|
|
1672
1672
|
return u !== "pass" && (k < M || k > S) && (u ? k = Xs(k, M, S) : y = !0), k;
|
|
1673
1673
|
}
|
|
1674
1674
|
let v = { value: a, lineWidth: n, old: o, force: u, acrossPanes: t.acrossPanes, translatedValue: p };
|
|
1675
|
-
return
|
|
1675
|
+
return et(this, "getPlotLinePath", v, function(k) {
|
|
1676
1676
|
g = m = (p = Xs(p = H(p, e.translate(a, void 0, void 0, o)), -1e9, 1e9)) + d, x = f = h - p - d, R(p) ? e.horiz ? (x = r, f = h - e.bottom + (e.options.isInternal ? 0 : i.scrollablePixelsY || 0), g = m = b(g, s, s + e.width)) : (g = s, m = c - e.right + (i.scrollablePixelsX || 0), x = f = b(x, r, r + e.height)) : (y = !0, u = !1), k.path = y && !u ? void 0 : i.renderer.crispLine([["M", g, x], ["L", m, f]], n || 1);
|
|
1677
1677
|
}), v.path;
|
|
1678
1678
|
}
|
|
1679
1679
|
getLinearTickPositions(t, e, i) {
|
|
1680
|
-
let s, r, o, a =
|
|
1681
|
-
if (
|
|
1682
|
-
for (s = a; s <= n && (h.push(s), (s =
|
|
1680
|
+
let s, r, o, a = Ct(Math.floor(e / t) * t), n = Ct(Math.ceil(i / t) * t), h = [];
|
|
1681
|
+
if (Ct(a + t) === a && (o = 20), this.single) return [e];
|
|
1682
|
+
for (s = a; s <= n && (h.push(s), (s = Ct(s + t, o)) !== r); ) r = s;
|
|
1683
1683
|
return h;
|
|
1684
1684
|
}
|
|
1685
1685
|
getMinorTickInterval() {
|
|
@@ -1700,7 +1700,7 @@ function Dp() {
|
|
|
1700
1700
|
}
|
|
1701
1701
|
adjustForMinRange() {
|
|
1702
1702
|
let t = this.options, e = this.logarithmic, i = this.chart.time, { max: s, min: r, minRange: o } = this, a, n, h, c;
|
|
1703
|
-
this.isXAxis && o === void 0 && !e && (o =
|
|
1703
|
+
this.isXAxis && o === void 0 && !e && (o = q(t.min) || q(t.max) || q(t.floor) || q(t.ceiling) ? null : Math.min(5 * (Po(this.series.map((d) => {
|
|
1704
1704
|
let p = d.getColumn("x");
|
|
1705
1705
|
return d.xIncrement ? p.slice(0, 2) : p;
|
|
1706
1706
|
})) || 0), this.dataMax - this.dataMin)), R(s) && R(r) && R(o) && s - r < o && (n = this.dataMax - this.dataMin >= o, a = (o - s + r) / 2, h = [r - a, i.parse(t.min) ?? r - a], n && (h[2] = e ? e.log2lin(this.dataMin) : this.dataMin), c = [(r = Ao(h)) + o, i.parse(t.max) ?? r + o], n && (c[2] = e ? e.log2lin(this.dataMax) : this.dataMax), (s = ih(c)) - r < o && (h[0] = s - o, h[1] = i.parse(t.min) ?? s - o, r = Ao(h))), this.minRange = o, this.min = r, this.max = s;
|
|
@@ -1712,14 +1712,14 @@ function Dp() {
|
|
|
1712
1712
|
let i = [];
|
|
1713
1713
|
this.series.forEach(function(s) {
|
|
1714
1714
|
let r = s.closestPointRange, o = s.getColumn("x");
|
|
1715
|
-
o.length === 1 ? i.push(o[0]) : s.sorted &&
|
|
1715
|
+
o.length === 1 ? i.push(o[0]) : s.sorted && q(r) && s.reserveSpace() && (e = q(e) ? Math.min(e, r) : r);
|
|
1716
1716
|
}), i.length && (i.sort((s, r) => s - r), t = Po([i]));
|
|
1717
1717
|
}
|
|
1718
1718
|
return t && e ? Math.min(t, e) : t || e;
|
|
1719
1719
|
}
|
|
1720
1720
|
nameToX(t) {
|
|
1721
1721
|
let e = Oo(this.options.categories), i = e ? this.categories : this.names, s = t.options.x, r;
|
|
1722
|
-
return t.series.requireSorting = !1,
|
|
1722
|
+
return t.series.requireSorting = !1, q(s) || (s = this.uniqueNames && i ? e ? i.indexOf(t.name) : H(i.keys[t.name], -1) : t.series.autoIncrement()), s === -1 ? !e && i && (r = i.length) : R(s) && (r = s), r !== void 0 ? (this.names[r] = t.name, this.names.keys[t.name] = r) : t.x && (r = t.x), r;
|
|
1723
1723
|
}
|
|
1724
1724
|
updateNames() {
|
|
1725
1725
|
let t = this, e = this.names;
|
|
@@ -1742,7 +1742,7 @@ function Dp() {
|
|
|
1742
1742
|
let x = p.is("xrange") ? !r : r;
|
|
1743
1743
|
n = Math.max(n, x && Lo(g) ? 0 : u / 2), h = Math.max(h, x && g === "on" ? 0 : u);
|
|
1744
1744
|
}
|
|
1745
|
-
}), c = t.ordinal?.slope && a ? t.ordinal.slope / a : 1, t.minPointOffset = n *= c, t.pointRangePadding = h *= c, t.pointRange = Math.min(o, t.single && s ? 1 : e), r && (t.closestPointRange = a)), t.translationSlope = t.transA = d = t.staticScale || t.len / (e + h || 1), t.transB = t.horiz ? t.left : t.bottom, t.minPixelPadding = d * n,
|
|
1745
|
+
}), c = t.ordinal?.slope && a ? t.ordinal.slope / a : 1, t.minPointOffset = n *= c, t.pointRangePadding = h *= c, t.pointRange = Math.min(o, t.single && s ? 1 : e), r && (t.closestPointRange = a)), t.translationSlope = t.transA = d = t.staticScale || t.len / (e + h || 1), t.transB = t.horiz ? t.left : t.bottom, t.minPixelPadding = d * n, et(this, "afterSetAxisTranslation");
|
|
1746
1746
|
}
|
|
1747
1747
|
minFromRange() {
|
|
1748
1748
|
let { max: t, min: e } = this;
|
|
@@ -1750,26 +1750,26 @@ function Dp() {
|
|
|
1750
1750
|
}
|
|
1751
1751
|
setTickInterval(t) {
|
|
1752
1752
|
let { categories: e, chart: i, dataMax: s, dataMin: r, dateTime: o, isXAxis: a, logarithmic: n, options: h, softThreshold: c } = this, d = i.time, p = R(this.threshold) ? this.threshold : void 0, u = this.minRange || 0, { ceiling: g, floor: x, linkedTo: m, softMax: f, softMin: y } = h, b = R(m) && i[this.coll]?.[m], v = h.tickPixelInterval, k = h.maxPadding, M = h.minPadding, S = 0, w, A = R(h.tickInterval) && h.tickInterval >= 0 ? h.tickInterval : void 0, P, T, L, I;
|
|
1753
|
-
if (o || e || b || this.getTickAmount(), L = H(this.userMin, d.parse(h.min)), I = H(this.userMax, d.parse(h.max)), b ? (this.linkedParent = b, w = b.getExtremes(), this.min = H(w.min, w.dataMin), this.max = H(w.max, w.dataMax), this.type !== b.type && Hs(11, !0, i)) : (c &&
|
|
1754
|
-
if (!R(this.userMin) && R(y) && y < this.min && (this.min = L = y), !R(this.userMax) && R(f) && f > this.max && (this.max = I = f), e || this.axisPointRange || this.stacking?.usePercentage || b || (S = this.max - this.min) && (!
|
|
1753
|
+
if (o || e || b || this.getTickAmount(), L = H(this.userMin, d.parse(h.min)), I = H(this.userMax, d.parse(h.max)), b ? (this.linkedParent = b, w = b.getExtremes(), this.min = H(w.min, w.dataMin), this.max = H(w.max, w.dataMax), this.type !== b.type && Hs(11, !0, i)) : (c && q(p) && R(s) && R(r) && (r >= p ? (P = p, M = 0) : s <= p && (T = p, k = 0)), this.min = H(L, P, r), this.max = H(I, T, s)), R(this.max) && R(this.min) && (n && (this.positiveValuesOnly && !t && 0 >= Math.min(this.min, H(r, this.min)) && Hs(10, !0, i), this.min = Ct(n.log2lin(this.min), 16), this.max = Ct(n.log2lin(this.max), 16)), this.range && R(r) && (this.userMin = this.min = L = Math.max(r, this.minFromRange() || 0), this.userMax = I = this.max, this.range = void 0)), et(this, "foundExtremes"), this.adjustForMinRange(), R(this.min) && R(this.max)) {
|
|
1754
|
+
if (!R(this.userMin) && R(y) && y < this.min && (this.min = L = y), !R(this.userMax) && R(f) && f > this.max && (this.max = I = f), e || this.axisPointRange || this.stacking?.usePercentage || b || (S = this.max - this.min) && (!q(L) && M && (this.min -= S * M), !q(I) && k && (this.max += S * k)), !R(this.userMin) && R(x) && (this.min = Math.max(this.min, x)), !R(this.userMax) && R(g) && (this.max = Math.min(this.max, g)), c && R(r) && R(s)) {
|
|
1755
1755
|
let O = p || 0;
|
|
1756
|
-
!
|
|
1756
|
+
!q(L) && this.min < O && r >= O ? this.min = h.minRange ? Math.min(O, this.max - u) : O : !q(I) && this.max > O && s <= O && (this.max = h.minRange ? Math.max(O, this.min + u) : O);
|
|
1757
1757
|
}
|
|
1758
|
-
!i.polar && this.min > this.max && (
|
|
1758
|
+
!i.polar && this.min > this.max && (q(h.min) ? this.max = this.min : q(h.max) && (this.min = this.max)), S = this.max - this.min;
|
|
1759
1759
|
}
|
|
1760
1760
|
if (this.min !== this.max && R(this.min) && R(this.max) ? b && !A && v === b.options.tickPixelInterval ? this.tickInterval = A = b.tickInterval : this.tickInterval = H(A, this.tickAmount ? S / Math.max(this.tickAmount - 1, 1) : void 0, e ? 1 : S * v / Math.max(this.len, v)) : this.tickInterval = 1, a && !t) {
|
|
1761
1761
|
let O = this.min !== this.old?.min || this.max !== this.old?.max;
|
|
1762
1762
|
this.series.forEach(function(E) {
|
|
1763
1763
|
E.forceCrop = E.forceCropping?.(), E.processData(O);
|
|
1764
|
-
}),
|
|
1764
|
+
}), et(this, "postProcessData", { hasExtremesChanged: O });
|
|
1765
1765
|
}
|
|
1766
|
-
this.setAxisTranslation(),
|
|
1766
|
+
this.setAxisTranslation(), et(this, "initialAxisTranslation"), this.pointRange && !A && (this.tickInterval = Math.max(this.pointRange, this.tickInterval));
|
|
1767
1767
|
let D = H(h.minTickInterval, o && !this.series.some((O) => !O.sorted) ? this.closestPointRange : 0);
|
|
1768
1768
|
!A && D && this.tickInterval < D && (this.tickInterval = D), o || n || A || (this.tickInterval = Eo(this, this.tickInterval)), this.tickAmount || (this.tickInterval = this.unsquish()), this.setTickPositions();
|
|
1769
1769
|
}
|
|
1770
1770
|
setTickPositions() {
|
|
1771
1771
|
let t = this.options, e = t.tickPositions, i = t.tickPositioner, s = this.getMinorTickInterval(), r = !this.isPanning, o = r && t.startOnTick, a = r && t.endOnTick, n = [], h;
|
|
1772
|
-
if (this.tickmarkOffset = this.categories && t.tickmarkPlacement === "between" && this.tickInterval === 1 ? 0.5 : 0, this.single = this.min === this.max &&
|
|
1772
|
+
if (this.tickmarkOffset = this.categories && t.tickmarkPlacement === "between" && this.tickInterval === 1 ? 0.5 : 0, this.single = this.min === this.max && q(this.min) && !this.tickAmount && (this.min % 1 == 0 || t.allowDecimals !== !1), e) n = e.slice();
|
|
1773
1773
|
else if (R(this.min) && R(this.max)) {
|
|
1774
1774
|
if (!this.ordinal?.positions && (this.max - this.min) / this.tickInterval > Math.max(2 * this.len, 200)) n = [this.min, this.max], Hs(19, !1, this.chart);
|
|
1775
1775
|
else if (this.dateTime) n = this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval, t.units), this.min, this.max, t.startOfWeek, this.ordinal?.positions, this.closestPointRange, !0);
|
|
@@ -1780,16 +1780,16 @@ function Dp() {
|
|
|
1780
1780
|
}
|
|
1781
1781
|
n.length > this.len && (n = [n[0], n[n.length - 1]])[0] === n[1] && (n.length = 1), i && (this.tickPositions = n, (h = i.apply(this, [this.min, this.max])) && (n = h));
|
|
1782
1782
|
}
|
|
1783
|
-
this.tickPositions = n, this.minorTickInterval = s === "auto" && this.tickInterval ? this.tickInterval / t.minorTicksPerMajor : s, this.paddedTicks = n.slice(0), this.trimTicks(n, o, a), !this.isLinked && R(this.min) && R(this.max) && (this.single && n.length < 2 && !this.categories && !this.series.some((c) => c.is("heatmap") && c.options.pointPlacement === "between") && (this.min -= 0.5, this.max += 0.5), e || h || this.adjustTickAmount()),
|
|
1783
|
+
this.tickPositions = n, this.minorTickInterval = s === "auto" && this.tickInterval ? this.tickInterval / t.minorTicksPerMajor : s, this.paddedTicks = n.slice(0), this.trimTicks(n, o, a), !this.isLinked && R(this.min) && R(this.max) && (this.single && n.length < 2 && !this.categories && !this.series.some((c) => c.is("heatmap") && c.options.pointPlacement === "between") && (this.min -= 0.5, this.max += 0.5), e || h || this.adjustTickAmount()), et(this, "afterSetTickPositions");
|
|
1784
1784
|
}
|
|
1785
1785
|
trimTicks(t, e, i) {
|
|
1786
1786
|
let s = t[0], r = t[t.length - 1], o = !this.isOrdinal && this.minPointOffset || 0;
|
|
1787
|
-
if (
|
|
1787
|
+
if (et(this, "trimTicks"), !this.isLinked || !this.grid) {
|
|
1788
1788
|
if (e && s !== -1 / 0) this.min = s;
|
|
1789
1789
|
else for (; this.min - o > t[0]; ) t.shift();
|
|
1790
1790
|
if (i) this.max = r;
|
|
1791
1791
|
else for (; this.max + o < t[t.length - 1]; ) t.pop();
|
|
1792
|
-
t.length === 0 &&
|
|
1792
|
+
t.length === 0 && q(s) && !this.options.tickPositions && t.push((r + s) / 2);
|
|
1793
1793
|
}
|
|
1794
1794
|
}
|
|
1795
1795
|
alignToOthers() {
|
|
@@ -1824,10 +1824,10 @@ function Dp() {
|
|
|
1824
1824
|
}
|
|
1825
1825
|
getTickAmount() {
|
|
1826
1826
|
let t = this.options, e = t.tickPixelInterval, i = t.tickAmount;
|
|
1827
|
-
|
|
1827
|
+
q(t.tickInterval) || i || !(this.len < e) || this.isRadial || this.logarithmic || !t.startOnTick || !t.endOnTick || (i = 2), !i && this.alignToOthers() && (i = Math.ceil(this.len / e) + 1), i < 4 && (this.finalTickAmt = i, i = 5), this.tickAmount = i;
|
|
1828
1828
|
}
|
|
1829
1829
|
adjustTickAmount() {
|
|
1830
|
-
let t = this, { finalTickAmt: e, max: i, min: s, options: r, tickPositions: o, tickAmount: a, thresholdAlignment: n } = t, h = o?.length, c = H(t.threshold, t.softThreshold ? 0 : null), d, p, u = t.tickInterval, g, x = () => o.push(
|
|
1830
|
+
let t = this, { finalTickAmt: e, max: i, min: s, options: r, tickPositions: o, tickAmount: a, thresholdAlignment: n } = t, h = o?.length, c = H(t.threshold, t.softThreshold ? 0 : null), d, p, u = t.tickInterval, g, x = () => o.push(Ct(o[o.length - 1] + u)), m = () => o.unshift(Ct(o[0] - u));
|
|
1831
1831
|
if (R(n) && (g = n < 0.5 ? Math.ceil(n * (a - 1)) : Math.floor(n * (a - 1)), r.reversed && (g = a - 1 - g)), t.hasData() && R(s) && R(i)) {
|
|
1832
1832
|
let f = () => {
|
|
1833
1833
|
t.transA *= (h - 1) / (a - 1), t.min = r.startOnTick ? o[0] : Math.min(s, o[0]), t.max = r.endOnTick ? o[o.length - 1] : Math.max(i, o[o.length - 1]);
|
|
@@ -1843,7 +1843,7 @@ function Dp() {
|
|
|
1843
1843
|
for (; o.length < a; ) o.length % 2 || s === c ? x() : m();
|
|
1844
1844
|
f();
|
|
1845
1845
|
}
|
|
1846
|
-
if (
|
|
1846
|
+
if (q(e)) {
|
|
1847
1847
|
for (p = d = o.length; p--; ) (e === 3 && p % 2 == 1 || e <= 2 && p > 0 && p < d - 1) && o.splice(p, 1);
|
|
1848
1848
|
t.finalTickAmt = void 0;
|
|
1849
1849
|
}
|
|
@@ -1855,13 +1855,13 @@ function Dp() {
|
|
|
1855
1855
|
i = i || o.isDirtyData || o.isDirty, s = s || o.xAxis?.isDirty || !1;
|
|
1856
1856
|
}), this.setAxisSize();
|
|
1857
1857
|
let r = this.len !== this.old?.len;
|
|
1858
|
-
r || i || s || this.isLinked || this.forceRedraw || this.userMin !== this.old?.userMin || this.userMax !== this.old?.userMax || this.alignToOthers() ? (e && t === "yAxis" && e.buildStacks(), this.forceRedraw = !1, this.userMinRange || (this.minRange = void 0), this.getSeriesExtremes(), this.setTickInterval(), e && t === "xAxis" && e.buildStacks(), this.isDirty || (this.isDirty = r || this.min !== this.old?.min || this.max !== this.old?.max)) : e && e.cleanStacks(), i && delete this.allExtremes,
|
|
1858
|
+
r || i || s || this.isLinked || this.forceRedraw || this.userMin !== this.old?.userMin || this.userMax !== this.old?.userMax || this.alignToOthers() ? (e && t === "yAxis" && e.buildStacks(), this.forceRedraw = !1, this.userMinRange || (this.minRange = void 0), this.getSeriesExtremes(), this.setTickInterval(), e && t === "xAxis" && e.buildStacks(), this.isDirty || (this.isDirty = r || this.min !== this.old?.min || this.max !== this.old?.max)) : e && e.cleanStacks(), i && delete this.allExtremes, et(this, "afterSetScale");
|
|
1859
1859
|
}
|
|
1860
1860
|
setExtremes(t, e, i = !0, s, r) {
|
|
1861
1861
|
let o = this.chart;
|
|
1862
1862
|
this.series.forEach((a) => {
|
|
1863
1863
|
delete a.kdTree;
|
|
1864
|
-
}), t = o.time.parse(t), e = o.time.parse(e),
|
|
1864
|
+
}), t = o.time.parse(t), e = o.time.parse(e), et(this, "setExtremes", r = Bi(r, { min: t, max: e }), (a) => {
|
|
1865
1865
|
this.userMin = a.min, this.userMax = a.max, this.eventArgs = a, i && o.redraw(s);
|
|
1866
1866
|
});
|
|
1867
1867
|
}
|
|
@@ -1871,7 +1871,7 @@ function Dp() {
|
|
|
1871
1871
|
}
|
|
1872
1872
|
getExtremes() {
|
|
1873
1873
|
let t = this.logarithmic;
|
|
1874
|
-
return { min: t ?
|
|
1874
|
+
return { min: t ? Ct(t.lin2log(this.min)) : this.min, max: t ? Ct(t.lin2log(this.max)) : this.max, dataMin: this.dataMin, dataMax: this.dataMax, userMin: this.userMin, userMax: this.userMax };
|
|
1875
1875
|
}
|
|
1876
1876
|
getThreshold(t) {
|
|
1877
1877
|
let e = this.logarithmic, i = e ? e.lin2log(this.min) : this.min, s = e ? e.lin2log(this.max) : this.max;
|
|
@@ -1879,7 +1879,7 @@ function Dp() {
|
|
|
1879
1879
|
}
|
|
1880
1880
|
autoLabelAlign(t) {
|
|
1881
1881
|
let e = (H(t, 0) - 90 * this.side + 720) % 360, i = { align: "center" };
|
|
1882
|
-
return
|
|
1882
|
+
return et(this, "autoLabelAlign", i, function(s) {
|
|
1883
1883
|
e > 15 && e < 165 ? s.align = "right" : e > 195 && e < 345 && (s.align = "left");
|
|
1884
1884
|
}), i.align;
|
|
1885
1885
|
}
|
|
@@ -1887,16 +1887,16 @@ function Dp() {
|
|
|
1887
1887
|
let e = this.options, i = H(e[t === "tick" ? "tickWidth" : "minorTickWidth"], t === "tick" && this.isXAxis && !this.categories ? 1 : 0), s = e[t === "tick" ? "tickLength" : "minorTickLength"], r;
|
|
1888
1888
|
i && s && (e[t + "Position"] === "inside" && (s = -s), r = [s, i]);
|
|
1889
1889
|
let o = { tickSize: r };
|
|
1890
|
-
return
|
|
1890
|
+
return et(this, "afterTickSize", o), o.tickSize;
|
|
1891
1891
|
}
|
|
1892
1892
|
labelMetrics() {
|
|
1893
1893
|
let t = this.chart.renderer, e = this.ticks, i = e[Object.keys(e)[0]] || {};
|
|
1894
1894
|
return this.chart.renderer.fontMetrics(i.label || i.movedLabel || t.box);
|
|
1895
1895
|
}
|
|
1896
1896
|
unsquish() {
|
|
1897
|
-
let t = this.options.labels, e = t.padding || 0, i = this.horiz, s = this.tickInterval, r = this.len / ((+!!this.categories + this.max - this.min) / s), o = t.rotation, a =
|
|
1897
|
+
let t = this.options.labels, e = t.padding || 0, i = this.horiz, s = this.tickInterval, r = this.len / ((+!!this.categories + this.max - this.min) / s), o = t.rotation, a = Ct(0.8 * this.labelMetrics().h), n = Math.max(this.max - this.min, 0), h = function(g) {
|
|
1898
1898
|
let x = (g + 2 * e) / (r || 1);
|
|
1899
|
-
return (x = x > 1 ? Math.ceil(x) : 1) * s > n && g !== 1 / 0 && r !== 1 / 0 && n && (x = Math.ceil(n / s)),
|
|
1899
|
+
return (x = x > 1 ? Math.ceil(x) : 1) * s > n && g !== 1 / 0 && r !== 1 / 0 && n && (x = Math.ceil(n / s)), Ct(x * s);
|
|
1900
1900
|
}, c = s, d, p = Number.MAX_VALUE, u;
|
|
1901
1901
|
if (i) {
|
|
1902
1902
|
if (!t.staggerLines && (R(o) ? u = [o] : r < t.autoRotationLimit && (u = t.autoRotation)), u) {
|
|
@@ -1932,7 +1932,7 @@ function Dp() {
|
|
|
1932
1932
|
hasData() {
|
|
1933
1933
|
return this.series.some(function(t) {
|
|
1934
1934
|
return t.hasData();
|
|
1935
|
-
}) || this.options.showEmpty &&
|
|
1935
|
+
}) || this.options.showEmpty && q(this.min) && q(this.max);
|
|
1936
1936
|
}
|
|
1937
1937
|
addTitle(t) {
|
|
1938
1938
|
let e, i = this.chart.renderer, s = this.horiz, r = this.opposite, o = this.options.title, a = this.chart.styledMode;
|
|
@@ -1940,7 +1940,7 @@ function Dp() {
|
|
|
1940
1940
|
}
|
|
1941
1941
|
generateTick(t) {
|
|
1942
1942
|
let e = this.ticks;
|
|
1943
|
-
e[t] ? e[t].addLabel() : e[t] = new
|
|
1943
|
+
e[t] ? e[t].addLabel() : e[t] = new De(this, t);
|
|
1944
1944
|
}
|
|
1945
1945
|
createGroups() {
|
|
1946
1946
|
let { axisParent: t, chart: e, coll: i, options: s } = this, r = e.renderer, o = (a, n, h) => r.g(a).attr({ zIndex: h }).addClass(`highcharts-${i.toLowerCase()}${n} ` + (this.isRadial ? `highcharts-radial-axis${n} ` : "") + (s.className || "")).add(t);
|
|
@@ -1954,13 +1954,13 @@ function Dp() {
|
|
|
1954
1954
|
k = Math.max(o[w].getLabelSize(), k);
|
|
1955
1955
|
}), t.staggerLines && (k *= t.staggerLines), t.labelOffset = k * (t.opposite ? -1 : 1)) : zi(o, function(w, A) {
|
|
1956
1956
|
w.destroy(), delete o[A];
|
|
1957
|
-
}), d?.text && d.enabled !== !1 && (t.addTitle(f), f && !u && d.reserveSpace !== !1 && (t.titleOffset = y = t.axisTitle.getBBox()[i ? "height" : "width"], v =
|
|
1957
|
+
}), d?.text && d.enabled !== !1 && (t.addTitle(f), f && !u && d.reserveSpace !== !1 && (t.titleOffset = y = t.axisTitle.getBBox()[i ? "height" : "width"], v = q(b = d.offset) ? 0 : H(d.margin, i ? 5 : 10))), t.renderLine(), t.offset = m * H(s.offset, g[r] ? g[r] + (s.margin || 0) : 0), t.tickRotCorr = t.tickRotCorr || { x: 0, y: 0 }, S = r === 0 ? -t.labelMetrics().h : r === 2 ? t.tickRotCorr.y : 0, M = Math.abs(k) + v, k && (M -= S, M += m * (i ? H(p.y, t.tickRotCorr.y + m * p.distance) : H(p.x, m * p.distance))), t.axisTitleMargin = H(b, M), t.getMaxLabelDimensions && (t.maxLabelDimensions = t.getMaxLabelDimensions(o, a)), n !== "colorAxis" && x) {
|
|
1958
1958
|
let w = this.tickSize("tick");
|
|
1959
1959
|
g[r] = Math.max(g[r], (t.axisTitleMargin || 0) + y + m * t.offset, M, a?.length && w ? w[0] + m * t.offset : 0);
|
|
1960
1960
|
let A = !t.axisLine || s.offset ? 0 : t.axisLine.strokeWidth() / 2;
|
|
1961
1961
|
x[h] = Math.max(x[h], A);
|
|
1962
1962
|
}
|
|
1963
|
-
|
|
1963
|
+
et(this, "afterGetOffset");
|
|
1964
1964
|
}
|
|
1965
1965
|
getLinePath(t) {
|
|
1966
1966
|
let e = this.chart, i = this.opposite, s = this.offset, r = this.horiz, o = this.left + (i ? this.width : 0) + s, a = e.chartHeight - this.bottom - (i ? this.height : 0) + s;
|
|
@@ -1971,15 +1971,15 @@ function Dp() {
|
|
|
1971
1971
|
}
|
|
1972
1972
|
getTitlePosition(t) {
|
|
1973
1973
|
let e = this.horiz, i = this.left, s = this.top, r = this.len, o = this.options.title, a = e ? i : s, n = this.opposite, h = this.offset, c = o.x, d = o.y, p = this.chart.renderer.fontMetrics(t), u = t ? Math.max(t.getBBox(!1, 0).height - p.h - 1, 0) : 0, g = { low: a + (e ? 0 : r), middle: a + r / 2, high: a + (e ? r : 0) }[o.align], x = (e ? s + this.height : i) + (e ? 1 : -1) * (n ? -1 : 1) * (this.axisTitleMargin || 0) + [-u, u, p.f, -u][this.side], m = { x: e ? g + c : x + (n ? this.width : 0) + h + c, y: e ? x + d - (n ? this.height : 0) + h : g + d };
|
|
1974
|
-
return
|
|
1974
|
+
return et(this, "afterGetTitlePosition", { titlePosition: m }), m;
|
|
1975
1975
|
}
|
|
1976
1976
|
renderMinorTick(t, e) {
|
|
1977
1977
|
let i = this.minorTicks;
|
|
1978
|
-
i[t] || (i[t] = new
|
|
1978
|
+
i[t] || (i[t] = new De(this, t, "minor")), e && i[t].isNew && i[t].render(null, !0), i[t].render(null, !1, 1);
|
|
1979
1979
|
}
|
|
1980
1980
|
renderTick(t, e, i) {
|
|
1981
1981
|
let s = this.isLinked, r = this.ticks;
|
|
1982
|
-
(!s || t >= this.min && t <= this.max || this.grid?.isColumn) && (r[t] || (r[t] = new
|
|
1982
|
+
(!s || t >= this.min && t <= this.max || this.grid?.isColumn) && (r[t] || (r[t] = new De(this, t)), i && r[t].isNew && r[t].render(e, !0, -1), r[t].render(e));
|
|
1983
1983
|
}
|
|
1984
1984
|
render() {
|
|
1985
1985
|
let t, e, i = this, s = i.chart, r = i.logarithmic, o = s.renderer, a = i.options, n = i.isLinked, h = i.tickPositions, c = i.axisTitle, d = i.ticks, p = i.minorTicks, u = i.alternateBands, g = a.stackLabels, x = a.alternateGridColor, m = a.crossing, f = i.tickmarkOffset, y = i.axisLine, b = i.showAxis, v = Jl(o.globalAnimation);
|
|
@@ -2000,7 +2000,7 @@ function Dp() {
|
|
|
2000
2000
|
i.renderMinorTick(M, k);
|
|
2001
2001
|
}), h.length && (h.forEach(function(M, S) {
|
|
2002
2002
|
i.renderTick(M, S, k);
|
|
2003
|
-
}), f && (i.min === 0 || i.single) && (d[-1] || (d[-1] = new
|
|
2003
|
+
}), f && (i.min === 0 || i.single) && (d[-1] || (d[-1] = new De(i, -1, null, !0)), d[-1].render(-1))), x && h.forEach(function(M, S) {
|
|
2004
2004
|
e = h[S + 1] !== void 0 ? h[S + 1] + f : i.max - f, S % 2 == 0 && M < i.max && e <= i.max + (s.polar ? -f : f) && (u[M] || (u[M] = new C.PlotLineOrBand(i, {})), t = M + f, u[M].options = { from: r ? r.lin2log(t) : t, to: r ? r.lin2log(e) : e, color: x, className: "highcharts-alternate-grid" }, u[M].render(), u[M].isActive = !0);
|
|
2005
2005
|
}), i._addedPlotLB || (i._addedPlotLB = !0, (a.plotLines || []).concat(a.plotBands || []).forEach(function(M) {
|
|
2006
2006
|
i.addPlotBandOrLine(M);
|
|
@@ -2014,7 +2014,7 @@ function Dp() {
|
|
|
2014
2014
|
let w = M.length;
|
|
2015
2015
|
for (; w--; ) k[M[w]] && !k[M[w]].isActive && (k[M[w]].destroy(), delete k[M[w]]);
|
|
2016
2016
|
}, k !== u && s.hasRendered && S ? S : 0);
|
|
2017
|
-
}), y && (y[y.isPlaced ? "animate" : "attr"]({ d: this.getLinePath(y.strokeWidth()) }), y.isPlaced = !0, y[b ? "show" : "hide"](b)), c && b && (c[c.isNew ? "attr" : "animate"](i.getTitlePosition(c)), c.isNew = !1), g?.enabled && i.stacking && i.stacking.renderStackTotals(), i.old = { len: i.len, max: i.max, min: i.min, transA: i.transA, userMax: i.userMax, userMin: i.userMin }, i.isDirty = !1,
|
|
2017
|
+
}), y && (y[y.isPlaced ? "animate" : "attr"]({ d: this.getLinePath(y.strokeWidth()) }), y.isPlaced = !0, y[b ? "show" : "hide"](b)), c && b && (c[c.isNew ? "attr" : "animate"](i.getTitlePosition(c)), c.isNew = !1), g?.enabled && i.stacking && i.stacking.renderStackTotals(), i.old = { len: i.len, max: i.max, min: i.min, transA: i.transA, userMax: i.userMax, userMin: i.userMin }, i.isDirty = !1, et(this, "afterRender");
|
|
2018
2018
|
}
|
|
2019
2019
|
redraw() {
|
|
2020
2020
|
this.visible && (this.render(), this.plotLinesAndBands.forEach(function(t) {
|
|
@@ -2024,11 +2024,11 @@ function Dp() {
|
|
|
2024
2024
|
});
|
|
2025
2025
|
}
|
|
2026
2026
|
getKeepProps() {
|
|
2027
|
-
return this.keepProps ||
|
|
2027
|
+
return this.keepProps || Be.keepProps;
|
|
2028
2028
|
}
|
|
2029
2029
|
destroy(t) {
|
|
2030
2030
|
let e = this, i = e.plotLinesAndBands, s = this.eventOptions;
|
|
2031
|
-
if (
|
|
2031
|
+
if (et(this, "destroy", { keepEvents: t }), t || ah(e), [e.ticks, e.minorTicks, e.alternateBands].forEach(function(r) {
|
|
2032
2032
|
sh(r);
|
|
2033
2033
|
}), i) {
|
|
2034
2034
|
let r = i.length;
|
|
@@ -2043,14 +2043,14 @@ function Dp() {
|
|
|
2043
2043
|
}
|
|
2044
2044
|
drawCrosshair(t, e) {
|
|
2045
2045
|
let i = this.crosshair, s = i?.snap ?? !0, r = this.chart, o, a, n, h = this.cross, c;
|
|
2046
|
-
if (
|
|
2047
|
-
if (s ?
|
|
2048
|
-
n = this.categories && !this.isRadial, h || (this.cross = h = r.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-" + (n ? "category " : "thin ") + (i.className || "")).attr({ zIndex: H(i.zIndex, 2) }).add(), !r.styledMode && (h.attr({ stroke: i.color || (n ?
|
|
2046
|
+
if (et(this, "drawCrosshair", { e: t, point: e }), t || (t = this.cross?.e), i && (q(e) || !s) !== !1) {
|
|
2047
|
+
if (s ? q(e) && (a = H(this.coll !== "colorAxis" ? e.crosshairPos : null, this.isXAxis ? e.plotX : this.len - e.plotY)) : a = t && (this.horiz ? t.chartX - this.pos : this.len - t.chartY + this.pos), q(a) && (c = { value: e && (this.isXAxis ? e.x : H(e.stackY, e.y)), translatedValue: a }, r.polar && Bi(c, { isCrosshair: !0, chartX: t?.chartX, chartY: t?.chartY, point: e }), o = this.getPlotLinePath(c) || null), !q(o)) return void this.hideCrosshair();
|
|
2048
|
+
n = this.categories && !this.isRadial, h || (this.cross = h = r.renderer.path().addClass("highcharts-crosshair highcharts-crosshair-" + (n ? "category " : "thin ") + (i.className || "")).attr({ zIndex: H(i.zIndex, 2) }).add(), !r.styledMode && (h.attr({ stroke: i.color || (n ? tt.parse("#ccd3ff").setOpacity(0.25).get() : "#cccccc"), "stroke-width": H(i.width, 1) }).css({ "pointer-events": "none" }), i.dashStyle && h.attr({ dashstyle: i.dashStyle }))), h.show().attr({ d: o }), n && !i.width && h.attr({ "stroke-width": this.transA }), this.cross.e = t;
|
|
2049
2049
|
} else this.hideCrosshair();
|
|
2050
|
-
|
|
2050
|
+
et(this, "afterDrawCrosshair", { e: t, point: e });
|
|
2051
2051
|
}
|
|
2052
2052
|
hideCrosshair() {
|
|
2053
|
-
this.cross && this.cross.hide(),
|
|
2053
|
+
this.cross && this.cross.hide(), et(this, "afterHideCrosshair");
|
|
2054
2054
|
}
|
|
2055
2055
|
update(t, e) {
|
|
2056
2056
|
let i = this.chart;
|
|
@@ -2068,7 +2068,7 @@ function Dp() {
|
|
|
2068
2068
|
this.update({ categories: t }, e);
|
|
2069
2069
|
}
|
|
2070
2070
|
}
|
|
2071
|
-
|
|
2071
|
+
Be.keepProps = ["coll", "extKey", "hcEvents", "len", "names", "series", "userMax", "userMin"];
|
|
2072
2072
|
let { addEvent: hh, getMagnitude: dh, normalizeTickInterval: ch, timeUnits: Wi } = B;
|
|
2073
2073
|
(function(l) {
|
|
2074
2074
|
function t() {
|
|
@@ -2101,8 +2101,8 @@ function Dp() {
|
|
|
2101
2101
|
}
|
|
2102
2102
|
}
|
|
2103
2103
|
l.Additions = i;
|
|
2104
|
-
})(
|
|
2105
|
-
let ph =
|
|
2104
|
+
})(Dt || (Dt = {}));
|
|
2105
|
+
let ph = Dt, { addEvent: Io, normalizeTickInterval: uh, pick: gh } = B;
|
|
2106
2106
|
(function(l) {
|
|
2107
2107
|
function t() {
|
|
2108
2108
|
this.type !== "logarithmic" ? this.logarithmic = void 0 : this.logarithmic ?? (this.logarithmic = new i(this));
|
|
@@ -2195,7 +2195,7 @@ function Dp() {
|
|
|
2195
2195
|
return d.addPlotBand || (t = h, xh(d, { addPlotBand: e, addPlotLine: s, addPlotBandOrLine: i, getPlotBandPath: r, removePlotBand: o, removePlotLine: n, removePlotBandOrLine: a })), c;
|
|
2196
2196
|
};
|
|
2197
2197
|
})(Ge || (Ge = {}));
|
|
2198
|
-
let yh = Ge, { addEvent: bh, arrayMax: Bo, arrayMin: No, defined:
|
|
2198
|
+
let yh = Ge, { addEvent: bh, arrayMax: Bo, arrayMin: No, defined: Yt, destroyObjectProperties: vh, erase: kh, fireEvent: wh, merge: zo, objectEach: Mh, pick: Sh } = B;
|
|
2199
2199
|
class Xi {
|
|
2200
2200
|
static compose(t, e) {
|
|
2201
2201
|
return bh(t, "afterInit", function() {
|
|
@@ -2211,32 +2211,32 @@ function Dp() {
|
|
|
2211
2211
|
}
|
|
2212
2212
|
render() {
|
|
2213
2213
|
wh(this, "render");
|
|
2214
|
-
let { axis: t, options: e } = this, { horiz: i, logarithmic: s } = t, { color: r, events: o, zIndex: a = 0 } = e, { renderer: n, time: h } = t.chart, c = {}, d = h.parse(e.to), p = h.parse(e.from), u = h.parse(e.value), g = e.borderWidth, x = e.label, { label: m, svgElem: f } = this, y = [], b, v =
|
|
2215
|
-
if (!t.chart.styledMode && (k ? (S.stroke = r || "#999999", S["stroke-width"] = Sh(e.width, 1), e.dashStyle && (S.dashstyle = e.dashStyle)) : v && (S.fill = r || "#e6e9ff", g && (S.stroke = e.borderColor, S["stroke-width"] = g))), c.zIndex = a, w += "-" + a, (b = t.plotLinesAndBandsGroups[w]) || (t.plotLinesAndBandsGroups[w] = b = n.g("plot-" + w).attr(c).add()), f || (this.svgElem = f = n.path().attr(S).add(b)),
|
|
2214
|
+
let { axis: t, options: e } = this, { horiz: i, logarithmic: s } = t, { color: r, events: o, zIndex: a = 0 } = e, { renderer: n, time: h } = t.chart, c = {}, d = h.parse(e.to), p = h.parse(e.from), u = h.parse(e.value), g = e.borderWidth, x = e.label, { label: m, svgElem: f } = this, y = [], b, v = Yt(p) && Yt(d), k = Yt(u), M = !f, S = { class: "highcharts-plot-" + (v ? "band " : "line ") + (e.className || "") }, w = v ? "bands" : "lines";
|
|
2215
|
+
if (!t.chart.styledMode && (k ? (S.stroke = r || "#999999", S["stroke-width"] = Sh(e.width, 1), e.dashStyle && (S.dashstyle = e.dashStyle)) : v && (S.fill = r || "#e6e9ff", g && (S.stroke = e.borderColor, S["stroke-width"] = g))), c.zIndex = a, w += "-" + a, (b = t.plotLinesAndBandsGroups[w]) || (t.plotLinesAndBandsGroups[w] = b = n.g("plot-" + w).attr(c).add()), f || (this.svgElem = f = n.path().attr(S).add(b)), Yt(u)) y = t.getPlotLinePath({ value: s?.log2lin(u) ?? u, lineWidth: f.strokeWidth(), acrossPanes: e.acrossPanes });
|
|
2216
2216
|
else {
|
|
2217
|
-
if (!(
|
|
2217
|
+
if (!(Yt(p) && Yt(d))) return;
|
|
2218
2218
|
y = t.getPlotBandPath(s?.log2lin(p) ?? p, s?.log2lin(d) ?? d, e);
|
|
2219
2219
|
}
|
|
2220
2220
|
return !this.eventsAdded && o && (Mh(o, (A, P) => {
|
|
2221
2221
|
f?.on(P, (T) => {
|
|
2222
2222
|
o[P].apply(this, [T]);
|
|
2223
2223
|
});
|
|
2224
|
-
}), this.eventsAdded = !0), (M || !f.d) && y?.length ? f.attr({ d: y }) : f && (y ? (f.show(), f.animate({ d: y })) : f.d && (f.hide(), m && (this.label = m = m.destroy()))), x && (
|
|
2224
|
+
}), this.eventsAdded = !0), (M || !f.d) && y?.length ? f.attr({ d: y }) : f && (y ? (f.show(), f.animate({ d: y })) : f.d && (f.hide(), m && (this.label = m = m.destroy()))), x && (Yt(x.text) || Yt(x.formatter)) && y?.length && t.width > 0 && t.height > 0 && !y.isFlat ? (x = zo({ align: i && v ? "center" : void 0, x: i ? !v && 4 : 10, verticalAlign: !i && v ? "middle" : void 0, y: i ? v ? 16 : 10 : v ? 6 : -4, rotation: i && !v ? 90 : 0, ...v ? { inside: !0 } : {} }, x), this.renderLabel(x, y, v, a)) : m && m.hide(), this;
|
|
2225
2225
|
}
|
|
2226
2226
|
renderLabel(t, e, i, s) {
|
|
2227
2227
|
let r = this.axis, o = r.chart.renderer, a = t.inside, n = this.label;
|
|
2228
2228
|
n || (this.label = n = o.text(this.getLabelText(t), 0, 0, t.useHTML).attr({ align: t.textAlign || t.align, rotation: t.rotation, class: "highcharts-plot-" + (i ? "band" : "line") + "-label " + (t.className || ""), zIndex: s }), r.chart.styledMode || n.css(zo({ color: r.chart.options.title?.style?.color, fontSize: "0.8em", textOverflow: i && !a ? "" : "ellipsis" }, t.style)), n.add());
|
|
2229
2229
|
let h = e.xBounds || [e[0][1], e[1][1], i ? e[2][1] : e[0][1]], c = e.yBounds || [e[0][2], e[1][2], i ? e[2][2] : e[0][2]], d = No(h), p = No(c), u = Bo(h) - d;
|
|
2230
|
-
n.align(t, !1, { x: d, y: p, width: u, height: Bo(c) - p }), n.alignAttr.y -= o.fontMetrics(n).b, (!n.alignValue || n.alignValue === "left" ||
|
|
2230
|
+
n.align(t, !1, { x: d, y: p, width: u, height: Bo(c) - p }), n.alignAttr.y -= o.fontMetrics(n).b, (!n.alignValue || n.alignValue === "left" || Yt(a)) && n.css({ width: (t.style?.width || (i && a ? u : n.rotation === 90 ? r.height - (n.alignAttr.y - r.top) : (t.clip ? r.width : r.chart.chartWidth) - (n.alignAttr.x - r.left))) + "px" }), n.show(!0);
|
|
2231
2231
|
}
|
|
2232
2232
|
getLabelText(t) {
|
|
2233
|
-
return
|
|
2233
|
+
return Yt(t.formatter) ? t.formatter.call(this) : t.text;
|
|
2234
2234
|
}
|
|
2235
2235
|
destroy() {
|
|
2236
2236
|
kh(this.axis.plotLinesAndBands, this), delete this.axis, vh(this);
|
|
2237
2237
|
}
|
|
2238
2238
|
}
|
|
2239
|
-
let { animObject: Th } =
|
|
2239
|
+
let { animObject: Th } = ft, { format: Ro } = Et, { composed: Ah, dateFormats: Ch, doc: Wo, isSafari: Ph } = C, { distribute: Oh } = ki, { addEvent: Lh, clamp: Ne, css: Xo, discardElement: Eh, extend: Ih, fireEvent: Fs, getAlignFactor: Ho, isArray: Dh, isNumber: Bh, isObject: Nh, isString: Gs, merge: zh, pick: ze, pushUnique: Rh, splat: Ys, syncTimeout: Wh } = B;
|
|
2240
2240
|
class js {
|
|
2241
2241
|
constructor(t, e, i) {
|
|
2242
2242
|
this.allowShared = !0, this.crosshairs = [], this.distance = 0, this.isHidden = !0, this.isSticky = !1, this.options = {}, this.outside = !1, this.chart = t, this.init(t, e), this.pointer = i;
|
|
@@ -2276,7 +2276,7 @@ function Dp() {
|
|
|
2276
2276
|
}
|
|
2277
2277
|
getClassName(t, e, i) {
|
|
2278
2278
|
let s = this.options, r = t.series, o = r.options;
|
|
2279
|
-
return [s.className, "highcharts-label", i && "highcharts-tooltip-header", e ? "highcharts-tooltip-box" : "highcharts-tooltip", !i && "highcharts-color-" +
|
|
2279
|
+
return [s.className, "highcharts-label", i && "highcharts-tooltip-header", e ? "highcharts-tooltip-box" : "highcharts-tooltip", !i && "highcharts-color-" + ze(t.colorIndex, r.colorIndex), o?.className].filter(Gs).join(" ");
|
|
2280
2280
|
}
|
|
2281
2281
|
getLabel({ anchorX: t, anchorY: e } = { anchorX: 0, anchorY: 0 }) {
|
|
2282
2282
|
let i = this, s = this.chart.styledMode, r = this.options, o = this.split && this.allowShared, a = this.container, n = this.chart.renderer;
|
|
@@ -2311,18 +2311,18 @@ function Dp() {
|
|
|
2311
2311
|
return [O, E ? f : m, E ? t : e].concat(o ? [E ? b(t) : v(e), E ? y.left - s + b(p + h) : y.top - s + v(u + c), 0, E ? f : m] : [E ? t : e, E ? p + h : u + c, E ? h : c, E ? h + r.plotWidth : c + r.plotHeight]);
|
|
2312
2312
|
}, M = k("y"), S = k("x"), w, A = !!i.negative;
|
|
2313
2313
|
!d && r.hoverSeries?.yAxis?.reversed && (A = !A);
|
|
2314
|
-
let P = !this.followPointer &&
|
|
2315
|
-
let W = o ? O === "y" ? v(s) : b(s) : s,
|
|
2316
|
-
if (P &&
|
|
2317
|
-
else if (!P &&
|
|
2318
|
-
else if (
|
|
2314
|
+
let P = !this.followPointer && ze(i.ttBelow, !d && !n === A), T = function(O, E, N, K, F, G, X) {
|
|
2315
|
+
let W = o ? O === "y" ? v(s) : b(s) : s, U = (N - K) / 2, j = K < F - s, V = F + s + K < E, $ = F - W - N + U, Z = F + W - U;
|
|
2316
|
+
if (P && V) g[O] = Z;
|
|
2317
|
+
else if (!P && j) g[O] = $;
|
|
2318
|
+
else if (j) g[O] = Math.min(X - K, $ - x < 0 ? $ : $ - x);
|
|
2319
2319
|
else {
|
|
2320
|
-
if (
|
|
2321
|
-
g[O] = Math.max(G,
|
|
2320
|
+
if (!V) return g[O] = 0, !1;
|
|
2321
|
+
g[O] = Math.max(G, Z + x + N > E ? Z : Z + x);
|
|
2322
2322
|
}
|
|
2323
|
-
}, L = function(O, E, N,
|
|
2323
|
+
}, L = function(O, E, N, K, F) {
|
|
2324
2324
|
if (F < s || F > E - s) return !1;
|
|
2325
|
-
F < N / 2 ? g[O] = 1 : F > E -
|
|
2325
|
+
F < N / 2 ? g[O] = 1 : F > E - K / 2 ? g[O] = E - K - 2 : g[O] = F - N / 2;
|
|
2326
2326
|
}, I = function(O) {
|
|
2327
2327
|
[M, S] = [S, M], w = O;
|
|
2328
2328
|
}, D = () => {
|
|
@@ -2336,7 +2336,7 @@ function Dp() {
|
|
|
2336
2336
|
}
|
|
2337
2337
|
hide(t) {
|
|
2338
2338
|
let e = this;
|
|
2339
|
-
B.clearTimeout(this.hideTimer), t =
|
|
2339
|
+
B.clearTimeout(this.hideTimer), t = ze(t, this.options.hideDelay), this.isHidden || (this.hideTimer = Wh(function() {
|
|
2340
2340
|
let i = e.getLabel();
|
|
2341
2341
|
e.getLabel().animate({ opacity: 0 }, { duration: t && 150, complete: () => {
|
|
2342
2342
|
i.hide(), e.container && e.container.remove();
|
|
@@ -2344,7 +2344,7 @@ function Dp() {
|
|
|
2344
2344
|
}, t));
|
|
2345
2345
|
}
|
|
2346
2346
|
init(t, e) {
|
|
2347
|
-
this.chart = t, this.options = e, this.crosshairs = [], this.isHidden = !0, this.split = e.split && !t.inverted && !t.polar, this.shared = e.shared || this.split, this.outside =
|
|
2347
|
+
this.chart = t, this.options = e, this.crosshairs = [], this.isHidden = !0, this.split = e.split && !t.inverted && !t.polar, this.shared = e.shared || this.split, this.outside = ze(e.outside, !!(t.scrollablePixelsX || t.scrollablePixelsY));
|
|
2348
2348
|
}
|
|
2349
2349
|
shouldStickOnContact(t) {
|
|
2350
2350
|
return !!(!this.followPointer && this.options.stickOnContact && (!t || this.pointer.inClass(t.target, "highcharts-tooltip")));
|
|
@@ -2362,7 +2362,7 @@ function Dp() {
|
|
|
2362
2362
|
let m = Gs(h) ? Ro(h, n, i) : c.call(n, this);
|
|
2363
2363
|
n.points = void 0;
|
|
2364
2364
|
let f = n.series;
|
|
2365
|
-
if (this.distance =
|
|
2365
|
+
if (this.distance = ze(f.tooltipOptions.distance, 16), m === !1) this.hide();
|
|
2366
2366
|
else {
|
|
2367
2367
|
if (this.split && this.allowShared) this.renderSplit(m, a);
|
|
2368
2368
|
else {
|
|
@@ -2370,7 +2370,7 @@ function Dp() {
|
|
|
2370
2370
|
if (e && r.isDirectTouch && (y = e.chartX - i.plotLeft, b = e.chartY - i.plotTop), !(i.polar || f.options.clip === !1 || a.some((v) => r.isDirectTouch || v.series.shouldShowTooltip(y, b)))) return void this.hide();
|
|
2371
2371
|
{
|
|
2372
2372
|
let v = this.getLabel(p && this.tt || {});
|
|
2373
|
-
(!s.style.width || d) && v.css({ width: (this.outside ? this.getPlayingField() : i.spacingBox).width + "px" }), v.attr({ class: this.getClassName(n), text: m && m.join ? m.join("") : m }), this.outside && v.attr({ x:
|
|
2373
|
+
(!s.style.width || d) && v.css({ width: (this.outside ? this.getPlayingField() : i.spacingBox).width + "px" }), v.attr({ class: this.getClassName(n), text: m && m.join ? m.join("") : m }), this.outside && v.attr({ x: Ne(v.x || 0, 0, this.getPlayingField().width - (v.width || 0) - 1) }), d || v.attr({ stroke: s.borderColor || n.color || f.color || "#666666" }), this.updatePosition({ plotX: g, plotY: x, negative: n.negative, ttBelow: n.ttBelow, series: f, h: u[2] || 0 });
|
|
2374
2374
|
}
|
|
2375
2375
|
}
|
|
2376
2376
|
this.isHidden && this.label && this.label.attr({ opacity: 1 }).show(), this.isHidden = !1;
|
|
@@ -2378,40 +2378,40 @@ function Dp() {
|
|
|
2378
2378
|
Fs(this, "refresh");
|
|
2379
2379
|
}
|
|
2380
2380
|
renderSplit(t, e) {
|
|
2381
|
-
let i = this, { chart: s, chart: { chartWidth: r, plotHeight: o, plotLeft: a, plotTop: n, scrollablePixelsY: h = 0, scrollablePixelsX: c, styledMode: d }, distance: p, options: u, options: { fixed: g, position: x, positioner: m }, pointer: f } = i, { scrollLeft: y = 0, scrollTop: b = 0 } = s.scrollablePlotArea?.scrollingContainer || {}, v = i.outside && typeof c != "number" ? Wo.documentElement.getBoundingClientRect() : { left: y, right: y + r }, k = i.getLabel(), M = this.renderer || s.renderer, S = !!s.xAxis[0]?.opposite, { left: w, top: A } = f.getChartPosition(), P = m || g, T = n + b, L = 0, I = o - h, D = function(G, X, W,
|
|
2382
|
-
let
|
|
2383
|
-
if (W.isHeader)
|
|
2381
|
+
let i = this, { chart: s, chart: { chartWidth: r, plotHeight: o, plotLeft: a, plotTop: n, scrollablePixelsY: h = 0, scrollablePixelsX: c, styledMode: d }, distance: p, options: u, options: { fixed: g, position: x, positioner: m }, pointer: f } = i, { scrollLeft: y = 0, scrollTop: b = 0 } = s.scrollablePlotArea?.scrollingContainer || {}, v = i.outside && typeof c != "number" ? Wo.documentElement.getBoundingClientRect() : { left: y, right: y + r }, k = i.getLabel(), M = this.renderer || s.renderer, S = !!s.xAxis[0]?.opposite, { left: w, top: A } = f.getChartPosition(), P = m || g, T = n + b, L = 0, I = o - h, D = function(G, X, W, U = [0, 0], j = !0) {
|
|
2382
|
+
let V, $;
|
|
2383
|
+
if (W.isHeader) $ = S ? 0 : I, V = Ne(U[0] - G / 2, v.left, v.right - G - (i.outside ? w : 0));
|
|
2384
2384
|
else if (g && W) {
|
|
2385
|
-
let
|
|
2386
|
-
|
|
2387
|
-
} else
|
|
2388
|
-
return { x:
|
|
2385
|
+
let Z = i.getFixedPosition(G, X, W);
|
|
2386
|
+
V = Z.x, $ = Z.y - T;
|
|
2387
|
+
} else $ = U[1] - T, V = Ne(V = j ? U[0] - G - p : U[0] + p, j ? V : v.left, v.right);
|
|
2388
|
+
return { x: V, y: $ };
|
|
2389
2389
|
};
|
|
2390
2390
|
Gs(t) && (t = [!1, t]);
|
|
2391
2391
|
let O = t.slice(0, e.length + 1).reduce(function(G, X, W) {
|
|
2392
2392
|
if (X !== !1 && X !== "") {
|
|
2393
|
-
let
|
|
2394
|
-
let
|
|
2395
|
-
if (!
|
|
2396
|
-
let
|
|
2397
|
-
d || (
|
|
2393
|
+
let U = e[W - 1] || { isHeader: !0, plotX: e[0].plotX, plotY: o, series: {} }, j = U.isHeader, V = j ? i : U.series, $ = V.tt = (function(Rt, mt, le) {
|
|
2394
|
+
let Pt = Rt, { isHeader: ke, series: gi } = mt, Wt = gi.tooltipOptions || u;
|
|
2395
|
+
if (!Pt) {
|
|
2396
|
+
let He = { padding: Wt.padding, r: Wt.borderRadius };
|
|
2397
|
+
d || (He.fill = Wt.backgroundColor, He["stroke-width"] = Wt.borderWidth ?? (g && !ke ? 0 : 1)), Pt = M.label("", 0, 0, Wt[ke ? "headerShape" : "shape"] || (g && !ke ? "rect" : "callout"), void 0, void 0, Wt.useHTML).addClass(i.getClassName(mt, !0, ke)).attr(He).add(k);
|
|
2398
2398
|
}
|
|
2399
|
-
return
|
|
2400
|
-
})(
|
|
2401
|
-
|
|
2402
|
-
let { anchorX:
|
|
2403
|
-
let
|
|
2404
|
-
if (
|
|
2399
|
+
return Pt.isActive = !0, Pt.attr({ text: le }), d || Pt.css(Wt.style).attr({ stroke: Wt.borderColor || mt.color || gi.color || "#333333" }), Pt;
|
|
2400
|
+
})(V.tt, U, X.toString()), Z = $.getBBox(), kt = Z.width + $.strokeWidth();
|
|
2401
|
+
j && (L = Z.height, I += L, S && (T -= L));
|
|
2402
|
+
let { anchorX: wt, anchorY: Mt } = (function(Rt) {
|
|
2403
|
+
let mt, le, { isHeader: Pt, plotX: ke = 0, plotY: gi = 0, series: Wt } = Rt;
|
|
2404
|
+
if (Pt) mt = Math.max(a + ke, a), le = n + o / 2;
|
|
2405
2405
|
else {
|
|
2406
|
-
let { xAxis:
|
|
2407
|
-
|
|
2406
|
+
let { xAxis: He, yAxis: sn } = Wt;
|
|
2407
|
+
mt = He.pos + Ne(ke, -p, He.len + p), Wt.shouldShowTooltip(0, sn.pos - n + gi, { ignoreX: !0 }) && (le = sn.pos + gi);
|
|
2408
2408
|
}
|
|
2409
|
-
return { anchorX:
|
|
2410
|
-
})(
|
|
2411
|
-
if (typeof
|
|
2412
|
-
let
|
|
2413
|
-
G.push({ align: P ? 0 : void 0, anchorX:
|
|
2414
|
-
} else
|
|
2409
|
+
return { anchorX: mt = Ne(mt, v.left - p, v.right + p), anchorY: le };
|
|
2410
|
+
})(U);
|
|
2411
|
+
if (typeof Mt == "number") {
|
|
2412
|
+
let Rt = Z.height + 1, mt = (m || D).call(i, kt, Rt, U, [wt, Mt]);
|
|
2413
|
+
G.push({ align: P ? 0 : void 0, anchorX: wt, anchorY: Mt, boxWidth: kt, point: U, rank: ze(mt.rank, +!!j), size: Rt, target: mt.y, tt: $, x: mt.x });
|
|
2414
|
+
} else $.isActive = !1;
|
|
2415
2415
|
}
|
|
2416
2416
|
return G;
|
|
2417
2417
|
}, []);
|
|
@@ -2424,20 +2424,20 @@ function Dp() {
|
|
|
2424
2424
|
})), i.cleanSplit(), Oh(O, I);
|
|
2425
2425
|
let E = { left: w, right: w };
|
|
2426
2426
|
O.forEach(function(G) {
|
|
2427
|
-
let { x: X, boxWidth: W, isHeader:
|
|
2428
|
-
!
|
|
2427
|
+
let { x: X, boxWidth: W, isHeader: U } = G;
|
|
2428
|
+
!U && (i.outside && w + X < E.left && (E.left = w + X), !U && i.outside && E.left + W > E.right && (E.right = w + X));
|
|
2429
2429
|
}), O.forEach(function(G) {
|
|
2430
|
-
let { x: X, anchorX: W, anchorY:
|
|
2430
|
+
let { x: X, anchorX: W, anchorY: U, pos: j, point: { isHeader: V } } = G, $ = { visibility: j === void 0 ? "hidden" : "inherit", x: X, y: (j || 0) + T + (g && x.y || 0), anchorX: W, anchorY: U };
|
|
2431
2431
|
if (i.outside && X < W) {
|
|
2432
|
-
let
|
|
2433
|
-
|
|
2432
|
+
let Z = w - E.left;
|
|
2433
|
+
Z > 0 && (V || ($.x = X + Z, $.anchorX = W + Z), V && ($.x = (E.right - E.left) / 2, $.anchorX = W + Z));
|
|
2434
2434
|
}
|
|
2435
|
-
G.tt.attr(
|
|
2435
|
+
G.tt.attr($);
|
|
2436
2436
|
});
|
|
2437
|
-
let { container: N, outside:
|
|
2438
|
-
if (
|
|
2439
|
-
let { width: G, height: X, x: W, y:
|
|
2440
|
-
F.setSize(G + W, X +
|
|
2437
|
+
let { container: N, outside: K, renderer: F } = i;
|
|
2438
|
+
if (K && N && F) {
|
|
2439
|
+
let { width: G, height: X, x: W, y: U } = k.getBBox();
|
|
2440
|
+
F.setSize(G + W, X + U, !1), N.style.left = E.left + "px", N.style.top = A + "px";
|
|
2441
2441
|
}
|
|
2442
2442
|
Ph && k.attr({ opacity: k.opacity === 1 ? 0.999 : 1 });
|
|
2443
2443
|
}
|
|
@@ -2479,7 +2479,7 @@ function Dp() {
|
|
|
2479
2479
|
let { scrollLeft: k = 0, scrollTop: M = 0 } = e.scrollablePlotArea?.scrollingContainer || {};
|
|
2480
2480
|
m.x += k + p - s, m.y += M + u - s;
|
|
2481
2481
|
}
|
|
2482
|
-
v = (r.borderWidth || 0) + 2 * s + 2, a.setSize(
|
|
2482
|
+
v = (r.borderWidth || 0) + 2 * s + 2, a.setSize(Ne(h + v, 0, f.documentElement.clientWidth) - 1, n + v, !1), (g !== 1 || x !== 1) && (Xo(i, { transform: `scale(${g}, ${x})` }), y *= g, b *= x), y += p - m.x, b += u - m.y;
|
|
2483
2483
|
}
|
|
2484
2484
|
this.move(Math.round(m.x), Math.round(m.y || 0), y, b);
|
|
2485
2485
|
}
|
|
@@ -2492,7 +2492,7 @@ function Dp() {
|
|
|
2492
2492
|
});
|
|
2493
2493
|
};
|
|
2494
2494
|
})(js || (js = {}));
|
|
2495
|
-
let Fo = js, { animObject: Xh } =
|
|
2495
|
+
let Fo = js, { animObject: Xh } = ft, { defaultOptions: Hh } = Lt, { format: Fh } = Et, { addEvent: Gh, crisp: Yh, erase: jh, extend: Hi, fireEvent: Us, getNestedProperty: Uh, isArray: Vh, isFunction: $h, isNumber: Qt, isObject: Fi, merge: Go, pick: te, syncTimeout: Zh, removeEvent: Yo, uniqueKey: qh } = B;
|
|
2496
2496
|
class ii {
|
|
2497
2497
|
animateBeforeDestroy() {
|
|
2498
2498
|
let t = this, e = { x: t.startXPos, opacity: 0 }, i = t.getGraphicalProps();
|
|
@@ -2506,7 +2506,7 @@ function Dp() {
|
|
|
2506
2506
|
}
|
|
2507
2507
|
applyOptions(t, e) {
|
|
2508
2508
|
let i = this.series, s = i.options.pointValKey || i.pointValKey;
|
|
2509
|
-
return Hi(this, t = ii.prototype.optionsToObject.call(this, t)), this.options = this.options ? Hi(this.options, t) : t, t.group && delete this.group, t.dataLabels && delete this.dataLabels, s && (this.y = ii.prototype.getNestedProperty.call(this, s)), this.selected && (this.state = "select"), "name" in this && e === void 0 && i.xAxis && i.xAxis.hasNames && (this.x = i.xAxis.nameToX(this)), this.x === void 0 && i ? this.x = e ?? i.autoIncrement() :
|
|
2509
|
+
return Hi(this, t = ii.prototype.optionsToObject.call(this, t)), this.options = this.options ? Hi(this.options, t) : t, t.group && delete this.group, t.dataLabels && delete this.dataLabels, s && (this.y = ii.prototype.getNestedProperty.call(this, s)), this.selected && (this.state = "select"), "name" in this && e === void 0 && i.xAxis && i.xAxis.hasNames && (this.x = i.xAxis.nameToX(this)), this.x === void 0 && i ? this.x = e ?? i.autoIncrement() : Qt(t.x) && i.options.relativeXValue ? this.x = i.autoIncrement(t.x) : typeof this.x == "string" && (e ?? (e = i.chart.time.parse(this.x)), Qt(e) && (this.x = e)), this.isNull = this.isValid && !this.isValid(), this.formatPrefix = this.isNull ? "null" : "point", this;
|
|
2510
2510
|
}
|
|
2511
2511
|
destroy() {
|
|
2512
2512
|
if (!this.destroyed) {
|
|
@@ -2559,11 +2559,11 @@ function Dp() {
|
|
|
2559
2559
|
this.formatPrefix = "point", this.visible = !0, this.point = this, this.series = t, this.applyOptions(e, i), this.id ?? (this.id = qh()), this.resolveColor(), this.dataLabelOnNull ?? (this.dataLabelOnNull = t.options.nullInteraction), t.chart.pointCount++, Us(this, "afterInit");
|
|
2560
2560
|
}
|
|
2561
2561
|
isValid() {
|
|
2562
|
-
return (
|
|
2562
|
+
return (Qt(this.x) || this.x instanceof Date) && Qt(this.y);
|
|
2563
2563
|
}
|
|
2564
2564
|
optionsToObject(t) {
|
|
2565
2565
|
let e = this.series, i = e.options.keys, s = i || e.pointArrayMap || ["y"], r = s.length, o = {}, a, n = 0, h = 0;
|
|
2566
|
-
if (
|
|
2566
|
+
if (Qt(t) || t === null) o[s[0]] = t;
|
|
2567
2567
|
else if (Vh(t)) for (!i && t.length > r && ((a = typeof t[0]) == "string" ? e.xAxis?.dateTime ? o.x = e.chart.time.parse(t[0]) : o.name = t[0] : a === "number" && (o.x = t[0]), n++); h < r; ) i && t[n] === void 0 || (s[h].indexOf(".") > 0 ? ii.prototype.setNestedProperty(o, t[n], s[h]) : o[s[h]] = t[n]), n++, h++;
|
|
2568
2568
|
else typeof t == "object" && (o = t, t.dataLabels && (e.hasDataLabels = () => !0), t.marker && (e._hasPointMarkers = !0));
|
|
2569
2569
|
return o;
|
|
@@ -2571,12 +2571,12 @@ function Dp() {
|
|
|
2571
2571
|
pos(t, e = this.plotY) {
|
|
2572
2572
|
if (!this.destroyed) {
|
|
2573
2573
|
let { plotX: i, series: s } = this, { chart: r, xAxis: o, yAxis: a } = s, n = 0, h = 0;
|
|
2574
|
-
if (
|
|
2574
|
+
if (Qt(i) && Qt(e)) return t && (n = o ? o.pos : r.plotLeft, h = a ? a.pos : r.plotTop), r.inverted && o && a ? [a.len - e + h, o.len - i + n] : [i + n, e + h];
|
|
2575
2575
|
}
|
|
2576
2576
|
}
|
|
2577
2577
|
resolveColor() {
|
|
2578
2578
|
let t = this.series, e = t.chart.options.chart, i = t.chart.styledMode, s, r, o = e.colorCount, a;
|
|
2579
|
-
delete this.nonZonedColor, t.options.colorByPoint ? (i || (s = (r = t.options.colors || t.chart.options.colors)[t.colorCounter], o = r.length), a = t.colorCounter, t.colorCounter++, t.colorCounter === o && (t.colorCounter = 0)) : (i || (s = t.color), a = t.colorIndex), this.colorIndex =
|
|
2579
|
+
delete this.nonZonedColor, t.options.colorByPoint ? (i || (s = (r = t.options.colors || t.chart.options.colors)[t.colorCounter], o = r.length), a = t.colorCounter, t.colorCounter++, t.colorCounter === o && (t.colorCounter = 0)) : (i || (s = t.color), a = t.colorIndex), this.colorIndex = te(this.options.colorIndex, a), this.color = te(this.options.color, s);
|
|
2580
2580
|
}
|
|
2581
2581
|
setNestedProperty(t, e, i) {
|
|
2582
2582
|
return i.split(".").reduce(function(s, r, o, a) {
|
|
@@ -2601,16 +2601,16 @@ function Dp() {
|
|
|
2601
2601
|
n && u && (o.graphic = n.destroy(), delete o.hasMockGraphic), Fi(t, !0) && (n?.element && t && t.marker && t.marker.symbol !== void 0 && (o.graphic = n.destroy()), t?.dataLabels && o.dataLabel && (o.dataLabel = o.dataLabel.destroy())), r = o.index;
|
|
2602
2602
|
let g = {};
|
|
2603
2603
|
for (let x of a.dataColumnKeys()) g[x] = o[x];
|
|
2604
|
-
a.dataTable.setRow(g, r), c.data[r] = Fi(c.data[r], !0) || Fi(t, !0) ? o.options :
|
|
2604
|
+
a.dataTable.setRow(g, r), c.data[r] = Fi(c.data[r], !0) || Fi(t, !0) ? o.options : te(t, c.data[r]), a.isDirty = a.isDirtyData = !0, !a.fixedBox && a.hasCartesianSeries && (h.isDirtyBox = !0), c.legendType === "point" && (h.isDirtyLegend = !0), e && h.redraw(i);
|
|
2605
2605
|
}
|
|
2606
|
-
e =
|
|
2606
|
+
e = te(e, !0), s === !1 ? d() : o.firePointEvent("update", { options: t }, d);
|
|
2607
2607
|
}
|
|
2608
2608
|
remove(t, e) {
|
|
2609
2609
|
this.series.removePoint(this.series.data.indexOf(this), t, e);
|
|
2610
2610
|
}
|
|
2611
2611
|
select(t, e) {
|
|
2612
2612
|
let i = this, s = i.series, r = s.chart;
|
|
2613
|
-
t =
|
|
2613
|
+
t = te(t, !i.selected), this.selectedStaging = t, i.firePointEvent(t ? "select" : "unselect", { accumulate: e }, function() {
|
|
2614
2614
|
i.selected = i.options.selected = t, s.options.data[s.data.indexOf(i)] = i.options, i.setState(t && "select"), e || r.getSelectedPoints().forEach(function(o) {
|
|
2615
2615
|
let a = o.series;
|
|
2616
2616
|
o.selected && o !== i && (o.selected = o.options.selected = !1, a.options.data[a.data.indexOf(o)] = o.options, o.setState(r.hoverPoints && a.options.inactiveOtherPoints ? "inactive" : ""), o.firePointEvent("unselect"));
|
|
@@ -2636,23 +2636,23 @@ function Dp() {
|
|
|
2636
2636
|
if ((t = t || "") === this.state && !e || this.selected && t !== "select" || r.enabled === !1 || t && (h || a && n.enabled === !1) || t && c.states && c.states[t] && c.states[t].enabled === !1) return;
|
|
2637
2637
|
if (this.state = t, p && (g = i.markerAttribs(this, t)), this.graphic && !this.hasMockGraphic) {
|
|
2638
2638
|
if (s && this.graphic.removeClass("highcharts-point-" + s), t && this.graphic.addClass("highcharts-point-" + t), !d.styledMode) {
|
|
2639
|
-
x = i.pointAttribs(this, t), m =
|
|
2639
|
+
x = i.pointAttribs(this, t), m = te(d.options.chart.animation, r.animation);
|
|
2640
2640
|
let M = x.opacity;
|
|
2641
|
-
i.options.inactiveOtherPoints &&
|
|
2641
|
+
i.options.inactiveOtherPoints && Qt(M) && (this.dataLabels || []).forEach(function(S) {
|
|
2642
2642
|
S && !S.hasClass("highcharts-data-label-hidden") && (S.animate({ opacity: M }, m), S.connector && S.connector.animate({ opacity: M }, m));
|
|
2643
2643
|
}), this.graphic.animate(x, m);
|
|
2644
2644
|
}
|
|
2645
|
-
g && this.graphic.animate(g,
|
|
2645
|
+
g && this.graphic.animate(g, te(d.options.chart.animation, n.animation, o.animation)), f && f.hide();
|
|
2646
2646
|
} else t && n && (y = c.symbol || i.symbol, f && f.currentSymbol !== y && (f = f.destroy()), g && (f ? f[e ? "animate" : "attr"]({ x: g.x, y: g.y }) : y && (i.stateMarkerGraphic = f = d.renderer.symbol(y, g.x, g.y, g.width, g.height, Go(o, n)).add(i.markerGroup), f.currentSymbol = y)), !d.styledMode && f && this.state !== "inactive" && f.attr(i.pointAttribs(this, t))), f && (f[t && this.isInside ? "show" : "hide"](), f.element.point = this, f.addClass(this.getClassName(), !0));
|
|
2647
2647
|
let b = r.halo, v = this.graphic || f, k = v?.visibility || "inherit";
|
|
2648
|
-
b?.size && v && k !== "hidden" && !this.isCluster ? (u || (i.halo = u = d.renderer.path().add(v.parentGroup)), u.show()[e ? "animate" : "attr"]({ d: this.haloPath(b.size) }), u.attr({ class: "highcharts-halo highcharts-color-" +
|
|
2648
|
+
b?.size && v && k !== "hidden" && !this.isCluster ? (u || (i.halo = u = d.renderer.path().add(v.parentGroup)), u.show()[e ? "animate" : "attr"]({ d: this.haloPath(b.size) }), u.attr({ class: "highcharts-halo highcharts-color-" + te(this.colorIndex, i.colorIndex) + (this.className ? " " + this.className : ""), visibility: k, zIndex: -1 }), u.point = this, d.styledMode || u.attr(Hi({ fill: this.color || i.color, "fill-opacity": b.opacity }, Q.filterUserAttributes(b.attributes || {})))) : u?.point?.haloPath && !u.point.destroyed && u.animate({ d: u.point.haloPath(0) }, null, u.hide), Us(this, "afterSetState", { state: t });
|
|
2649
2649
|
}
|
|
2650
2650
|
haloPath(t) {
|
|
2651
2651
|
let e = this.pos();
|
|
2652
2652
|
return e ? this.series.chart.renderer.symbols.circle(Yh(e[0], 1) - t, e[1] - t, 2 * t, 2 * t) : [];
|
|
2653
2653
|
}
|
|
2654
2654
|
}
|
|
2655
|
-
let
|
|
2655
|
+
let ee = ii, { parse: Kh } = tt, { charts: Vs, composed: _h, isTouchDevice: Jh } = C, { addEvent: It, attr: Qh, css: $s, extend: Zs, find: jo, fireEvent: ie, isNumber: Gi, isObject: Yi, objectEach: td, offset: ed, pick: jt, pushUnique: id, splat: Uo } = B;
|
|
2656
2656
|
class pt {
|
|
2657
2657
|
applyInactiveState(t = []) {
|
|
2658
2658
|
let e = [];
|
|
@@ -2672,7 +2672,7 @@ function Dp() {
|
|
|
2672
2672
|
}
|
|
2673
2673
|
getSelectionMarkerAttrs(t, e) {
|
|
2674
2674
|
let i = { args: { chartX: t, chartY: e }, attrs: {}, shapeType: "rect" };
|
|
2675
|
-
return
|
|
2675
|
+
return ie(this, "getSelectionMarkerAttrs", i, (s) => {
|
|
2676
2676
|
let r, { chart: o, zoomHor: a, zoomVert: n } = this, { mouseDownX: h = 0, mouseDownY: c = 0 } = o, d = s.attrs;
|
|
2677
2677
|
d.x = o.plotLeft, d.y = o.plotTop, d.width = a ? 1 : o.plotWidth, d.height = n ? 1 : o.plotHeight, a && (d.width = Math.max(1, Math.abs(r = t - h)), d.x = (r > 0 ? 0 : r) + h), n && (d.height = Math.max(1, Math.abs(r = e - c)), d.y = (r > 0 ? 0 : r) + c);
|
|
2678
2678
|
}), i;
|
|
@@ -2691,7 +2691,7 @@ function Dp() {
|
|
|
2691
2691
|
}
|
|
2692
2692
|
getSelectionBox(t) {
|
|
2693
2693
|
let e = { args: { marker: t }, result: t.getBBox() };
|
|
2694
|
-
return
|
|
2694
|
+
return ie(this, "getSelectionBox", e), e.result;
|
|
2695
2695
|
}
|
|
2696
2696
|
drop(t) {
|
|
2697
2697
|
let e, { chart: i, selectionMarker: s } = this;
|
|
@@ -2737,9 +2737,9 @@ function Dp() {
|
|
|
2737
2737
|
}
|
|
2738
2738
|
getHoverData(t, e, i, s, r, o) {
|
|
2739
2739
|
let a = [], n = function(u) {
|
|
2740
|
-
return u.visible && !(!r && u.directTouch) &&
|
|
2740
|
+
return u.visible && !(!r && u.directTouch) && jt(u.options.enableMouseTracking, !0);
|
|
2741
2741
|
}, h = e, c, d = { chartX: o ? o.chartX : void 0, chartY: o ? o.chartY : void 0, shared: r };
|
|
2742
|
-
|
|
2742
|
+
ie(this, "beforeGetHoverData", d), c = h && !h.stickyTracking ? [h] : i.filter((u) => u.stickyTracking && (d.filter || n)(u));
|
|
2743
2743
|
let p = s && t || !o ? t : this.findNearestKDPoint(c, r, o);
|
|
2744
2744
|
return h = p?.series, p && (r && !h.noSharedTooltip ? (c = i.filter(function(u) {
|
|
2745
2745
|
return d.filter ? d.filter(u) : n(u) && !u.noSharedTooltip;
|
|
@@ -2748,7 +2748,7 @@ function Dp() {
|
|
|
2748
2748
|
return m.x === p.x && (!m.isNull || !!g);
|
|
2749
2749
|
});
|
|
2750
2750
|
Yi(x) && (u.boosted && u.boost && (x = u.boost.getPoint(x)), a.push(x));
|
|
2751
|
-
}) : a.push(p)),
|
|
2751
|
+
}) : a.push(p)), ie(this, "afterGetHoverData", d = { hoverPoint: p }), { hoverPoint: d.hoverPoint, hoverSeries: h, hoverPoints: a };
|
|
2752
2752
|
}
|
|
2753
2753
|
getPointFromEvent(t) {
|
|
2754
2754
|
let e = t.target, i;
|
|
@@ -2770,24 +2770,24 @@ function Dp() {
|
|
|
2770
2770
|
}
|
|
2771
2771
|
}
|
|
2772
2772
|
constructor(t, e) {
|
|
2773
|
-
this.hasDragged = 0, this.pointerCaptureEventsToUnbind = [], this.eventsToUnbind = [], this.options = e, this.chart = t, this.runChartClick = !!e.chart.events?.click, this.pinchDown = [], this.setDOMEvents(),
|
|
2773
|
+
this.hasDragged = 0, this.pointerCaptureEventsToUnbind = [], this.eventsToUnbind = [], this.options = e, this.chart = t, this.runChartClick = !!e.chart.events?.click, this.pinchDown = [], this.setDOMEvents(), ie(this, "afterInit");
|
|
2774
2774
|
}
|
|
2775
2775
|
normalize(t, e) {
|
|
2776
|
-
let i = t.touches, s = i ? i.length ? i.item(0) :
|
|
2776
|
+
let i = t.touches, s = i ? i.length ? i.item(0) : jt(i.changedTouches, t.changedTouches)[0] : t;
|
|
2777
2777
|
e || (e = this.getChartPosition());
|
|
2778
2778
|
let r = s.pageX - e.left, o = s.pageY - e.top;
|
|
2779
2779
|
return Zs(t, { chartX: Math.round(r /= e.scaleX), chartY: Math.round(o /= e.scaleY) });
|
|
2780
2780
|
}
|
|
2781
2781
|
onContainerClick(t) {
|
|
2782
2782
|
let e = this.chart, i = e.hoverPoint, s = this.normalize(t), r = e.plotLeft, o = e.plotTop;
|
|
2783
|
-
!e.cancelClick && (i && this.inClass(s.target, "highcharts-tracker") ? (
|
|
2783
|
+
!e.cancelClick && (i && this.inClass(s.target, "highcharts-tracker") ? (ie(i.series, "click", Zs(s, { point: i })), e.hoverPoint && i.firePointEvent("click", s)) : (Zs(s, this.getCoordinates(s)), e.isInsidePlot(s.chartX - r, s.chartY - o, { visiblePlotOnly: !0 }) && ie(e, "click", s)));
|
|
2784
2784
|
}
|
|
2785
2785
|
onContainerMouseDown(t) {
|
|
2786
2786
|
let e = (1 & (t.buttons || t.button)) == 1;
|
|
2787
2787
|
t = this.normalize(t), C.isFirefox && t.button !== 0 && this.onContainerMouseMove(t), (t.button === void 0 || e) && (this.zoomOption(t), e && t.preventDefault?.(), this.dragStart(t));
|
|
2788
2788
|
}
|
|
2789
2789
|
onContainerMouseLeave(t) {
|
|
2790
|
-
let { pointer: e } = Vs[
|
|
2790
|
+
let { pointer: e } = Vs[jt(pt.hoverChartIndex, -1)] || {};
|
|
2791
2791
|
t = this.normalize(t), this.onContainerMouseMove(t), e && !this.inClass(t.relatedTarget, "highcharts-tooltip") && (e.reset(), e.chartPosition = void 0);
|
|
2792
2792
|
}
|
|
2793
2793
|
onContainerMouseEnter() {
|
|
@@ -2811,11 +2811,11 @@ function Dp() {
|
|
|
2811
2811
|
!s || e.isInsidePlot(r.chartX - e.plotLeft, r.chartY - e.plotTop, { visiblePlotOnly: !0 }) || i?.shouldStickOnContact(r) || r.target !== e.container.ownerDocument && this.inClass(r.target, "highcharts-tracker") || this.reset();
|
|
2812
2812
|
}
|
|
2813
2813
|
onDocumentMouseUp(t) {
|
|
2814
|
-
t?.touches && this.hasPinchMoved && t?.preventDefault?.(), Vs[
|
|
2814
|
+
t?.touches && this.hasPinchMoved && t?.preventDefault?.(), Vs[jt(pt.hoverChartIndex, -1)]?.pointer?.drop(t);
|
|
2815
2815
|
}
|
|
2816
2816
|
pinch(t) {
|
|
2817
|
-
let e = this, { chart: i, hasZoom: s, lastTouches: r } = e, o = [].map.call(t.touches || [], (d) => e.normalize(d)), a = o.length, n = a === 1 && (e.inClass(t.target, "highcharts-tracker") && i.runTrackerClick || e.runChartClick), h = i.tooltip, c = a === 1 &&
|
|
2818
|
-
a > 1 ? e.initiated = !0 : c && (e.initiated = !1), s && e.initiated && !n && t.cancelable !== !1 && t.preventDefault(), t.type === "touchstart" ? (e.pinchDown = o, e.res = !0, i.mouseDownX = t.chartX) : c ? this.runPointActions(e.normalize(t)) : r && (
|
|
2817
|
+
let e = this, { chart: i, hasZoom: s, lastTouches: r } = e, o = [].map.call(t.touches || [], (d) => e.normalize(d)), a = o.length, n = a === 1 && (e.inClass(t.target, "highcharts-tracker") && i.runTrackerClick || e.runChartClick), h = i.tooltip, c = a === 1 && jt(h?.options.followTouchMove, !0);
|
|
2818
|
+
a > 1 ? e.initiated = !0 : c && (e.initiated = !1), s && e.initiated && !n && t.cancelable !== !1 && t.preventDefault(), t.type === "touchstart" ? (e.pinchDown = o, e.res = !0, i.mouseDownX = t.chartX) : c ? this.runPointActions(e.normalize(t)) : r && (ie(i, "touchpan", { originalEvent: t, touches: o }, () => {
|
|
2819
2819
|
let d = (p) => {
|
|
2820
2820
|
let u = p[0], g = p[1] || u;
|
|
2821
2821
|
return { x: u.chartX, y: u.chartY, width: g.chartX - u.chartX, height: g.chartY - u.chartY };
|
|
@@ -2854,31 +2854,31 @@ function Dp() {
|
|
|
2854
2854
|
let x = o.getAnchor([{}], t);
|
|
2855
2855
|
s.isInsidePlot(x[0], x[1], { visiblePlotOnly: !0 }) && o.updatePosition({ plotX: x[0], plotY: x[1] });
|
|
2856
2856
|
}
|
|
2857
|
-
this.unDocMouseMove || (this.unDocMouseMove =
|
|
2857
|
+
this.unDocMouseMove || (this.unDocMouseMove = It(s.container.ownerDocument, "mousemove", (x) => Vs[pt.hoverChartIndex ?? -1]?.pointer?.onDocumentMouseMove(x)), this.eventsToUnbind.push(this.unDocMouseMove)), s.axes.forEach(function(x) {
|
|
2858
2858
|
let m, f = x.crosshair?.snap ?? !0;
|
|
2859
2859
|
f && ((m = s.hoverPoint) && m.series[x.coll] === x || (m = jo(p, (y) => y.series?.[x.coll] === x))), m || !f ? x.drawCrosshair(t, m) : x.hideCrosshair();
|
|
2860
2860
|
});
|
|
2861
2861
|
}
|
|
2862
2862
|
setDOMEvents() {
|
|
2863
2863
|
let t = this.chart.container, e = t.ownerDocument;
|
|
2864
|
-
t.onmousedown = this.onContainerMouseDown.bind(this), t.onmousemove = this.onContainerMouseMove.bind(this), t.onclick = this.onContainerClick.bind(this), this.eventsToUnbind.push(
|
|
2864
|
+
t.onmousedown = this.onContainerMouseDown.bind(this), t.onmousemove = this.onContainerMouseMove.bind(this), t.onclick = this.onContainerClick.bind(this), this.eventsToUnbind.push(It(t, "mouseenter", this.onContainerMouseEnter.bind(this)), It(t, "mouseleave", this.onContainerMouseLeave.bind(this))), pt.unbindDocumentMouseUp.some((s) => s.doc === e) || pt.unbindDocumentMouseUp.push({ doc: e, unbind: It(e, "mouseup", this.onDocumentMouseUp.bind(this)) });
|
|
2865
2865
|
let i = this.chart.renderTo.parentElement;
|
|
2866
|
-
for (; i && i.tagName !== "BODY"; ) this.eventsToUnbind.push(
|
|
2866
|
+
for (; i && i.tagName !== "BODY"; ) this.eventsToUnbind.push(It(i, "scroll", () => {
|
|
2867
2867
|
delete this.chartPosition;
|
|
2868
2868
|
})), i = i.parentElement;
|
|
2869
|
-
this.eventsToUnbind.push(
|
|
2869
|
+
this.eventsToUnbind.push(It(t, "touchstart", this.onContainerTouchStart.bind(this), { passive: !1 }), It(t, "touchmove", this.onContainerTouchMove.bind(this), { passive: !1 })), pt.unbindDocumentTouchEnd || (pt.unbindDocumentTouchEnd = It(e, "touchend", this.onDocumentTouchEnd.bind(this), { passive: !1 })), this.setPointerCapture(), It(this.chart, "redraw", this.setPointerCapture.bind(this));
|
|
2870
2870
|
}
|
|
2871
2871
|
setPointerCapture() {
|
|
2872
2872
|
if (!Jh) return;
|
|
2873
|
-
let t = this.pointerCaptureEventsToUnbind, e = this.chart, i = e.container, s =
|
|
2874
|
-
!this.hasPointerCapture && s ? (t.push(
|
|
2873
|
+
let t = this.pointerCaptureEventsToUnbind, e = this.chart, i = e.container, s = jt(e.options.tooltip?.followTouchMove, !0) && e.series.some((r) => r.options.findNearestPointBy.indexOf("y") > -1);
|
|
2874
|
+
!this.hasPointerCapture && s ? (t.push(It(i, "pointerdown", (r) => {
|
|
2875
2875
|
r.target?.hasPointerCapture(r.pointerId) && r.target?.releasePointerCapture(r.pointerId);
|
|
2876
|
-
}),
|
|
2876
|
+
}), It(i, "pointermove", (r) => {
|
|
2877
2877
|
e.pointer?.getPointFromEvent(r)?.onMouseOver(r);
|
|
2878
|
-
})), e.styledMode || $s(i, { "touch-action": "none" }), i.className += " highcharts-no-touch-action", this.hasPointerCapture = !0) : this.hasPointerCapture && !s && (t.forEach((r) => r()), t.length = 0, e.styledMode || $s(i, { "touch-action":
|
|
2878
|
+
})), e.styledMode || $s(i, { "touch-action": "none" }), i.className += " highcharts-no-touch-action", this.hasPointerCapture = !0) : this.hasPointerCapture && !s && (t.forEach((r) => r()), t.length = 0, e.styledMode || $s(i, { "touch-action": jt(e.options.chart.style?.["touch-action"], "manipulation") }), i.className = i.className.replace(" highcharts-no-touch-action", ""), this.hasPointerCapture = !1);
|
|
2879
2879
|
}
|
|
2880
2880
|
setHoverChartIndex(t) {
|
|
2881
|
-
let e = this.chart, i = C.charts[
|
|
2881
|
+
let e = this.chart, i = C.charts[jt(pt.hoverChartIndex, -1)];
|
|
2882
2882
|
if (i && i !== e) {
|
|
2883
2883
|
let s = { relatedTarget: e.container };
|
|
2884
2884
|
t && !t?.relatedTarget && Object.assign({}, t, s), i.pointer?.onContainerMouseLeave(t || s);
|
|
@@ -2887,19 +2887,19 @@ function Dp() {
|
|
|
2887
2887
|
}
|
|
2888
2888
|
touch(t, e) {
|
|
2889
2889
|
let i, { chart: s, pinchDown: r = [] } = this;
|
|
2890
|
-
this.setHoverChartIndex(), (t = this.normalize(t)).touches.length === 1 ? s.isInsidePlot(t.chartX - s.plotLeft, t.chartY - s.plotTop, { visiblePlotOnly: !0 }) && !s.exporting?.openMenu ? (e && this.runPointActions(t), t.type === "touchmove" && (this.hasPinchMoved = i = !!r[0] && Math.pow(r[0].chartX - t.chartX, 2) + Math.pow(r[0].chartY - t.chartY, 2) >= 16),
|
|
2890
|
+
this.setHoverChartIndex(), (t = this.normalize(t)).touches.length === 1 ? s.isInsidePlot(t.chartX - s.plotLeft, t.chartY - s.plotTop, { visiblePlotOnly: !0 }) && !s.exporting?.openMenu ? (e && this.runPointActions(t), t.type === "touchmove" && (this.hasPinchMoved = i = !!r[0] && Math.pow(r[0].chartX - t.chartX, 2) + Math.pow(r[0].chartY - t.chartY, 2) >= 16), jt(i, !0) && this.pinch(t)) : e && this.reset() : t.touches.length === 2 && this.pinch(t);
|
|
2891
2891
|
}
|
|
2892
2892
|
touchSelect(t) {
|
|
2893
2893
|
return !!(this.chart.zooming.singleTouch && t.touches && t.touches.length === 1);
|
|
2894
2894
|
}
|
|
2895
2895
|
zoomOption(t) {
|
|
2896
2896
|
let e = this.chart, i = e.inverted, s = e.zooming.type || "", r, o;
|
|
2897
|
-
/touch/.test(t.type) && (s =
|
|
2897
|
+
/touch/.test(t.type) && (s = jt(e.zooming.pinchType, s)), this.zoomX = r = /x/.test(s), this.zoomY = o = /y/.test(s), this.zoomHor = r && !i || o && i, this.zoomVert = o && !i || r && i, this.hasZoom = r || o;
|
|
2898
2898
|
}
|
|
2899
2899
|
}
|
|
2900
2900
|
pt.unbindDocumentMouseUp = [], (function(l) {
|
|
2901
2901
|
l.compose = function(t) {
|
|
2902
|
-
id(_h, "Core.Pointer") &&
|
|
2902
|
+
id(_h, "Core.Pointer") && It(t, "beforeRender", function() {
|
|
2903
2903
|
this.pointer = new l(this, this.options);
|
|
2904
2904
|
});
|
|
2905
2905
|
};
|
|
@@ -2913,8 +2913,8 @@ function Dp() {
|
|
|
2913
2913
|
let o = Object.getPrototypeOf(t).constructor, a = t[s ? "subarray" : "slice"](e, e + i), n = new o(t.length - i + r.length);
|
|
2914
2914
|
return n.set(t.subarray(0, e), 0), n.set(r, e), n.set(t.subarray(e + i), e + r.length), { removed: a, array: n };
|
|
2915
2915
|
};
|
|
2916
|
-
})(
|
|
2917
|
-
let { setLength: sd, splice: $o } =
|
|
2916
|
+
})(de || (de = {}));
|
|
2917
|
+
let { setLength: sd, splice: $o } = de, { fireEvent: qs, objectEach: si, uniqueKey: ri } = B, ji = class {
|
|
2918
2918
|
constructor(l = {}) {
|
|
2919
2919
|
this.autoId = !l.id, this.columns = {}, this.id = l.id || ri(), this.modified = this, this.rowCount = 0, this.versionTag = ri();
|
|
2920
2920
|
let t = 0;
|
|
@@ -2980,48 +2980,48 @@ function Dp() {
|
|
|
2980
2980
|
let s = i.legendItem || {}, r = e.options, o = e.symbolHeight, a = r.squareSymbol, n = a ? o : e.symbolWidth;
|
|
2981
2981
|
s.symbol = this.chart.renderer.rect(a ? (e.symbolWidth - o) / 2 : 0, e.baseline - o + 1, n, o, Zo(e.options.symbolRadius, o / 2)).addClass("highcharts-point").attr({ zIndex: 3 }).add(s.group);
|
|
2982
2982
|
};
|
|
2983
|
-
})(
|
|
2984
|
-
let qo =
|
|
2983
|
+
})(Me || (Me = {}));
|
|
2984
|
+
let qo = Me, { defaultOptions: Ko } = Lt, { extend: ad, extendClass: nd, merge: ld } = B;
|
|
2985
2985
|
(function(l) {
|
|
2986
2986
|
function t(e, i) {
|
|
2987
2987
|
let s = Ko.plotOptions || {}, r = i.defaultOptions, o = i.prototype;
|
|
2988
|
-
return o.type = e, o.pointClass || (o.pointClass =
|
|
2988
|
+
return o.type = e, o.pointClass || (o.pointClass = ee), !l.seriesTypes[e] && (r && (s[e] = r), l.seriesTypes[e] = i, !0);
|
|
2989
2989
|
}
|
|
2990
2990
|
l.seriesTypes = C.seriesTypes, l.registerSeriesType = t, l.seriesType = function(e, i, s, r, o) {
|
|
2991
2991
|
let a = Ko.plotOptions || {};
|
|
2992
|
-
if (i = i || "", a[e] = ld(a[i], s), delete l.seriesTypes[e], t(e, nd(l.seriesTypes[i] ||
|
|
2993
|
-
class n extends
|
|
2992
|
+
if (i = i || "", a[e] = ld(a[i], s), delete l.seriesTypes[e], t(e, nd(l.seriesTypes[i] || At, r)), l.seriesTypes[e].prototype.type = e, o) {
|
|
2993
|
+
class n extends ee {
|
|
2994
2994
|
}
|
|
2995
2995
|
ad(n.prototype, o), l.seriesTypes[e].prototype.pointClass = n;
|
|
2996
2996
|
}
|
|
2997
2997
|
return l.seriesTypes[e];
|
|
2998
2998
|
};
|
|
2999
|
-
})(
|
|
3000
|
-
let
|
|
3001
|
-
class
|
|
2999
|
+
})(Tt || (Tt = {}));
|
|
3000
|
+
let ot = Tt, { animObject: _o, setAnimation: hd } = ft, { defaultOptions: Ui } = Lt, { registerEventOptions: dd } = Ei, { svg: cd, win: pd } = C, { seriesTypes: Re } = ot, { format: ud } = Et, { arrayMax: Ks, arrayMin: Jo, clamp: Qo, correctFloat: ta, crisp: gd, defined: ht, destroyObjectProperties: fd, diffObjects: md, erase: ea, error: Vi, extend: We, find: xd, fireEvent: it, getClosestDistance: yd, getNestedProperty: ia, insertItem: sa, isArray: ra, isNumber: ut, isString: bd, merge: oi, objectEach: _s, pick: st, removeEvent: vd, syncTimeout: oa } = B;
|
|
3001
|
+
class Bt {
|
|
3002
3002
|
constructor() {
|
|
3003
3003
|
this.zoneAxis = "y";
|
|
3004
3004
|
}
|
|
3005
3005
|
init(t, e) {
|
|
3006
3006
|
let i;
|
|
3007
|
-
|
|
3007
|
+
it(this, "init", { options: e }), this.dataTable ?? (this.dataTable = new ji());
|
|
3008
3008
|
let s = t.series;
|
|
3009
3009
|
this.eventsToUnbind = [], this.chart = t, this.options = this.setOptions(e);
|
|
3010
3010
|
let r = this.options, o = r.visible !== !1;
|
|
3011
|
-
this.linkedSeries = [], this.bindAxes(),
|
|
3011
|
+
this.linkedSeries = [], this.bindAxes(), We(this, { name: r.name, state: "", visible: o, selected: r.selected === !0 }), dd(this, r), (r.events?.click || r.point?.events?.click || r.allowPointSelect) && (t.runTrackerClick = !0), this.getColor(), this.getSymbol(), this.isCartesian && (t.hasCartesianSeries = !0), s.length && (i = s[s.length - 1]), this._i = st(i?._i, -1) + 1, this.opacity = this.options.opacity, t.orderItems("series", sa(this, s)), r.dataSorting?.enabled ? this.setDataSortingOptions() : this.points || this.data || this.setData(r.data, !1), it(this, "afterInit");
|
|
3012
3012
|
}
|
|
3013
3013
|
is(t) {
|
|
3014
|
-
return
|
|
3014
|
+
return Re[t] && this instanceof Re[t];
|
|
3015
3015
|
}
|
|
3016
3016
|
bindAxes() {
|
|
3017
3017
|
let t, e = this, i = e.options, s = e.chart;
|
|
3018
|
-
|
|
3018
|
+
it(this, "bindAxes", null, function() {
|
|
3019
3019
|
(e.axisTypes || []).forEach(function(r) {
|
|
3020
3020
|
(s[r] || []).forEach(function(o) {
|
|
3021
|
-
t = o.options, (
|
|
3021
|
+
t = o.options, (st(i[r], 0) === o.index || i[r] !== void 0 && i[r] === t.id) && (sa(e, o.series), e[r] = o, o.isDirty = !0);
|
|
3022
3022
|
}), e[r] || e.optionalAxis === r || Vi(18, !0, s);
|
|
3023
3023
|
});
|
|
3024
|
-
}),
|
|
3024
|
+
}), it(this, "afterBindAxes");
|
|
3025
3025
|
}
|
|
3026
3026
|
hasData() {
|
|
3027
3027
|
return this.visible && this.dataMax !== void 0 && this.dataMin !== void 0 || this.visible && this.dataTable.rowCount > 0;
|
|
@@ -3032,7 +3032,7 @@ function Dp() {
|
|
|
3032
3032
|
}
|
|
3033
3033
|
autoIncrement(t) {
|
|
3034
3034
|
let e, i = this.options, { pointIntervalUnit: s, relativeXValue: r } = this.options, o = this.chart.time, a = this.xIncrement ?? o.parse(i.pointStart) ?? 0;
|
|
3035
|
-
if (this.pointInterval = e =
|
|
3035
|
+
if (this.pointInterval = e = st(this.pointInterval, i.pointInterval, 1), r && ut(t) && (e *= t), s) {
|
|
3036
3036
|
let n = o.toParts(a);
|
|
3037
3037
|
s === "day" ? n[2] += e : s === "month" ? n[1] += e : s === "year" && (n[0] += e), e = o.makeTime.apply(o, n) - a;
|
|
3038
3038
|
}
|
|
@@ -3040,24 +3040,24 @@ function Dp() {
|
|
|
3040
3040
|
}
|
|
3041
3041
|
setDataSortingOptions() {
|
|
3042
3042
|
let t = this.options;
|
|
3043
|
-
|
|
3043
|
+
We(this, { requireSorting: !1, sorted: !1, enabledDataSorting: !0, allowDG: !1 }), ht(t.pointRange) || (t.pointRange = 1);
|
|
3044
3044
|
}
|
|
3045
3045
|
setOptions(t) {
|
|
3046
3046
|
let e, i = this.chart, s = i.options.plotOptions, r = i.userOptions || {}, o = oi(t), a = i.styledMode, n = { plotOptions: s, userOptions: o };
|
|
3047
|
-
|
|
3047
|
+
it(this, "setOptions", n);
|
|
3048
3048
|
let h = n.plotOptions[this.type], c = r.plotOptions || {}, d = c.series || {}, p = Ui.plotOptions[this.type] || {}, u = c[this.type] || {};
|
|
3049
3049
|
h.dataLabels = this.mergeArrays(p.dataLabels, h.dataLabels), this.userOptions = n.userOptions;
|
|
3050
3050
|
let g = oi(h, s.series, u, o);
|
|
3051
|
-
this.tooltipOptions = oi(Ui.tooltip, Ui.plotOptions.series?.tooltip, p?.tooltip, i.userOptions.tooltip, c.series?.tooltip, u.tooltip, o.tooltip), this.stickyTracking =
|
|
3051
|
+
this.tooltipOptions = oi(Ui.tooltip, Ui.plotOptions.series?.tooltip, p?.tooltip, i.userOptions.tooltip, c.series?.tooltip, u.tooltip, o.tooltip), this.stickyTracking = st(o.stickyTracking, u.stickyTracking, d.stickyTracking, !!this.tooltipOptions.shared && !this.noSharedTooltip || g.stickyTracking), h.marker === null && delete g.marker, this.zoneAxis = g.zoneAxis || "y";
|
|
3052
3052
|
let x = this.zones = (g.zones || []).map((m) => ({ ...m }));
|
|
3053
|
-
return (g.negativeColor || g.negativeFillColor) && !g.zones && (e = { value: g[this.zoneAxis + "Threshold"] || g.threshold || 0, className: "highcharts-negative" }, a || (e.color = g.negativeColor, e.fillColor = g.negativeFillColor), x.push(e)), x.length && ht(x[x.length - 1].value) && x.push(a ? {} : { color: this.color, fillColor: this.fillColor }),
|
|
3053
|
+
return (g.negativeColor || g.negativeFillColor) && !g.zones && (e = { value: g[this.zoneAxis + "Threshold"] || g.threshold || 0, className: "highcharts-negative" }, a || (e.color = g.negativeColor, e.fillColor = g.negativeFillColor), x.push(e)), x.length && ht(x[x.length - 1].value) && x.push(a ? {} : { color: this.color, fillColor: this.fillColor }), it(this, "afterSetOptions", { options: g }), g;
|
|
3054
3054
|
}
|
|
3055
3055
|
getName() {
|
|
3056
3056
|
return this.options.name ?? ud(this.chart.options.lang.seriesName, this, this.chart);
|
|
3057
3057
|
}
|
|
3058
3058
|
getCyclic(t, e, i) {
|
|
3059
3059
|
let s, r, o = this.chart, a = `${t}Index`, n = `${t}Counter`, h = i?.length || o.options.chart.colorCount;
|
|
3060
|
-
!e && (ht(r =
|
|
3060
|
+
!e && (ht(r = st(t === "color" ? this.options.colorIndex : void 0, this[a])) ? s = r : (o.series.length || (o[n] = 0), s = o[n] % h, o[n] += 1), i && (e = i[s])), s !== void 0 && (this[a] = s), this[t] = e;
|
|
3061
3061
|
}
|
|
3062
3062
|
getColor() {
|
|
3063
3063
|
this.chart.styledMode ? this.getCyclic("color") : this.options.colorByPoint ? this.color = "#cccccc" : this.getCyclic("color", this.options.color || Ui.plotOptions[this.type].color, this.chart.options.colors);
|
|
@@ -3076,7 +3076,7 @@ function Dp() {
|
|
|
3076
3076
|
let i, s, r, { id: o, x: a } = t, n = this.points, h = this.options.dataSorting, c = this.cropStart || 0;
|
|
3077
3077
|
if (o) {
|
|
3078
3078
|
let d = this.chart.get(o);
|
|
3079
|
-
d instanceof
|
|
3079
|
+
d instanceof ee && (i = d);
|
|
3080
3080
|
} else if (this.linkedParent || this.enabledDataSorting || this.options.relativeXValue) {
|
|
3081
3081
|
let d = (p) => !p.touched && p.index === t.index;
|
|
3082
3082
|
if (h?.matchByName ? d = (p) => !p.touched && p.name === t.name : this.options.relativeXValue && (d = (p) => !p.touched && p.options.x === t.x), !(i = xd(n, d))) return;
|
|
@@ -3172,7 +3172,7 @@ function Dp() {
|
|
|
3172
3172
|
let e = this.xAxis, i = this.dataTable;
|
|
3173
3173
|
if (this.isCartesian && !this.isDirty && !e.isDirty && !this.yAxis.isDirty && !t) return !1;
|
|
3174
3174
|
let s = this.getProcessedData();
|
|
3175
|
-
i.modified = s.modified, this.cropped = s.cropped, this.cropStart = s.cropStart, this.closestPointRange = this.basePointRange = s.closestPointRange,
|
|
3175
|
+
i.modified = s.modified, this.cropped = s.cropped, this.cropStart = s.cropStart, this.closestPointRange = this.basePointRange = s.closestPointRange, it(this, "afterProcessData");
|
|
3176
3176
|
}
|
|
3177
3177
|
cropData(t, e, i) {
|
|
3178
3178
|
let s = t.getColumn("x", !0) || [], r = s.length, o = {}, a, n, h = 0, c = r;
|
|
@@ -3196,9 +3196,9 @@ function Dp() {
|
|
|
3196
3196
|
let k = [];
|
|
3197
3197
|
k.length = e?.length || 0, b = this.data = k;
|
|
3198
3198
|
}
|
|
3199
|
-
for (h && n && (this.options.keys = !1), y = 0; y < o; y++) m = a + y, n ? ((f = new r(this, i.getRow(y, g) || [])).dataGroup = this.groupMap[d + y], f.dataGroup?.options && (f.options = f.dataGroup.options,
|
|
3199
|
+
for (h && n && (this.options.keys = !1), y = 0; y < o; y++) m = a + y, n ? ((f = new r(this, i.getRow(y, g) || [])).dataGroup = this.groupMap[d + y], f.dataGroup?.options && (f.options = f.dataGroup.options, We(f, f.dataGroup.options), delete f.dataLabels)) : (f = b[m], v = e ? e[m] : i.getRow(y, u), f || v === void 0 || (b[m] = f = new r(this, v, s[y]))), f && (f.index = n ? d + y : m, c[y] = f, f.category = p?.[f.x] ?? f.x, f.key = f.name ?? f.category);
|
|
3200
3200
|
if (this.options.keys = h, b && (o !== (x = b.length) || n)) for (y = 0; y < x; y++) y !== a || n || (y += o), b[y] && (b[y].destroyElements(), b[y].plotX = void 0);
|
|
3201
|
-
this.data = b, this.points = c,
|
|
3201
|
+
this.data = b, this.points = c, it(this, "afterGeneratePoints");
|
|
3202
3202
|
}
|
|
3203
3203
|
getXExtremes(t) {
|
|
3204
3204
|
return { min: Jo(t), max: Ks(t) };
|
|
@@ -3210,7 +3210,7 @@ function Dp() {
|
|
|
3210
3210
|
ut(M) && (M > 0 || !u) && d.push(M);
|
|
3211
3211
|
}
|
|
3212
3212
|
let v = { activeYData: d, dataMin: Jo(d), dataMax: Ks(d) };
|
|
3213
|
-
return
|
|
3213
|
+
return it(this, "afterGetExtremes", { dataExtremes: v }), v;
|
|
3214
3214
|
}
|
|
3215
3215
|
applyExtremes() {
|
|
3216
3216
|
let t = this.getExtremes();
|
|
@@ -3231,9 +3231,9 @@ function Dp() {
|
|
|
3231
3231
|
}
|
|
3232
3232
|
for (u = 0; u < a; u++) {
|
|
3233
3233
|
let b, v = o[u], k = v.x, M, S, w = v.y, A = v.low, P = e && r.stacking?.stacks[(this.negStacks && w < (d ? 0 : c) ? "-" : "") + this.stackKey];
|
|
3234
|
-
v.plotX = ut(g = i.translate(k, !1, !1, !1, !0, n)) ? ta(y(g)) : void 0, e && this.visible && P && P[k] && (m = this.getStackIndicator(m, k, this.index), !v.isNull && m.key && (S = (M = P[k]).points[m.key]), M && ra(S) && (A = S[0], w = S[1], A === d && m.key === P[k].base && (A =
|
|
3234
|
+
v.plotX = ut(g = i.translate(k, !1, !1, !1, !0, n)) ? ta(y(g)) : void 0, e && this.visible && P && P[k] && (m = this.getStackIndicator(m, k, this.index), !v.isNull && m.key && (S = (M = P[k]).points[m.key]), M && ra(S) && (A = S[0], w = S[1], A === d && m.key === P[k].base && (A = st(ut(c) ? c : r.min)), r.positiveValuesOnly && ht(A) && A <= 0 && (A = void 0), v.total = v.stackTotal = st(M.total), v.percentage = ht(v.y) && M.total ? v.y / M.total * 100 : void 0, v.stackY = w, this.irregularWidths || M.setOffset(this.pointXOffset || 0, this.barW || 0, void 0, void 0, void 0, this.xAxis))), v.yBottom = ht(A) ? y(r.translate(A, !1, !0, !1, !0)) : void 0, this.dataModify && (w = this.dataModify.modifyValue(w, u)), ut(w) && v.plotX !== void 0 ? b = ut(b = r.translate(w, !1, !0, !1, !0)) ? y(b) : void 0 : !ut(w) && p && (b = p), v.plotY = b, v.isInside = this.isPointInside(v), v.clientX = h ? ta(i.translate(k, !1, !1, !1, !0, n)) : g, v.negative = (v.y || 0) < (c || 0), v.isNull || v.visible === !1 || (x !== void 0 && (f = Math.min(f, Math.abs(g - x))), x = g), v.zone = this.zones.length ? v.getZone() : void 0, !v.graphic && this.group && s && (v.isNew = !0);
|
|
3235
3235
|
}
|
|
3236
|
-
this.closestPointRangePx = f,
|
|
3236
|
+
this.closestPointRangePx = f, it(this, "afterTranslate");
|
|
3237
3237
|
}
|
|
3238
3238
|
getValidPoints(t, e, i) {
|
|
3239
3239
|
let s = this.chart;
|
|
@@ -3270,15 +3270,15 @@ function Dp() {
|
|
|
3270
3270
|
afterAnimate() {
|
|
3271
3271
|
this.setClip(), _s(this.chart.sharedClips, (t, e, i) => {
|
|
3272
3272
|
t && !this.chart.container.querySelector(`[clip-path="url(#${t.id})"]`) && (t.destroy(), delete i[e]);
|
|
3273
|
-
}), this.finishedAnimating = !0,
|
|
3273
|
+
}), this.finishedAnimating = !0, it(this, "afterAnimate");
|
|
3274
3274
|
}
|
|
3275
3275
|
drawPoints(t = this.points) {
|
|
3276
|
-
let e, i, s, r, o, a, n, h = this.chart, c = h.styledMode, { colorAxis: d, options: p } = this, u = p.marker, g = p.nullInteraction, x = this[this.specialGroup || "markerGroup"], m = this.xAxis, f =
|
|
3276
|
+
let e, i, s, r, o, a, n, h = this.chart, c = h.styledMode, { colorAxis: d, options: p } = this, u = p.marker, g = p.nullInteraction, x = this[this.specialGroup || "markerGroup"], m = this.xAxis, f = st(u.enabled, !m || !!m.isRadial || null, this.closestPointRangePx >= u.enabledThreshold * u.radius);
|
|
3277
3277
|
if (u.enabled !== !1 || this._hasPointMarkers) for (e = 0; e < t.length; e++) {
|
|
3278
3278
|
r = (s = (i = t[e]).graphic) ? "animate" : "attr", o = i.marker || {}, a = !!i.marker;
|
|
3279
3279
|
let y = i.isNull;
|
|
3280
3280
|
if ((f && !ht(o.enabled) || o.enabled) && (!y || g) && i.visible !== !1) {
|
|
3281
|
-
let b =
|
|
3281
|
+
let b = st(o.symbol, this.symbol, "rect");
|
|
3282
3282
|
n = this.markerAttribs(i, i.selected && "select"), this.enabledDataSorting && (i.startXPos = m.reversed ? -(n.width || 0) : m.width);
|
|
3283
3283
|
let v = i.isInside !== !1;
|
|
3284
3284
|
if (!s && v && ((n.width || 0) > 0 || i.hasImage) && (i.graphic = s = h.renderer.symbol(b, n.x, n.y, n.width, n.height, a ? o : u).add(x), this.enabledDataSorting && h.hasRendered && (s.attr({ x: i.startXPos }), r = "animate")), s && r === "animate" && s[v ? "show" : "hide"](v).animate(n), s) {
|
|
@@ -3290,23 +3290,23 @@ function Dp() {
|
|
|
3290
3290
|
}
|
|
3291
3291
|
}
|
|
3292
3292
|
markerAttribs(t, e) {
|
|
3293
|
-
let i = this.options, s = i.marker, r = t.marker || {}, o = r.symbol || s.symbol, a = {}, n, h, c =
|
|
3294
|
-
e && (n = s.states[e], h = r.states && r.states[e], c =
|
|
3293
|
+
let i = this.options, s = i.marker, r = t.marker || {}, o = r.symbol || s.symbol, a = {}, n, h, c = st(r.radius, s?.radius);
|
|
3294
|
+
e && (n = s.states[e], h = r.states && r.states[e], c = st(h?.radius, n?.radius, c && c + (n?.radiusPlus || 0))), t.hasImage = o && o.indexOf("url") === 0, t.hasImage && (c = 0);
|
|
3295
3295
|
let d = t.pos();
|
|
3296
3296
|
return ut(c) && d && (i.crisp && (d[0] = gd(d[0], t.hasImage ? 0 : o === "rect" ? s?.lineWidth || 0 : 1)), a.x = d[0] - c, a.y = d[1] - c), c && (a.width = a.height = 2 * c), a;
|
|
3297
3297
|
}
|
|
3298
3298
|
pointAttribs(t, e) {
|
|
3299
|
-
let i = this.options, s = i.marker, r = t?.options, o = r?.marker || {}, a = r?.color, n = t?.color, h = t?.zone?.color, c, d, p = this.color, u, g, x =
|
|
3300
|
-
return p = a || h || n || p, u = o.fillColor || s.fillColor || p, g = o.lineColor || s.lineColor || p, e = e || "normal", c = s.states[e] || {}, x =
|
|
3299
|
+
let i = this.options, s = i.marker, r = t?.options, o = r?.marker || {}, a = r?.color, n = t?.color, h = t?.zone?.color, c, d, p = this.color, u, g, x = st(o.lineWidth, s.lineWidth), m = t?.isNull && i.nullInteraction ? 0 : 1;
|
|
3300
|
+
return p = a || h || n || p, u = o.fillColor || s.fillColor || p, g = o.lineColor || s.lineColor || p, e = e || "normal", c = s.states[e] || {}, x = st((d = o.states && o.states[e] || {}).lineWidth, c.lineWidth, x + st(d.lineWidthPlus, c.lineWidthPlus, 0)), u = d.fillColor || c.fillColor || u, g = d.lineColor || c.lineColor || g, { stroke: g, "stroke-width": x, fill: u, opacity: m = st(d.opacity, c.opacity, m) };
|
|
3301
3301
|
}
|
|
3302
3302
|
destroy(t) {
|
|
3303
3303
|
let e, i, s = this, r = s.chart, o = /AppleWebKit\/533/.test(pd.navigator.userAgent), a = s.data || [];
|
|
3304
|
-
for (
|
|
3304
|
+
for (it(s, "destroy", { keepEventsForUpdate: t }), this.removeEvents(t), (s.axisTypes || []).forEach(function(n) {
|
|
3305
3305
|
i = s[n], i?.series && (ea(i.series, s), i.isDirty = i.forceRedraw = !0);
|
|
3306
3306
|
}), s.legendItem && s.chart.legend.destroyItem(s), e = a.length; e--; ) a[e]?.destroy?.();
|
|
3307
3307
|
for (let n of s.zones) fd(n, void 0, !0);
|
|
3308
3308
|
B.clearTimeout(s.animationTimeout), _s(s, function(n, h) {
|
|
3309
|
-
n instanceof
|
|
3309
|
+
n instanceof Ft && !n.survive && n[o && h === "group" ? "hide" : "destroy"]();
|
|
3310
3310
|
}), r.hoverSeries === s && (r.hoverSeries = void 0), ea(r.series, s), r.orderItems("series"), _s(s, function(n, h) {
|
|
3311
3311
|
t && h === "hcEvents" || delete s[h];
|
|
3312
3312
|
});
|
|
@@ -3324,7 +3324,7 @@ function Dp() {
|
|
|
3324
3324
|
});
|
|
3325
3325
|
};
|
|
3326
3326
|
if (s.forEach((k) => {
|
|
3327
|
-
k.lineClip = [], k.translated = Qo(d.toPixels(
|
|
3327
|
+
k.lineClip = [], k.translated = Qo(d.toPixels(st(k.value, f), !0) || 0, 0, u);
|
|
3328
3328
|
}), i && !this.showLine && i.hide(), t && t.hide(), n === "y" && r.length < o.len) for (let k of r) {
|
|
3329
3329
|
let { plotX: M, plotY: S, zone: w } = k, A = w && s[s.indexOf(w) - 1];
|
|
3330
3330
|
w && m(w, M, S), A && m(A, M, S);
|
|
@@ -3348,7 +3348,7 @@ function Dp() {
|
|
|
3348
3348
|
let e = this.xAxis, i = this.yAxis, s = this.chart, r = s.inverted && !s.polar && e && this.invertible && t === "series";
|
|
3349
3349
|
s.inverted && (e = i, i = this.xAxis);
|
|
3350
3350
|
let o = { scale: 1, translateX: e ? e.left : s.plotLeft, translateY: i ? i.top : s.plotTop, name: t };
|
|
3351
|
-
|
|
3351
|
+
it(this, "getPlotBox", o);
|
|
3352
3352
|
let { scale: a, translateX: n, translateY: h } = o;
|
|
3353
3353
|
return { translateX: n, translateY: h, rotation: 90 * !!r, rotationOriginX: r ? a * (e.len - i.len) / 2 : 0, rotationOriginY: r ? a * (e.len + i.len) / 2 : 0, scaleX: r ? -a : a, scaleY: a };
|
|
3354
3354
|
}
|
|
@@ -3360,9 +3360,9 @@ function Dp() {
|
|
|
3360
3360
|
}
|
|
3361
3361
|
render() {
|
|
3362
3362
|
let t = this, { chart: e, options: i, hasRendered: s } = t, r = _o(i.animation), o = t.visible ? "inherit" : "hidden", a = i.zIndex, n = e.seriesGroup, h = t.finishedAnimating ? 0 : r.duration;
|
|
3363
|
-
|
|
3363
|
+
it(this, "render"), t.plotGroup("group", "series", o, a, n), t.markerGroup = t.plotGroup("markerGroup", "markers", o, a, n), i.clip !== !1 && t.setClip(), h && t.animate?.(!0), t.drawGraph && (t.drawGraph(), t.applyZones()), t.visible && t.drawPoints(), t.drawDataLabels?.(), t.redrawPoints?.(), i.enableMouseTracking && t.drawTracker?.(), h && t.animate?.(), s || (h && r.defer && (h += r.defer), t.animationTimeout = oa(() => {
|
|
3364
3364
|
t.afterAnimate();
|
|
3365
|
-
}, h || 0)), t.isDirty = !1, t.hasRendered = !0,
|
|
3365
|
+
}, h || 0)), t.isDirty = !1, t.hasRendered = !0, it(t, "afterRender");
|
|
3366
3366
|
}
|
|
3367
3367
|
redraw() {
|
|
3368
3368
|
let t = this.isDirty || this.isDirtyData;
|
|
@@ -3393,8 +3393,8 @@ function Dp() {
|
|
|
3393
3393
|
if (this.kdTree || this.buildingKdTree || this.buildKDTree(i), this.kdTree) return (function g(x, m, f, y) {
|
|
3394
3394
|
let b = m.point, v = o.kdAxisArray[f % y], k = b, M = !1;
|
|
3395
3395
|
(function(P, T) {
|
|
3396
|
-
let L = P[a], I = T[a], D = ht(L) && ht(I) ? L - I : null, O = P[n], E = T[n], N = ht(O) && ht(E) ? O - E : 0,
|
|
3397
|
-
T.dist = Math.sqrt((D && D * D || 0) + N * N) -
|
|
3396
|
+
let L = P[a], I = T[a], D = ht(L) && ht(I) ? L - I : null, O = P[n], E = T[n], N = ht(O) && ht(E) ? O - E : 0, K = d && T.marker?.radius || 0;
|
|
3397
|
+
T.dist = Math.sqrt((D && D * D || 0) + N * N) - K, T.distX = ht(D) ? Math.abs(D) - K : Number.MAX_VALUE;
|
|
3398
3398
|
})(x, b);
|
|
3399
3399
|
let S = (x[v] || 0) - (b[v] || 0) + (d && b.marker?.radius || 0), w = S < 0 ? "left" : "right", A = S < 0 ? "right" : "left";
|
|
3400
3400
|
return m[w] && ([k, M] = p(b, g(x, m[w], f + 1, y), h)), m[A] && u(Math.sqrt(S * S), k[h], M) && (k = p(k, g(x, m[A], f + 1, y), h)[0]), k;
|
|
@@ -3416,18 +3416,18 @@ function Dp() {
|
|
|
3416
3416
|
p && (p.addClass("highcharts-tracker").on("mouseover", h).on("mouseout", (u) => {
|
|
3417
3417
|
o?.onTrackerMouseOut(u);
|
|
3418
3418
|
}), e.cursor && !r.styledMode && p.css({ cursor: e.cursor }), p.on("touchstart", h));
|
|
3419
|
-
})),
|
|
3419
|
+
})), it(this, "afterDrawTracker");
|
|
3420
3420
|
}
|
|
3421
3421
|
addPoint(t, e, i, s, r) {
|
|
3422
3422
|
let o, a, n = this.options, { chart: h, data: c, dataTable: d, xAxis: p } = this, u = p?.hasNames && p.names, g = n.data, x = this.getColumn("x");
|
|
3423
|
-
e =
|
|
3423
|
+
e = st(e, !0);
|
|
3424
3424
|
let m = { series: this };
|
|
3425
3425
|
this.pointClass.prototype.applyOptions.apply(m, [t]);
|
|
3426
3426
|
let f = m.x;
|
|
3427
3427
|
if (a = x.length, this.requireSorting && f < x[a - 1]) for (o = !0; a && x[a - 1] > f; ) a--;
|
|
3428
3428
|
d.setRow(m, a, !0, { addColumns: !1 }), u && m.name && (u[f] = m.name), g?.splice(a, 0, t), (o || this.processedData) && (this.data.splice(a, 0, null), this.processData()), n.legendType === "point" && this.generatePoints(), i && (c[0] && c[0].remove ? c[0].remove(!1) : ([c, g].filter(ht).forEach((y) => {
|
|
3429
3429
|
y.shift();
|
|
3430
|
-
}), d.deleteRows(0))), r !== !1 &&
|
|
3430
|
+
}), d.deleteRows(0))), r !== !1 && it(this, "addPoint", { point: m }), this.isDirty = !0, this.isDirtyData = !0, e && h.redraw(s);
|
|
3431
3431
|
}
|
|
3432
3432
|
removePoint(t, e, i) {
|
|
3433
3433
|
let s = this, { chart: r, data: o, points: a, dataTable: n } = s, h = o[t], c = function() {
|
|
@@ -3435,61 +3435,61 @@ function Dp() {
|
|
|
3435
3435
|
d.splice(t, 1);
|
|
3436
3436
|
}), n.deleteRows(t), h?.destroy(), s.isDirty = !0, s.isDirtyData = !0, e && r.redraw();
|
|
3437
3437
|
};
|
|
3438
|
-
hd(i, r), e =
|
|
3438
|
+
hd(i, r), e = st(e, !0), h ? h.firePointEvent("remove", null, c) : c();
|
|
3439
3439
|
}
|
|
3440
3440
|
remove(t, e, i, s) {
|
|
3441
3441
|
let r = this, o = r.chart;
|
|
3442
3442
|
function a() {
|
|
3443
|
-
r.destroy(s), o.isDirtyLegend = o.isDirtyBox = !0, o.linkSeries(s),
|
|
3443
|
+
r.destroy(s), o.isDirtyLegend = o.isDirtyBox = !0, o.linkSeries(s), st(t, !0) && o.redraw(e);
|
|
3444
3444
|
}
|
|
3445
|
-
i !== !1 ?
|
|
3445
|
+
i !== !1 ? it(r, "remove", null, a) : a();
|
|
3446
3446
|
}
|
|
3447
3447
|
update(t, e) {
|
|
3448
|
-
|
|
3449
|
-
let i = this, s = i.chart, r = i.userOptions, o = i.initialType || i.type, a = s.options.plotOptions, n =
|
|
3450
|
-
g = g || o, x ? (u.push.apply(u,
|
|
3448
|
+
it(this, "update", { options: t = md(t, this.userOptions) });
|
|
3449
|
+
let i = this, s = i.chart, r = i.userOptions, o = i.initialType || i.type, a = s.options.plotOptions, n = Re[o].prototype, h = i.finishedAnimating && { animation: !1 }, c = {}, d, p, u = Bt.keepProps.slice(), g = t.type || r.type || s.options.chart.type, x = !(this.hasDerivedData || g && g !== this.type || t.keys !== void 0 || t.pointStart !== void 0 || t.pointInterval !== void 0 || t.relativeXValue !== void 0 || t.joinBy || t.mapData || ["dataGrouping", "pointStart", "pointInterval", "pointIntervalUnit", "keys"].some((f) => i.hasOptionChanged(f)));
|
|
3450
|
+
g = g || o, x ? (u.push.apply(u, Bt.keepPropsForPoints), t.visible !== !1 && u.push("area", "graph"), i.parallelArrays.forEach(function(f) {
|
|
3451
3451
|
u.push(f + "Data");
|
|
3452
|
-
}), t.data && (t.dataSorting &&
|
|
3452
|
+
}), t.data && (t.dataSorting && We(i.options.dataSorting, t.dataSorting), this.setData(t.data, !1))) : this.dataTable.modified = this.dataTable, t = oi(r, { index: r.index === void 0 ? i.index : r.index, pointStart: a?.series?.pointStart ?? r.pointStart ?? i.getColumn("x")[0] }, !x && { data: i.options.data }, t, h), x && t.data && (t.data = i.options.data), (u = ["group", "markerGroup", "dataLabelsGroup", "transformGroup"].concat(u)).forEach(function(f) {
|
|
3453
3453
|
u[f] = i[f], delete i[f];
|
|
3454
3454
|
});
|
|
3455
3455
|
let m = !1;
|
|
3456
|
-
if (
|
|
3457
|
-
if (m = g !== i.type, i.remove(!1, !1, !1, !0), m) if (s.propFromSeries(), Object.setPrototypeOf) Object.setPrototypeOf(i,
|
|
3456
|
+
if (Re[g]) {
|
|
3457
|
+
if (m = g !== i.type, i.remove(!1, !1, !1, !0), m) if (s.propFromSeries(), Object.setPrototypeOf) Object.setPrototypeOf(i, Re[g].prototype);
|
|
3458
3458
|
else {
|
|
3459
3459
|
let f = Object.hasOwnProperty.call(i, "hcEvents") && i.hcEvents;
|
|
3460
3460
|
for (p in n) i[p] = void 0;
|
|
3461
|
-
|
|
3461
|
+
We(i, Re[g].prototype), f ? i.hcEvents = f : delete i.hcEvents;
|
|
3462
3462
|
}
|
|
3463
3463
|
} else Vi(17, !0, s, { missingModuleFor: g });
|
|
3464
3464
|
if (u.forEach(function(f) {
|
|
3465
3465
|
i[f] = u[f];
|
|
3466
3466
|
}), i.init(s, t), x && this.points) for (let f of ((d = i.options).visible === !1 ? (c.graphic = 1, c.dataLabel = 1) : (this.hasMarkerChanged(d, r) && (c.graphic = 1), i.hasDataLabels?.() || (c.dataLabel = 1)), this.points)) f?.series && (f.resolveColor(), Object.keys(c).length && f.destroyElements(c), d.showInLegend === !1 && f.legendItem && s.legend.destroyItem(f));
|
|
3467
|
-
i.initialType = o, s.linkSeries(), s.setSortedData(), m && i.linkedSeries.length && (i.isDirtyData = !0),
|
|
3467
|
+
i.initialType = o, s.linkSeries(), s.setSortedData(), m && i.linkedSeries.length && (i.isDirtyData = !0), it(this, "afterUpdate"), st(e, !0) && s.redraw(!!x && void 0);
|
|
3468
3468
|
}
|
|
3469
3469
|
setName(t) {
|
|
3470
3470
|
this.name = this.options.name = this.userOptions.name = t, this.chart.isDirtyLegend = !0;
|
|
3471
3471
|
}
|
|
3472
3472
|
hasOptionChanged(t) {
|
|
3473
|
-
let e = this.chart, i = this.options[t], s = e.options.plotOptions, r = this.userOptions[t], o =
|
|
3474
|
-
return r && !ht(o) ? i !== r : i !==
|
|
3473
|
+
let e = this.chart, i = this.options[t], s = e.options.plotOptions, r = this.userOptions[t], o = st(s?.[this.type]?.[t], s?.series?.[t]);
|
|
3474
|
+
return r && !ht(o) ? i !== r : i !== st(o, i);
|
|
3475
3475
|
}
|
|
3476
3476
|
onMouseOver() {
|
|
3477
3477
|
let t = this.chart, e = t.hoverSeries;
|
|
3478
|
-
t.pointer?.setHoverChartIndex(), e && e !== this && e.onMouseOut(), this.options.events.mouseOver &&
|
|
3478
|
+
t.pointer?.setHoverChartIndex(), e && e !== this && e.onMouseOut(), this.options.events.mouseOver && it(this, "mouseOver"), this.setState("hover"), t.hoverSeries = this;
|
|
3479
3479
|
}
|
|
3480
3480
|
onMouseOut() {
|
|
3481
3481
|
let t = this.options, e = this.chart, i = e.tooltip, s = e.hoverPoint;
|
|
3482
|
-
e.hoverSeries = null, s && s.onMouseOut(), this && t.events.mouseOut &&
|
|
3482
|
+
e.hoverSeries = null, s && s.onMouseOut(), this && t.events.mouseOut && it(this, "mouseOut"), i && !this.stickyTracking && (!i.shared || this.noSharedTooltip) && i.hide(), e.series.forEach(function(r) {
|
|
3483
3483
|
r.setState("", !0);
|
|
3484
3484
|
});
|
|
3485
3485
|
}
|
|
3486
3486
|
setState(t, e) {
|
|
3487
|
-
let i = this, s = i.options, r = i.graph, o = s.inactiveOtherPoints, a = s.states, n =
|
|
3487
|
+
let i = this, s = i.options, r = i.graph, o = s.inactiveOtherPoints, a = s.states, n = st(a[t || "normal"] && a[t || "normal"].animation, i.chart.options.chart.animation), h = s.lineWidth, c = s.opacity;
|
|
3488
3488
|
if (t = t || "", i.state !== t && ([i.group, i.markerGroup, i.dataLabelsGroup].forEach(function(d) {
|
|
3489
3489
|
d && (i.state && d.removeClass("highcharts-series-" + i.state), t && d.addClass("highcharts-series-" + t));
|
|
3490
3490
|
}), i.state = t, !i.chart.styledMode)) {
|
|
3491
3491
|
if (a[t] && a[t].enabled === !1) return;
|
|
3492
|
-
if (t && (h = a[t].lineWidth || h + (a[t].lineWidthPlus || 0), c =
|
|
3492
|
+
if (t && (h = a[t].lineWidth || h + (a[t].lineWidthPlus || 0), c = st(a[t].opacity, c)), r && !r.dashstyle && ut(h)) for (let d of [r, ...this.zones.map((p) => p.graph)]) d?.animate({ "stroke-width": h }, n);
|
|
3493
3493
|
o || [i.group, i.markerGroup, i.dataLabelsGroup, i.labelBySeries].forEach(function(d) {
|
|
3494
3494
|
d && d.animate({ opacity: c }, n);
|
|
3495
3495
|
});
|
|
@@ -3511,7 +3511,7 @@ function Dp() {
|
|
|
3511
3511
|
n.options.stacking && n.visible && (n.isDirty = !0);
|
|
3512
3512
|
}), i.linkedSeries.forEach((n) => {
|
|
3513
3513
|
n.setVisible(t, !1);
|
|
3514
|
-
}), r && (s.isDirtyBox = !0),
|
|
3514
|
+
}), r && (s.isDirtyBox = !0), it(i, a), e !== !1 && s.redraw();
|
|
3515
3515
|
}
|
|
3516
3516
|
show() {
|
|
3517
3517
|
this.setVisible(!0);
|
|
@@ -3520,7 +3520,7 @@ function Dp() {
|
|
|
3520
3520
|
this.setVisible(!1);
|
|
3521
3521
|
}
|
|
3522
3522
|
select(t) {
|
|
3523
|
-
this.selected = t = this.options.selected = t === void 0 ? !this.selected : t, this.checkbox && (this.checkbox.checked = t),
|
|
3523
|
+
this.selected = t = this.options.selected = t === void 0 ? !this.selected : t, this.checkbox && (this.checkbox.checked = t), it(this, t ? "select" : "unselect");
|
|
3524
3524
|
}
|
|
3525
3525
|
shouldShowTooltip(t, e, i = {}) {
|
|
3526
3526
|
return i.series = this, i.visiblePlotOnly = !0, this.chart.isInsidePlot(t, e, i);
|
|
@@ -3529,11 +3529,11 @@ function Dp() {
|
|
|
3529
3529
|
qo[this.options.legendSymbol || "rectangle"]?.call(this, t, e);
|
|
3530
3530
|
}
|
|
3531
3531
|
}
|
|
3532
|
-
|
|
3532
|
+
Bt.defaultOptions = { lineWidth: 2, allowPointSelect: !1, crisp: !0, showCheckbox: !1, animation: { duration: 1e3 }, enableMouseTracking: !0, events: {}, marker: { enabledThreshold: 2, lineColor: "#ffffff", lineWidth: 0, radius: 4, states: { normal: { animation: !0 }, hover: { animation: { duration: 150 }, enabled: !0, radiusPlus: 2, lineWidthPlus: 1 }, select: { fillColor: "#cccccc", lineColor: "#000000", lineWidth: 2 } } }, point: { events: {} }, dataLabels: { animation: {}, align: "center", borderWidth: 0, defer: !0, formatter: function() {
|
|
3533
3533
|
let { numberFormatter: l } = this.series.chart;
|
|
3534
3534
|
return typeof this.y != "number" ? "" : l(this.y, -1);
|
|
3535
|
-
}, padding: 5, style: { fontSize: "0.7em", fontWeight: "bold", color: "contrast", textOutline: "1px contrast" }, verticalAlign: "bottom", x: 0, y: 0 }, cropThreshold: 300, opacity: 1, pointRange: 0, softThreshold: !0, states: { normal: { animation: !0 }, hover: { animation: { duration: 150 }, lineWidthPlus: 1, marker: {}, halo: { size: 10, opacity: 0.25 } }, select: { animation: { duration: 0 } }, inactive: { animation: { duration: 150 }, opacity: 0.2 } }, stickyTracking: !0, turboThreshold: 1e3, findNearestPointBy: "x" },
|
|
3536
|
-
let
|
|
3535
|
+
}, padding: 5, style: { fontSize: "0.7em", fontWeight: "bold", color: "contrast", textOutline: "1px contrast" }, verticalAlign: "bottom", x: 0, y: 0 }, cropThreshold: 300, opacity: 1, pointRange: 0, softThreshold: !0, states: { normal: { animation: !0 }, hover: { animation: { duration: 150 }, lineWidthPlus: 1, marker: {}, halo: { size: 10, opacity: 0.25 } }, select: { animation: { duration: 0 } }, inactive: { animation: { duration: 150 }, opacity: 0.2 } }, stickyTracking: !0, turboThreshold: 1e3, findNearestPointBy: "x" }, Bt.types = ot.seriesTypes, Bt.registerType = ot.registerSeriesType, Bt.keepProps = ["colorIndex", "eventOptions", "navigatorSeries", "symbolIndex", "baseSeries"], Bt.keepPropsForPoints = ["data", "isDirtyData", "isDirtyCanvas", "points", "dataTable", "processedData", "xIncrement", "cropped", "_hasPointMarkers", "hasDataLabels", "nodes", "layout", "level", "mapMap", "mapData", "minY", "maxY", "minX", "maxX", "transformGroups"], We(Bt.prototype, { axisTypes: ["xAxis", "yAxis"], coll: "series", colorCounter: 0, directTouch: !1, invertible: !0, isCartesian: !0, kdAxisArray: ["clientX", "plotY"], parallelArrays: ["x", "y"], pointClass: ee, requireSorting: !0, sorted: !0 }), ot.series = Bt;
|
|
3536
|
+
let At = Bt, { animObject: kd, setAnimation: wd } = ft, { registerEventOptions: aa } = Ei, { composed: Md, marginNames: na } = C, { distribute: Sd } = ki, { format: Td } = Et, { addEvent: $i, createElement: Ad, css: Cd, defined: Js, discardElement: Pd, find: Od, fireEvent: Zt, isNumber: la, merge: xe, pick: Nt, pushUnique: Ld, relativeLength: Ed, stableSort: Id, syncTimeout: Dd } = B;
|
|
3537
3537
|
class Qs {
|
|
3538
3538
|
constructor(t, e) {
|
|
3539
3539
|
this.allItems = [], this.initialItemY = 0, this.itemHeight = 0, this.itemMarginBottom = 0, this.itemMarginTop = 0, this.itemX = 0, this.itemY = 0, this.lastItemY = 0, this.lastLineHeight = 0, this.legendHeight = 0, this.legendWidth = 0, this.maxItemWidth = 0, this.maxLegendWidth = 0, this.offsetWidth = 0, this.padding = 0, this.pages = [], this.symbolHeight = 0, this.symbolWidth = 0, this.titleHeight = 0, this.totalItemWidth = 0, this.widthOption = 0, this.chart = t, this.setOptions(e), e.enabled && (this.render(), aa(this, e), $i(this.chart, "endResize", function() {
|
|
@@ -3543,20 +3543,20 @@ function Dp() {
|
|
|
3543
3543
|
});
|
|
3544
3544
|
}
|
|
3545
3545
|
setOptions(t) {
|
|
3546
|
-
let e =
|
|
3547
|
-
this.options = t, this.chart.styledMode || (this.itemStyle = t.itemStyle, this.itemHiddenStyle =
|
|
3546
|
+
let e = Nt(t.padding, 8);
|
|
3547
|
+
this.options = t, this.chart.styledMode || (this.itemStyle = t.itemStyle, this.itemHiddenStyle = xe(this.itemStyle, t.itemHiddenStyle)), this.itemMarginTop = t.itemMarginTop, this.itemMarginBottom = t.itemMarginBottom, this.padding = e, this.initialItemY = e - 5, this.symbolWidth = Nt(t.symbolWidth, 16), this.pages = [], this.proximate = t.layout === "proximate" && !this.chart.inverted, this.baseline = void 0;
|
|
3548
3548
|
}
|
|
3549
3549
|
update(t, e) {
|
|
3550
3550
|
let i = this.chart;
|
|
3551
|
-
this.setOptions(
|
|
3551
|
+
this.setOptions(xe(!0, this.options, t)), "events" in this.options && aa(this, this.options), this.destroy(), i.isDirtyLegend = i.isDirtyBox = !0, Nt(e, !0) && i.redraw(), Zt(this, "afterUpdate", { redraw: e });
|
|
3552
3552
|
}
|
|
3553
3553
|
colorizeItem(t, e) {
|
|
3554
3554
|
let i = t.color, { area: s, group: r, label: o, line: a, symbol: n } = t.legendItem || {};
|
|
3555
|
-
if ((t instanceof
|
|
3555
|
+
if ((t instanceof At || t instanceof ee) && (t.color = t.options?.legendSymbolColor || i), r?.[e ? "removeClass" : "addClass"]("highcharts-legend-item-hidden"), !this.chart.styledMode) {
|
|
3556
3556
|
let { itemHiddenStyle: h = {} } = this, c = h.color, { fillColor: d, fillOpacity: p, lineColor: u, marker: g } = t.options, x = (m) => (!e && (m.fill && (m.fill = c), m.stroke && (m.stroke = c)), m);
|
|
3557
|
-
o?.css(
|
|
3557
|
+
o?.css(xe(e ? this.itemStyle : h)), a?.attr(x({ stroke: u || t.color })), n && n.attr(x(g && n.isMarker ? t.pointAttribs() : { fill: t.color })), s?.attr(x({ fill: d || t.color, "fill-opacity": d ? 1 : p ?? 0.75 }));
|
|
3558
3558
|
}
|
|
3559
|
-
t.color = i,
|
|
3559
|
+
t.color = i, Zt(this, "afterColorizeItem", { item: t, visible: e });
|
|
3560
3560
|
}
|
|
3561
3561
|
positionItems() {
|
|
3562
3562
|
this.allItems.forEach(this.positionItem, this), this.chart.isResizing || this.positionCheckboxes();
|
|
@@ -3566,7 +3566,7 @@ function Dp() {
|
|
|
3566
3566
|
if (e?.element) {
|
|
3567
3567
|
let h = { translateX: a ? i : this.legendWidth - i - 2 * o - 4, translateY: s };
|
|
3568
3568
|
e[Js(e.translateY) ? "animate" : "attr"](h, void 0, () => {
|
|
3569
|
-
|
|
3569
|
+
Zt(this, "afterPositionItem", { item: t });
|
|
3570
3570
|
});
|
|
3571
3571
|
}
|
|
3572
3572
|
n && (n.x = i, n.y = s);
|
|
@@ -3597,21 +3597,21 @@ function Dp() {
|
|
|
3597
3597
|
t.legendItem.label.attr({ text: e.labelFormat ? Td(e.labelFormat, t, this.chart) : e.labelFormatter.call(t) });
|
|
3598
3598
|
}
|
|
3599
3599
|
renderItem(t) {
|
|
3600
|
-
let e = t.legendItem = t.legendItem || {}, i = this.chart, s = i.renderer, r = this.options, o = r.layout === "horizontal", a = this.symbolWidth, n = r.symbolPadding || 0, h = this.itemStyle, c = this.itemHiddenStyle, d = o ?
|
|
3601
|
-
!b && (e.group = s.g("legend-item").addClass("highcharts-" + g.type + "-series highcharts-color-" + t.colorIndex + (y ? " " + y : "") + (u ? " highcharts-series-" + t.index : "")).attr({ zIndex: 1 }).add(this.scrollGroup), e.label = b = s.text("", p ? a + n : -n, this.baseline || 0, f), i.styledMode || b.css(
|
|
3600
|
+
let e = t.legendItem = t.legendItem || {}, i = this.chart, s = i.renderer, r = this.options, o = r.layout === "horizontal", a = this.symbolWidth, n = r.symbolPadding || 0, h = this.itemStyle, c = this.itemHiddenStyle, d = o ? Nt(r.itemDistance, 20) : 0, p = !r.rtl, u = !t.series, g = !u && t.series.drawLegendSymbol ? t.series : t, x = g.options, m = !!this.createCheckboxForItem && x && x.showCheckbox, f = r.useHTML, y = t.options.className, b = e.label, v = a + n + d + 20 * !!m;
|
|
3601
|
+
!b && (e.group = s.g("legend-item").addClass("highcharts-" + g.type + "-series highcharts-color-" + t.colorIndex + (y ? " " + y : "") + (u ? " highcharts-series-" + t.index : "")).attr({ zIndex: 1 }).add(this.scrollGroup), e.label = b = s.text("", p ? a + n : -n, this.baseline || 0, f), i.styledMode || b.css(xe(t.visible ? h : c)), b.attr({ align: p ? "left" : "right", zIndex: 2 }).add(e.group), !this.baseline && (this.fontMetrics = s.fontMetrics(b), this.baseline = this.fontMetrics.f + 3 + this.itemMarginTop, b.attr("y", this.baseline), this.symbolHeight = Nt(r.symbolHeight, this.fontMetrics.f), r.squareSymbol && (this.symbolWidth = Nt(r.symbolWidth, Math.max(this.symbolHeight, 16)), v = this.symbolWidth + n + d + 20 * !!m, p && b.attr("x", this.symbolWidth + n))), g.drawLegendSymbol(this, t), this.setItemEvents && this.setItemEvents(t, b, f)), m && !t.checkbox && this.createCheckboxForItem && this.createCheckboxForItem(t), this.colorizeItem(t, t.visible), (i.styledMode || !h.width) && b.css({ width: (r.itemWidth || this.widthOption || i.spacingBox.width) - v + "px" }), this.setText(t);
|
|
3602
3602
|
let k = b.getBBox(), M = this.fontMetrics?.h || 0;
|
|
3603
3603
|
t.itemWidth = t.checkboxOffset = r.itemWidth || e.labelWidth || k.width + v, this.maxItemWidth = Math.max(this.maxItemWidth, t.itemWidth), this.totalItemWidth += t.itemWidth, this.itemHeight = t.itemHeight = Math.round(e.labelHeight || (k.height > 1.5 * M ? k.height : M));
|
|
3604
3604
|
}
|
|
3605
3605
|
layoutItem(t) {
|
|
3606
|
-
let e = this.options, i = this.padding, s = e.layout === "horizontal", r = t.itemHeight, o = this.itemMarginBottom, a = this.itemMarginTop, n = s ?
|
|
3606
|
+
let e = this.options, i = this.padding, s = e.layout === "horizontal", r = t.itemHeight, o = this.itemMarginBottom, a = this.itemMarginTop, n = s ? Nt(e.itemDistance, 20) : 0, h = this.maxLegendWidth, c = e.alignColumns && this.totalItemWidth > h ? this.maxItemWidth : t.itemWidth, d = t.legendItem || {};
|
|
3607
3607
|
s && this.itemX - i + c > h && (this.itemX = i, this.lastLineHeight && (this.itemY += a + this.lastLineHeight + o), this.lastLineHeight = 0), this.lastItemY = a + this.itemY + o, this.lastLineHeight = Math.max(r, this.lastLineHeight), d.x = this.itemX, d.y = this.itemY, s ? this.itemX += c : (this.itemY += a + r + o, this.lastLineHeight = r), this.offsetWidth = this.widthOption || Math.max((s ? this.itemX - i - (t.checkbox ? 0 : n) : c) + i, this.offsetWidth);
|
|
3608
3608
|
}
|
|
3609
3609
|
getAllItems() {
|
|
3610
3610
|
let t = [];
|
|
3611
3611
|
return this.chart.series.forEach(function(e) {
|
|
3612
3612
|
let i = e?.options;
|
|
3613
|
-
e &&
|
|
3614
|
-
}),
|
|
3613
|
+
e && Nt(i.showInLegend, !Js(i.linkedTo) && void 0, !0) && (t = t.concat(e.legendItem?.labels || (i.legendType === "point" ? e.data : e)));
|
|
3614
|
+
}), Zt(this, "afterGetAllItems", { allItems: t }), t;
|
|
3615
3615
|
}
|
|
3616
3616
|
getAlignment() {
|
|
3617
3617
|
let t = this.options;
|
|
@@ -3634,19 +3634,19 @@ function Dp() {
|
|
|
3634
3634
|
}
|
|
3635
3635
|
render() {
|
|
3636
3636
|
let t = this.chart, e = t.renderer, i = this.options, s = this.padding, r = this.getAllItems(), o, a, n, h = this.group, c, d = this.box;
|
|
3637
|
-
this.itemX = s, this.itemY = this.initialItemY, this.offsetWidth = 0, this.lastItemY = 0, this.widthOption = Ed(i.width, t.spacingBox.width - s), c = t.spacingBox.width - 2 * s - i.x, ["rm", "lm"].indexOf(this.getAlignment().substring(0, 2)) > -1 && (c /= 2), this.maxLegendWidth = this.widthOption || c, h || (this.group = h = e.g("legend").addClass(i.className || "").attr({ zIndex: 7 }).add(), this.contentGroup = e.g().attr({ zIndex: 1 }).add(h), this.scrollGroup = e.g().add(this.contentGroup)), this.renderTitle(), Id(r, (p, u) => (p.options?.legendIndex || 0) - (u.options?.legendIndex || 0)), i.reversed && r.reverse(), this.allItems = r, this.display = o = !!r.length, this.lastLineHeight = 0, this.maxItemWidth = 0, this.totalItemWidth = 0, this.itemHeight = 0, r.forEach(this.renderItem, this), r.forEach(this.layoutItem, this), a = (this.widthOption || this.offsetWidth) + s, n = this.lastItemY + this.lastLineHeight + this.titleHeight, n = this.handleOverflow(n) + s, d || (this.box = d = e.rect().addClass("highcharts-legend-box").attr({ r: i.borderRadius }).add(h)), t.styledMode || d.attr({ stroke: i.borderColor, "stroke-width": i.borderWidth || 0, fill: i.backgroundColor || "none" }).shadow(i.shadow), a > 0 && n > 0 && d[d.placed ? "animate" : "attr"](d.crisp.call({}, { x: 0, y: 0, width: a, height: n }, d.strokeWidth())), h[o ? "show" : "hide"](), t.styledMode && h.getStyle("display") === "none" && (a = n = 0), this.legendWidth = a, this.legendHeight = n, o && this.align(), this.proximate || this.positionItems(),
|
|
3637
|
+
this.itemX = s, this.itemY = this.initialItemY, this.offsetWidth = 0, this.lastItemY = 0, this.widthOption = Ed(i.width, t.spacingBox.width - s), c = t.spacingBox.width - 2 * s - i.x, ["rm", "lm"].indexOf(this.getAlignment().substring(0, 2)) > -1 && (c /= 2), this.maxLegendWidth = this.widthOption || c, h || (this.group = h = e.g("legend").addClass(i.className || "").attr({ zIndex: 7 }).add(), this.contentGroup = e.g().attr({ zIndex: 1 }).add(h), this.scrollGroup = e.g().add(this.contentGroup)), this.renderTitle(), Id(r, (p, u) => (p.options?.legendIndex || 0) - (u.options?.legendIndex || 0)), i.reversed && r.reverse(), this.allItems = r, this.display = o = !!r.length, this.lastLineHeight = 0, this.maxItemWidth = 0, this.totalItemWidth = 0, this.itemHeight = 0, r.forEach(this.renderItem, this), r.forEach(this.layoutItem, this), a = (this.widthOption || this.offsetWidth) + s, n = this.lastItemY + this.lastLineHeight + this.titleHeight, n = this.handleOverflow(n) + s, d || (this.box = d = e.rect().addClass("highcharts-legend-box").attr({ r: i.borderRadius }).add(h)), t.styledMode || d.attr({ stroke: i.borderColor, "stroke-width": i.borderWidth || 0, fill: i.backgroundColor || "none" }).shadow(i.shadow), a > 0 && n > 0 && d[d.placed ? "animate" : "attr"](d.crisp.call({}, { x: 0, y: 0, width: a, height: n }, d.strokeWidth())), h[o ? "show" : "hide"](), t.styledMode && h.getStyle("display") === "none" && (a = n = 0), this.legendWidth = a, this.legendHeight = n, o && this.align(), this.proximate || this.positionItems(), Zt(this, "afterRender");
|
|
3638
3638
|
}
|
|
3639
3639
|
align(t = this.chart.spacingBox) {
|
|
3640
3640
|
let e = this.chart, i = this.options, s = t.y;
|
|
3641
|
-
/(lth|ct|rth)/.test(this.getAlignment()) && e.titleOffset[0] > 0 ? s += e.titleOffset[0] : /(lbh|cb|rbh)/.test(this.getAlignment()) && e.titleOffset[2] > 0 && (s -= e.titleOffset[2]), s !== t.y && (t =
|
|
3641
|
+
/(lth|ct|rth)/.test(this.getAlignment()) && e.titleOffset[0] > 0 ? s += e.titleOffset[0] : /(lbh|cb|rbh)/.test(this.getAlignment()) && e.titleOffset[2] > 0 && (s -= e.titleOffset[2]), s !== t.y && (t = xe(t, { y: s })), e.hasRendered || (this.group.placed = !1), this.group.align(xe(i, { width: this.legendWidth, height: this.legendHeight, verticalAlign: this.proximate ? "top" : i.verticalAlign }), !0, t);
|
|
3642
3642
|
}
|
|
3643
3643
|
handleOverflow(t) {
|
|
3644
|
-
let e = this, i = this.chart, s = i.renderer, r = this.options, o = r.y, a = r.verticalAlign === "top", n = this.padding, h = r.maxHeight, c = r.navigation, d =
|
|
3644
|
+
let e = this, i = this.chart, s = i.renderer, r = this.options, o = r.y, a = r.verticalAlign === "top", n = this.padding, h = r.maxHeight, c = r.navigation, d = Nt(c.animation, !0), p = c.arrowSize || 12, u = this.pages, g = this.allItems, x = function(w) {
|
|
3645
3645
|
typeof w == "number" ? S.attr({ height: w }) : S && (e.clipRect = S.destroy(), e.contentGroup.clip()), e.contentGroup.div && (e.contentGroup.div.style.clip = w ? "rect(" + n + "px,9999px," + (n + w) + "px,0)" : "auto");
|
|
3646
3646
|
}, m = function(w) {
|
|
3647
3647
|
return e[w] = s.circle(0, 0, 1.3 * p).translate(p / 2, p / 2).add(M), i.styledMode || e[w].attr("fill", "rgba(0,0,0,0.0001)"), e[w];
|
|
3648
3648
|
}, f, y, b, v, k = i.spacingBox.height + (a ? -o : o) - n, M = this.nav, S = this.clipRect;
|
|
3649
|
-
return r.layout !== "horizontal" || r.verticalAlign === "middle" || r.floating || (k /= 2), h && (k = Math.min(k, h)), u.length = 0, t && k > 0 && t > k && c.enabled !== !1 ? (this.clipHeight = f = Math.max(k - 20 - this.titleHeight - n, 0), this.currentPage =
|
|
3649
|
+
return r.layout !== "horizontal" || r.verticalAlign === "middle" || r.floating || (k /= 2), h && (k = Math.min(k, h)), u.length = 0, t && k > 0 && t > k && c.enabled !== !1 ? (this.clipHeight = f = Math.max(k - 20 - this.titleHeight - n, 0), this.currentPage = Nt(this.currentPage, 1), this.fullHeight = t, g.forEach((w, A) => {
|
|
3650
3650
|
let P = (b = w.legendItem || {}).y || 0, T = Math.round(b.label.getBBox().height), L = u.length;
|
|
3651
3651
|
(!L || P - u[L - 1] > f && (y || P) !== u[L - 1]) && (u.push(y || P), L++), b.pageIx = L - 1, y && v && (v.pageIx = L - 1), A === g.length - 1 && P + T - u[L - 1] > f && P > u[L - 1] && (u.push(P), b.pageIx = L), P !== y && (y = P), v = b;
|
|
3652
3652
|
}), S || (S = e.clipRect = s.clipRect(0, n - 2, 9999, 0), e.contentGroup.clip(S)), x(f), M || (this.nav = M = s.g().attr({ zIndex: 1 }).add(this.group), this.up = s.symbol("triangle", 0, 0, p, p).add(M), m("upTracker").on("click", function() {
|
|
@@ -3662,11 +3662,11 @@ function Dp() {
|
|
|
3662
3662
|
}), n.attr({ text: c + "/" + r }), [this.down, this.downTracker].forEach(function(d) {
|
|
3663
3663
|
d.attr({ x: 18 + this.pager.getBBox().width, class: c === r ? "highcharts-legend-nav-inactive" : "highcharts-legend-nav-active" });
|
|
3664
3664
|
}, this), i.styledMode || (this.up.attr({ fill: c === 1 ? a.inactiveColor : a.activeColor }), this.upTracker.css({ cursor: c === 1 ? "default" : "pointer" }), this.down.attr({ fill: c === r ? a.inactiveColor : a.activeColor }), this.downTracker.css({ cursor: c === r ? "default" : "pointer" })), this.scrollOffset = -s[c - 1] + this.initialItemY, this.scrollGroup.animate({ translateY: this.scrollOffset }), this.currentPage = c, this.positionCheckboxes(), Dd(() => {
|
|
3665
|
-
|
|
3666
|
-
}, kd(
|
|
3665
|
+
Zt(this, "afterScroll", { currentPage: c });
|
|
3666
|
+
}, kd(Nt(e, i.renderer.globalAnimation, !0)).duration));
|
|
3667
3667
|
}
|
|
3668
3668
|
setItemEvents(t, e, i) {
|
|
3669
|
-
let s = this, r = t.legendItem || {}, o = s.chart.renderer.boxWrapper, a = t instanceof
|
|
3669
|
+
let s = this, r = t.legendItem || {}, o = s.chart.renderer.boxWrapper, a = t instanceof ee, n = t instanceof At, h = "highcharts-legend-" + (a ? "point" : "series") + "-active", c = s.chart.styledMode, d = i ? [e, r.symbol] : [r.group], p = (u) => {
|
|
3670
3670
|
s.allItems.forEach((g) => {
|
|
3671
3671
|
t !== g && [g].concat(g.linkedSeries || []).forEach((x) => {
|
|
3672
3672
|
x.setState(u, !a);
|
|
@@ -3676,18 +3676,18 @@ function Dp() {
|
|
|
3676
3676
|
for (let u of d) u && u.on("mouseover", function() {
|
|
3677
3677
|
t.visible && p("inactive"), t.setState("hover"), t.visible && o.addClass(h), c || e.css(s.options.itemHoverStyle);
|
|
3678
3678
|
}).on("mouseout", function() {
|
|
3679
|
-
s.chart.styledMode || e.css(
|
|
3679
|
+
s.chart.styledMode || e.css(xe(t.visible ? s.itemStyle : s.itemHiddenStyle)), p(""), o.removeClass(h), t.setState();
|
|
3680
3680
|
}).on("click", function(g) {
|
|
3681
3681
|
let x = function() {
|
|
3682
3682
|
t.setVisible && t.setVisible(), p(t.visible ? "inactive" : "");
|
|
3683
3683
|
};
|
|
3684
|
-
o.removeClass(h),
|
|
3684
|
+
o.removeClass(h), Zt(s, "itemClick", { browserEvent: g, legendItem: t }, x), a ? t.firePointEvent("legendItemClick", { browserEvent: g }) : n && Zt(t, "legendItemClick", { browserEvent: g });
|
|
3685
3685
|
});
|
|
3686
3686
|
}
|
|
3687
3687
|
createCheckboxForItem(t) {
|
|
3688
3688
|
t.checkbox = Ad("input", { type: "checkbox", className: "highcharts-legend-checkbox", checked: t.selected, defaultChecked: t.selected }, this.options.itemCheckboxStyle, this.chart.container), $i(t.checkbox, "click", function(e) {
|
|
3689
3689
|
let i = e.target;
|
|
3690
|
-
|
|
3690
|
+
Zt(t.series || t, "checkboxClick", { checked: i.checked, item: t }, function() {
|
|
3691
3691
|
t.select();
|
|
3692
3692
|
});
|
|
3693
3693
|
});
|
|
@@ -3700,10 +3700,10 @@ function Dp() {
|
|
|
3700
3700
|
});
|
|
3701
3701
|
};
|
|
3702
3702
|
})(Qs || (Qs = {}));
|
|
3703
|
-
let ha = Qs, { animate: tr, animObject: Bd, setAnimation: er } =
|
|
3704
|
-
class
|
|
3703
|
+
let ha = Qs, { animate: tr, animObject: Bd, setAnimation: er } = ft, { defaultOptions: ir } = Lt, { numberFormat: Nd } = Et, { registerEventOptions: da } = Ei, { charts: ye, doc: ai, marginNames: ca, svg: zd, win: pa } = C, { seriesTypes: sr } = ot, { addEvent: rr, attr: ua, createElement: or, css: zt, defined: se, diffObjects: ga, discardElement: Rd, erase: Wd, error: ar, extend: re, find: nr, fireEvent: Y, getAlignFactor: Xd, getStyle: lr, isArray: Hd, isNumber: Xe, isObject: Fd, isString: Zi, merge: Ut, objectEach: hr, pick: vt, pInt: Gd, relativeLength: fa, removeEvent: ma, splat: qi, syncTimeout: Yd, uniqueKey: jd } = B;
|
|
3704
|
+
class oe {
|
|
3705
3705
|
static chart(t, e, i) {
|
|
3706
|
-
return new
|
|
3706
|
+
return new oe(t, e, i);
|
|
3707
3707
|
}
|
|
3708
3708
|
constructor(t, e, i) {
|
|
3709
3709
|
this.sharedClips = {};
|
|
@@ -3712,12 +3712,12 @@ function Dp() {
|
|
|
3712
3712
|
}
|
|
3713
3713
|
setZoomOptions() {
|
|
3714
3714
|
let t = this.options.chart, e = t.zooming;
|
|
3715
|
-
this.zooming = { ...e, type:
|
|
3715
|
+
this.zooming = { ...e, type: vt(t.zoomType, e.type), key: vt(t.zoomKey, e.key), pinchType: vt(t.pinchType, e.pinchType), singleTouch: vt(t.zoomBySingleTouch, e.singleTouch, !1), resetButton: Ut(e.resetButton, t.resetZoomButton) };
|
|
3716
3716
|
}
|
|
3717
3717
|
init(t, e) {
|
|
3718
3718
|
Y(this, "init", { args: arguments }, function() {
|
|
3719
|
-
let i =
|
|
3720
|
-
this.userOptions =
|
|
3719
|
+
let i = Ut(ir, t), s = i.chart, r = this.renderTo || s.renderTo;
|
|
3720
|
+
this.userOptions = re({}, t), (this.renderTo = Zi(r) ? ai.getElementById(r) : r) || ar(13, !0, this), this.margin = [], this.spacing = [], this.labelCollectors = [], this.callback = e, this.isResizing = 0, this.options = i, this.axes = [], this.series = [], this.locale = i.lang.locale ?? this.renderTo.closest("[lang]")?.lang, this.time = new ms(re(i.time || {}, { locale: this.locale }), i.lang), i.time = this.time.options, this.numberFormatter = (s.numberFormatter || Nd).bind(this), this.styledMode = s.styledMode, this.hasCartesianSeries = s.showAxes, this.index = ye.length, ye.push(this), C.chartCount++, da(this, s), this.xAxis = [], this.yAxis = [], this.pointCount = this.colorCounter = this.symbolCounter = 0, this.setZoomOptions(), Y(this, "afterInit"), this.firstRender();
|
|
3721
3721
|
});
|
|
3722
3722
|
}
|
|
3723
3723
|
initSeries(t) {
|
|
@@ -3740,11 +3740,11 @@ function Dp() {
|
|
|
3740
3740
|
let i = this[t], s = this.options[t] = qi(this.options[t]).slice(), r = this.userOptions[t] = this.userOptions[t] ? qi(this.userOptions[t]).slice() : [];
|
|
3741
3741
|
if (this.hasRendered && (s.splice(e), r.splice(e)), i) for (let o = e, a = i.length; o < a; ++o) {
|
|
3742
3742
|
let n = i[o];
|
|
3743
|
-
n && (n.index = o, n instanceof
|
|
3743
|
+
n && (n.index = o, n instanceof At && (n.name = n.getName()), n.options.isInternal || (s[o] = n.options, r[o] = n.userOptions));
|
|
3744
3744
|
}
|
|
3745
3745
|
}
|
|
3746
3746
|
getClipBox(t, e) {
|
|
3747
|
-
let i = this.inverted, { xAxis: s, yAxis: r } = t || {}, { x: o, y: a, width: n, height: h } =
|
|
3747
|
+
let i = this.inverted, { xAxis: s, yAxis: r } = t || {}, { x: o, y: a, width: n, height: h } = Ut(this.clipBox);
|
|
3748
3748
|
return t && (s && s.len !== this.plotSizeX && (n = s.len), r && r.len !== this.plotSizeY && (h = r.len), i && !t.invertible && ([n, h] = [h, n])), e && (o += (i ? r : s)?.pos ?? this.plotLeft, a += (i ? s : r)?.pos ?? this.plotTop), { x: o, y: a, width: n, height: h };
|
|
3749
3749
|
}
|
|
3750
3750
|
isInsidePlot(t, e, i = {}) {
|
|
@@ -3776,7 +3776,7 @@ function Dp() {
|
|
|
3776
3776
|
}), e.forEach(function(m) {
|
|
3777
3777
|
let f = m.min + "," + m.max;
|
|
3778
3778
|
m.extKey !== f && (m.extKey = f, h.push(function() {
|
|
3779
|
-
Y(m, "afterSetExtremes",
|
|
3779
|
+
Y(m, "afterSetExtremes", re(m.eventArgs, m.getExtremes())), delete m.eventArgs;
|
|
3780
3780
|
})), (u || d) && m.redraw();
|
|
3781
3781
|
}), u && this.drawChartBox(), Y(this, "predraw"), i.forEach(function(m) {
|
|
3782
3782
|
(u || m.isDirty) && m.visible && m.redraw(), m.isDirtyData = !1;
|
|
@@ -3795,12 +3795,12 @@ function Dp() {
|
|
|
3795
3795
|
}
|
|
3796
3796
|
createAxes() {
|
|
3797
3797
|
let t = this.userOptions;
|
|
3798
|
-
for (let e of (Y(this, "createAxes"), ["xAxis", "yAxis"])) for (let i of t[e] = qi(t[e] || {})) new
|
|
3798
|
+
for (let e of (Y(this, "createAxes"), ["xAxis", "yAxis"])) for (let i of t[e] = qi(t[e] || {})) new Be(this, i, e);
|
|
3799
3799
|
Y(this, "afterCreateAxes");
|
|
3800
3800
|
}
|
|
3801
3801
|
getSelectedPoints() {
|
|
3802
3802
|
return this.series.reduce((t, e) => (e.getPointsCollection().forEach((i) => {
|
|
3803
|
-
|
|
3803
|
+
vt(i.selectedStaging, i.selected) && t.push(i);
|
|
3804
3804
|
}), t), []);
|
|
3805
3805
|
}
|
|
3806
3806
|
getSelectedSeries() {
|
|
@@ -3810,18 +3810,18 @@ function Dp() {
|
|
|
3810
3810
|
this.applyDescription("title", t), this.applyDescription("subtitle", e), this.applyDescription("caption", void 0), this.layOutTitles(i);
|
|
3811
3811
|
}
|
|
3812
3812
|
applyDescription(t, e) {
|
|
3813
|
-
let i = this, s = this.options[t] =
|
|
3813
|
+
let i = this, s = this.options[t] = Ut(this.options[t], e), r = this[t];
|
|
3814
3814
|
r && e && (this[t] = r = r.destroy()), s && !r && ((r = this.renderer.text(s.text, 0, 0, s.useHTML).attr({ align: s.align, class: "highcharts-" + t, zIndex: s.zIndex || 4 }).css({ textOverflow: "ellipsis", whiteSpace: "nowrap" }).add()).update = function(o, a) {
|
|
3815
3815
|
i.applyDescription(t, o), i.layOutTitles(a);
|
|
3816
|
-
}, this.styledMode || r.css(
|
|
3816
|
+
}, this.styledMode || r.css(re(t === "title" ? { fontSize: this.options.isStock ? "1em" : "1.2em" } : {}, s.style)), r.textPxLength = r.getBBox().width, r.css({ whiteSpace: s.style?.whiteSpace }), this[t] = r);
|
|
3817
3817
|
}
|
|
3818
3818
|
layOutTitles(t = !0) {
|
|
3819
3819
|
let e = [0, 0, 0], { options: i, renderer: s, spacingBox: r } = this;
|
|
3820
3820
|
["title", "subtitle", "caption"].forEach((a) => {
|
|
3821
|
-
let n = this[a], h = this.options[a], c =
|
|
3821
|
+
let n = this[a], h = this.options[a], c = Ut(r), d = n?.textPxLength || 0;
|
|
3822
3822
|
if (n && h) {
|
|
3823
3823
|
Y(this, "layOutTitle", { alignTo: c, key: a, textPxLength: d });
|
|
3824
|
-
let p = s.fontMetrics(n), u = p.b, g = p.h, x = h.verticalAlign || "top", m = x === "top", f = m && h.minScale || 1, y = a === "title" ? m ? -3 : 0 : m ? e[0] + 2 : 0, b = Math.min(c.width / d, 1), v = Math.max(f, b), k =
|
|
3824
|
+
let p = s.fontMetrics(n), u = p.b, g = p.h, x = h.verticalAlign || "top", m = x === "top", f = m && h.minScale || 1, y = a === "title" ? m ? -3 : 0 : m ? e[0] + 2 : 0, b = Math.min(c.width / d, 1), v = Math.max(f, b), k = Ut({ y: x === "bottom" ? u : y + u }, { align: a === "title" ? b < f ? "left" : "center" : this.title?.alignValue }, h), M = (h.width || (b > f ? this.chartWidth : c.width) / v) + "px";
|
|
3825
3825
|
n.alignValue !== k.align && (n.placed = !1);
|
|
3826
3826
|
let S = Math.round(n.css({ width: M }).getBBox(h.useHTML).height);
|
|
3827
3827
|
if (k.height = S, n.align(k, !1, c).attr({ align: k.align, scaleX: v, scaleY: v, "transform-origin": `${c.x + d * v * Xd(k.align)} ${g}` }), !h.floating) {
|
|
@@ -3850,19 +3850,19 @@ function Dp() {
|
|
|
3850
3850
|
}
|
|
3851
3851
|
temporaryDisplay(t) {
|
|
3852
3852
|
let e = this.renderTo, i;
|
|
3853
|
-
if (t) for (; e?.style; ) e.hcOrigStyle && (
|
|
3854
|
-
else for (; e?.style && (ai.body.contains(e) || e.parentNode || (e.hcOrigDetached = !0, ai.body.appendChild(e)), (lr(e, "display", !1) === "none" || e.hcOricDetached) && (e.hcOrigStyle = { display: e.style.display, height: e.style.height, overflow: e.style.overflow }, i = { display: "block", overflow: "hidden" }, e !== this.renderTo && (i.height = 0),
|
|
3853
|
+
if (t) for (; e?.style; ) e.hcOrigStyle && (zt(e, e.hcOrigStyle), delete e.hcOrigStyle), e.hcOrigDetached && (ai.body.removeChild(e), e.hcOrigDetached = !1), e = e.parentNode;
|
|
3854
|
+
else for (; e?.style && (ai.body.contains(e) || e.parentNode || (e.hcOrigDetached = !0, ai.body.appendChild(e)), (lr(e, "display", !1) === "none" || e.hcOricDetached) && (e.hcOrigStyle = { display: e.style.display, height: e.style.height, overflow: e.style.overflow }, i = { display: "block", overflow: "hidden" }, e !== this.renderTo && (i.height = 0), zt(e, i), e.offsetWidth || e.style.setProperty("display", "block", "important")), (e = e.parentNode) !== ai.body); ) ;
|
|
3855
3855
|
}
|
|
3856
3856
|
setClassName(t) {
|
|
3857
3857
|
this.container.className = "highcharts-container " + (t || "");
|
|
3858
3858
|
}
|
|
3859
3859
|
getContainer() {
|
|
3860
3860
|
let t, e = this.options, i = e.chart, s = "data-highcharts-chart", r = jd(), o = this.renderTo, a = Gd(ua(o, s));
|
|
3861
|
-
|
|
3861
|
+
Xe(a) && ye[a] && ye[a].hasRendered && ye[a].destroy(), ua(o, s, this.index), o.innerHTML = Q.emptyHTML, i.skipClone || o.offsetWidth || this.temporaryDisplay(), this.getChartSize();
|
|
3862
3862
|
let n = this.chartHeight, h = this.chartWidth;
|
|
3863
|
-
|
|
3863
|
+
zt(o, { overflow: "hidden" }), this.styledMode || (t = re({ position: "relative", overflow: "hidden", width: h + "px", height: n + "px", textAlign: "left", lineHeight: "normal", zIndex: 0, "-webkit-tap-highlight-color": "rgba(0,0,0,0)", userSelect: "none", "touch-action": "manipulation", outline: "none", padding: "0px" }, i.style || {}));
|
|
3864
3864
|
let c = or("div", { id: r }, t, o);
|
|
3865
|
-
this.container = c, this.getChartSize(), h !== this.chartWidth && (h = this.chartWidth, this.styledMode ||
|
|
3865
|
+
this.container = c, this.getChartSize(), h !== this.chartWidth && (h = this.chartWidth, this.styledMode || zt(c, { width: vt(i.style?.width, h + "px") })), this.containerBox = this.getContainerBox(), this._cursor = c.style.cursor;
|
|
3866
3866
|
let d = i.renderer || !zd ? Ke.getRendererType(i.renderer) : Oi;
|
|
3867
3867
|
if (this.renderer = new d(c, h, n, void 0, i.forExport, e.exporting?.allowHTML, this.styledMode), er(void 0, this), this.setClassName(i.className), this.styledMode) for (let p in e.defs) this.renderer.definition(e.defs[p]);
|
|
3868
3868
|
else this.renderer.setStyle(i.style);
|
|
@@ -3870,7 +3870,7 @@ function Dp() {
|
|
|
3870
3870
|
}
|
|
3871
3871
|
getMargins(t) {
|
|
3872
3872
|
let { spacing: e, margin: i, titleOffset: s } = this;
|
|
3873
|
-
this.resetMargins(), s[0] && !
|
|
3873
|
+
this.resetMargins(), s[0] && !se(i[0]) && (this.plotTop = Math.max(this.plotTop, s[0] + e[0])), s[2] && !se(i[2]) && (this.marginBottom = Math.max(this.marginBottom, s[2] + e[2])), this.legend?.display && this.legend.adjustMargins(i, e), Y(this, "getMargins"), t || this.getAxisMargins();
|
|
3874
3874
|
}
|
|
3875
3875
|
getAxisMargins() {
|
|
3876
3876
|
let t = this, e = t.axisOffset = [0, 0, 0, 0], i = t.colorAxis, s = t.margin, r = (o) => {
|
|
@@ -3879,7 +3879,7 @@ function Dp() {
|
|
|
3879
3879
|
});
|
|
3880
3880
|
};
|
|
3881
3881
|
t.hasCartesianSeries ? r(t.axes) : i?.length && r(i), ca.forEach((o, a) => {
|
|
3882
|
-
|
|
3882
|
+
se(s[a]) || (t[o] += e[a]);
|
|
3883
3883
|
}), t.setChartSize();
|
|
3884
3884
|
}
|
|
3885
3885
|
getOptions() {
|
|
@@ -3907,7 +3907,7 @@ function Dp() {
|
|
|
3907
3907
|
let o = r.globalAnimation;
|
|
3908
3908
|
s.oldChartHeight = s.chartHeight, s.oldChartWidth = s.chartWidth, t !== void 0 && (s.options.chart.width = t), e !== void 0 && (s.options.chart.height = e), s.getChartSize();
|
|
3909
3909
|
let { chartWidth: a, chartHeight: n, scrollablePixelsX: h = 0, scrollablePixelsY: c = 0 } = s;
|
|
3910
|
-
(s.isDirtyBox || a !== s.oldChartWidth || n !== s.oldChartHeight) && (s.styledMode || (o ? tr :
|
|
3910
|
+
(s.isDirtyBox || a !== s.oldChartWidth || n !== s.oldChartHeight) && (s.styledMode || (o ? tr : zt)(s.container, { width: `${a + h}px`, height: `${n + c}px` }, o), s.setChartSize(!0), r.setSize(a, n, o), s.axes.forEach(function(d) {
|
|
3911
3911
|
d.isDirty = !0, d.setScale();
|
|
3912
3912
|
}), s.isDirtyLegend = !0, s.isDirtyBox = !0, s.layOutTitles(), s.getMargins(), s.redraw(o), s.oldChartHeight = void 0, Y(s, "resize"), setTimeout(() => {
|
|
3913
3913
|
s && Y(s, "endResize");
|
|
@@ -3950,7 +3950,7 @@ function Dp() {
|
|
|
3950
3950
|
let { linkedTo: r } = s.options;
|
|
3951
3951
|
if (Zi(r)) {
|
|
3952
3952
|
let o;
|
|
3953
|
-
(o = r === ":previous" ? e.series[s.index - 1] : e.get(r)) && o.linkedParent !== s && (o.linkedSeries.push(s), s.linkedParent = o, o.enabledDataSorting && s.setDataSortingOptions(), s.visible =
|
|
3953
|
+
(o = r === ":previous" ? e.series[s.index - 1] : e.get(r)) && o.linkedParent !== s && (o.linkedSeries.push(s), s.linkedParent = o, o.enabledDataSorting && s.setDataSortingOptions(), s.visible = vt(s.options.visible, o.options.visible, s.visible));
|
|
3954
3954
|
}
|
|
3955
3955
|
}), Y(this, "afterLinkSeries", { isUpdating: t });
|
|
3956
3956
|
}
|
|
@@ -3969,8 +3969,8 @@ function Dp() {
|
|
|
3969
3969
|
let { options: d } = c, { labels: p } = d;
|
|
3970
3970
|
if (this.hasCartesianSeries && c.horiz && c.visible && p.enabled && c.series.length && c.coll !== "colorAxis" && !this.polar) {
|
|
3971
3971
|
o = d.tickLength, c.createGroups();
|
|
3972
|
-
let u = new
|
|
3973
|
-
if (u.destroy(), g &&
|
|
3972
|
+
let u = new De(c, 0, "", !0), g = u.createLabel("x", p);
|
|
3973
|
+
if (u.destroy(), g && vt(p.reserveSpace, !Xe(d.crossing)) && (o = g.getBBox().height + p.distance + Math.max(d.offset || 0, 0)), o) {
|
|
3974
3974
|
g?.destroy();
|
|
3975
3975
|
break;
|
|
3976
3976
|
}
|
|
@@ -3984,7 +3984,7 @@ function Dp() {
|
|
|
3984
3984
|
this.drawChartBox(), this.hasCartesianSeries ? r(t) : e?.length && r(e), this.seriesGroup || (this.seriesGroup = i.g("series-group").attr({ zIndex: 3 }).shadow(this.options.chart.seriesGroupShadow).add()), this.dataLabelsGroup || (this.dataLabelsGroup = i.g("datalabels-group").attr({ zIndex: 6 }).add()), this.renderSeries(), this.addCredits(), this.setResponsive && this.setResponsive(), this.hasRendered = !0;
|
|
3985
3985
|
}
|
|
3986
3986
|
addCredits(t) {
|
|
3987
|
-
let e = this, i =
|
|
3987
|
+
let e = this, i = Ut(!0, this.options.credits, t);
|
|
3988
3988
|
i.enabled && !this.credits && (this.credits = this.renderer.text(i.text + (this.mapCredits || ""), 0, 0).addClass("highcharts-credits").on("click", function() {
|
|
3989
3989
|
i.href && (pa.location.href = i.href);
|
|
3990
3990
|
}).attr({ align: i.position.align, zIndex: 8 }), e.styledMode || this.credits.css(i.style), this.credits.add().align(i.position), this.credits.update = function(s) {
|
|
@@ -3993,11 +3993,11 @@ function Dp() {
|
|
|
3993
3993
|
}
|
|
3994
3994
|
destroy() {
|
|
3995
3995
|
let t, e = this, i = e.axes, s = e.series, r = e.container, o = r?.parentNode;
|
|
3996
|
-
for (Y(e, "destroy"), e.renderer.forExport ? Wd(
|
|
3996
|
+
for (Y(e, "destroy"), e.renderer.forExport ? Wd(ye, e) : ye[e.index] = void 0, C.chartCount--, e.renderTo.removeAttribute("data-highcharts-chart"), ma(e), t = i.length; t--; ) i[t] = i[t].destroy();
|
|
3997
3997
|
for (this.scroller?.destroy?.(), t = s.length; t--; ) s[t] = s[t].destroy();
|
|
3998
3998
|
["title", "subtitle", "chartBackground", "plotBackground", "plotBGImage", "plotBorder", "seriesGroup", "clipRect", "credits", "pointer", "rangeSelector", "legend", "resetZoomButton", "tooltip", "renderer"].forEach((a) => {
|
|
3999
3999
|
e[a] = e[a]?.destroy?.();
|
|
4000
|
-
}), r && (r.innerHTML =
|
|
4000
|
+
}), r && (r.innerHTML = Q.emptyHTML, ma(r), o && Rd(r)), hr(e, function(a, n) {
|
|
4001
4001
|
delete e[n];
|
|
4002
4002
|
});
|
|
4003
4003
|
}
|
|
@@ -4012,7 +4012,7 @@ function Dp() {
|
|
|
4012
4012
|
onload() {
|
|
4013
4013
|
this.callbacks.concat([this.callback]).forEach(function(t) {
|
|
4014
4014
|
t && this.index !== void 0 && t.apply(this, [this]);
|
|
4015
|
-
}, this), Y(this, "load"), Y(this, "render"),
|
|
4015
|
+
}, this), Y(this, "load"), Y(this, "render"), se(this.index) && this.setReflow(), this.warnIfA11yModuleNotLoaded(), this.hasLoaded = !0;
|
|
4016
4016
|
}
|
|
4017
4017
|
warnIfA11yModuleNotLoaded() {
|
|
4018
4018
|
let { options: t, title: e } = this;
|
|
@@ -4020,7 +4020,7 @@ function Dp() {
|
|
|
4020
4020
|
}
|
|
4021
4021
|
addSeries(t, e, i) {
|
|
4022
4022
|
let s, r = this;
|
|
4023
|
-
return t && (e =
|
|
4023
|
+
return t && (e = vt(e, !0), Y(r, "addSeries", { options: t }, function() {
|
|
4024
4024
|
s = r.initSeries(t), r.isDirtyLegend = !0, r.linkSeries(), s.enabledDataSorting && s.setData(t.data, !1), Y(r, "afterAddSeries", { series: s }), e && r.redraw(i);
|
|
4025
4025
|
})), s;
|
|
4026
4026
|
}
|
|
@@ -4031,33 +4031,33 @@ function Dp() {
|
|
|
4031
4031
|
return this.createAxis("colorAxis", { axis: t, redraw: e, animation: i });
|
|
4032
4032
|
}
|
|
4033
4033
|
createAxis(t, e) {
|
|
4034
|
-
let i = new
|
|
4035
|
-
return
|
|
4034
|
+
let i = new Be(this, e.axis, t);
|
|
4035
|
+
return vt(e.redraw, !0) && this.redraw(e.animation), i;
|
|
4036
4036
|
}
|
|
4037
4037
|
showLoading(t) {
|
|
4038
4038
|
let e = this, i = e.options, s = i.loading, r = function() {
|
|
4039
|
-
o &&
|
|
4039
|
+
o && zt(o, { left: e.plotLeft + "px", top: e.plotTop + "px", width: e.plotWidth + "px", height: e.plotHeight + "px" });
|
|
4040
4040
|
}, o = e.loadingDiv, a = e.loadingSpan;
|
|
4041
|
-
o || (e.loadingDiv = o = or("div", { className: "highcharts-loading highcharts-loading-hidden" }, null, e.container)), a || (e.loadingSpan = a = or("span", { className: "highcharts-loading-inner" }, null, o), rr(e, "redraw", r)), o.className = "highcharts-loading",
|
|
4041
|
+
o || (e.loadingDiv = o = or("div", { className: "highcharts-loading highcharts-loading-hidden" }, null, e.container)), a || (e.loadingSpan = a = or("span", { className: "highcharts-loading-inner" }, null, o), rr(e, "redraw", r)), o.className = "highcharts-loading", Q.setElementHTML(a, vt(t, i.lang.loading, "")), !e.styledMode && (zt(o, re(s.style, { zIndex: 10 })), zt(a, s.labelStyle), e.loadingShown || (zt(o, { opacity: 0, display: "" }), tr(o, { opacity: s.style.opacity || 0.5 }, { duration: s.showDuration || 0 }))), e.loadingShown = !0, r();
|
|
4042
4042
|
}
|
|
4043
4043
|
hideLoading() {
|
|
4044
4044
|
let t = this.options, e = this.loadingDiv;
|
|
4045
4045
|
e && (e.className = "highcharts-loading highcharts-loading-hidden", this.styledMode || tr(e, { opacity: 0 }, { duration: t.loading.hideDuration || 100, complete: function() {
|
|
4046
|
-
|
|
4046
|
+
zt(e, { display: "none" });
|
|
4047
4047
|
} })), this.loadingShown = !1;
|
|
4048
4048
|
}
|
|
4049
4049
|
update(t, e, i, s) {
|
|
4050
4050
|
let r, o, a, n = this, h = { credits: "addCredits", title: "setTitle", subtitle: "setSubtitle", caption: "setCaption" }, c = t.isResponsiveOptions, d = [];
|
|
4051
|
-
Y(n, "update", { options: t }), c || n.setResponsive(!1, !0), t = ga(t, n.options), n.userOptions =
|
|
4051
|
+
Y(n, "update", { options: t }), c || n.setResponsive(!1, !0), t = ga(t, n.options), n.userOptions = Ut(n.userOptions, t);
|
|
4052
4052
|
let p = t.chart;
|
|
4053
|
-
p && (
|
|
4053
|
+
p && (Ut(!0, n.options.chart, p), this.setZoomOptions(), "className" in p && n.setClassName(p.className), ("inverted" in p || "polar" in p || "type" in p) && (n.propFromSeries(), r = !0), "alignTicks" in p && (r = !0), "events" in p && da(this, p), hr(p, function(x, m) {
|
|
4054
4054
|
n.propsRequireUpdateSeries.indexOf("chart." + m) !== -1 && (o = !0), n.propsRequireDirtyBox.indexOf(m) !== -1 && (n.isDirtyBox = !0), n.propsRequireReflow.indexOf(m) !== -1 && (n.isDirtyBox = !0, c || (a = !0));
|
|
4055
4055
|
}), !n.styledMode && p.style && n.renderer.setStyle(n.options.chart.style || {})), !n.styledMode && t.colors && (this.options.colors = t.colors), hr(t, function(x, m) {
|
|
4056
|
-
n[m] && typeof n[m].update == "function" ? n[m].update(x, !1) : typeof n[h[m]] == "function" ? n[h[m]](x) : m !== "colors" && n.collectionsWithUpdate.indexOf(m) === -1 &&
|
|
4056
|
+
n[m] && typeof n[m].update == "function" ? n[m].update(x, !1) : typeof n[h[m]] == "function" ? n[h[m]](x) : m !== "colors" && n.collectionsWithUpdate.indexOf(m) === -1 && Ut(!0, n.options[m], t[m]), m !== "chart" && n.propsRequireUpdateSeries.indexOf(m) !== -1 && (o = !0);
|
|
4057
4057
|
}), this.collectionsWithUpdate.forEach(function(x) {
|
|
4058
4058
|
t[x] && (qi(t[x]).forEach(function(m, f) {
|
|
4059
|
-
let y, b =
|
|
4060
|
-
b && (y = n.get(m.id)), !y && n[x] && (y = n[x][
|
|
4059
|
+
let y, b = se(m.id);
|
|
4060
|
+
b && (y = n.get(m.id)), !y && n[x] && (y = n[x][vt(m.index, f)]) && (b && se(y.options.id) || y.options.isInternal) && (y = void 0), y && y.coll === x && (y.update(m, !1), i && (y.touched = !0)), !y && i && n.collectionsWithInit[x] && (n.collectionsWithInit[x][0].apply(n, [m].concat(n.collectionsWithInit[x][1] || []).concat([!1])).touched = !0);
|
|
4061
4061
|
}), i && n[x].forEach(function(m) {
|
|
4062
4062
|
m.touched || m.options.isInternal ? delete m.touched : d.push(m);
|
|
4063
4063
|
}));
|
|
@@ -4069,7 +4069,7 @@ function Dp() {
|
|
|
4069
4069
|
x.chart && x.update({}, !1);
|
|
4070
4070
|
}, this);
|
|
4071
4071
|
let u = p?.width, g = p && (Zi(p.height) ? fa(p.height, u || n.chartWidth) : p.height);
|
|
4072
|
-
a ||
|
|
4072
|
+
a || Xe(u) && u !== n.chartWidth || Xe(g) && g !== n.chartHeight ? n.setSize(u, g, s) : vt(e, !0) && n.redraw(s), Y(n, "afterUpdate", { options: t, redraw: e, animation: s });
|
|
4073
4073
|
}
|
|
4074
4074
|
setSubtitle(t, e) {
|
|
4075
4075
|
this.applyDescription("subtitle", t), this.layOutTitles(e);
|
|
@@ -4092,7 +4092,7 @@ function Dp() {
|
|
|
4092
4092
|
pan(t, e) {
|
|
4093
4093
|
let i = this, s = typeof e == "object" ? e : { enabled: e, type: "x" }, r = s.type, o = r && i[{ x: "xAxis", xy: "axes", y: "yAxis" }[r]].filter((n) => n.options.panningEnabled && !n.options.isInternal), a = i.options.chart;
|
|
4094
4094
|
a?.panning && (a.panning = s), Y(this, "pan", { originalEvent: t }, () => {
|
|
4095
|
-
i.transform({ axes: o, event: t, to: { x: t.chartX - (i.mouseDownX || 0), y: t.chartY - (i.mouseDownY || 0) }, trigger: "pan" }),
|
|
4095
|
+
i.transform({ axes: o, event: t, to: { x: t.chartX - (i.mouseDownX || 0), y: t.chartY - (i.mouseDownY || 0) }, trigger: "pan" }), zt(i.container, { cursor: "move" });
|
|
4096
4096
|
});
|
|
4097
4097
|
}
|
|
4098
4098
|
transform(t) {
|
|
@@ -4100,26 +4100,26 @@ function Dp() {
|
|
|
4100
4100
|
this.hoverPoints?.forEach((g) => g.setState()), Y(this, "transform", t);
|
|
4101
4101
|
let d = t.hasZoomed || !1, p, u;
|
|
4102
4102
|
for (let g of e) {
|
|
4103
|
-
let { horiz: x, len: m, minPointOffset: f = 0, options: y, reversed: b } = g, v = x ? "width" : "height", k = x ? "x" : "y", M =
|
|
4103
|
+
let { horiz: x, len: m, minPointOffset: f = 0, options: y, reversed: b } = g, v = x ? "width" : "height", k = x ? "x" : "y", M = vt(a[v], g.len), S = vt(s[v], g.len), w = 10 > Math.abs(M) ? 1 : M / S, A = (s[k] || 0) + S / 2 - g.pos, P = A - ((a[k] ?? g.pos) + M / 2 - g.pos) / w, T = b && !h || !b && h ? -1 : 1;
|
|
4104
4104
|
if (!r && (A < 0 || A > g.len)) continue;
|
|
4105
4105
|
let L = g.chart.polar || g.isOrdinal ? 0 : f * T || 0, I = g.toValue(P, !0), D = g.toValue(P + m / w, !0), O = I + L, E = D - L, N = g.allExtremes;
|
|
4106
4106
|
if (o && o[g.coll].push({ axis: g, min: Math.min(I, D), max: Math.max(I, D) }), O > E && ([O, E] = [E, O]), w === 1 && !r && g.coll === "yAxis" && !N) {
|
|
4107
|
-
for (let
|
|
4108
|
-
let
|
|
4109
|
-
N ?? (N = { dataMin: Number.MAX_VALUE, dataMax: -Number.MAX_VALUE }),
|
|
4107
|
+
for (let le of g.series) {
|
|
4108
|
+
let Pt = le.getExtremes(le.getProcessedData(!0).modified.getColumn("y") || [], !0);
|
|
4109
|
+
N ?? (N = { dataMin: Number.MAX_VALUE, dataMax: -Number.MAX_VALUE }), Xe(Pt.dataMin) && Xe(Pt.dataMax) && (N.dataMin = Math.min(Pt.dataMin, N.dataMin), N.dataMax = Math.max(Pt.dataMax, N.dataMax));
|
|
4110
4110
|
}
|
|
4111
4111
|
g.allExtremes = N;
|
|
4112
4112
|
}
|
|
4113
|
-
let { dataMin:
|
|
4114
|
-
(!g.isOrdinal || w !== 1 || r) && (O <
|
|
4113
|
+
let { dataMin: K, dataMax: F, min: G, max: X } = re(g.getExtremes(), N || {}), W = c.parse(y.min), U = c.parse(y.max), j = K ?? W, V = F ?? U, $ = E - O, Z = g.categories ? 0 : Math.min($, V - j), kt = j - Z * (se(W) ? 0 : y.minPadding), wt = V + Z * (se(U) ? 0 : y.maxPadding), Mt = g.allowZoomOutside || w === 1 || n !== "zoom" && w > 1, Rt = Math.min(W ?? kt, kt, Mt ? G : kt), mt = Math.max(U ?? wt, wt, Mt ? X : wt);
|
|
4114
|
+
(!g.isOrdinal || w !== 1 || r) && (O < Rt && (O = Rt, w >= 1 && (E = O + $)), E > mt && (E = mt, w >= 1 && (O = E - $)), (r || g.series.length && (O !== G || E !== X) && O >= Rt && E <= mt) && (o ? o[g.coll].push({ axis: g, min: O, max: E }) : (g.isPanning = n !== "zoom", g.isPanning && (u = !0), g.setExtremes(r ? void 0 : O, r ? void 0 : E, !1, !1, { move: P, trigger: n, scale: w }), !r && (O > Rt || E < mt) && n !== "mousewheel" && (p = !0)), d = !0), this.hasCartesianSeries || r || n === "mousewheel" || (p = !0), i && (this[x ? "mouseDownX" : "mouseDownY"] = i[x ? "chartX" : "chartY"]));
|
|
4115
4115
|
}
|
|
4116
4116
|
return d && (o ? Y(this, "selection", o, () => {
|
|
4117
4117
|
delete t.selection, t.trigger = "zoom", this.transform(t);
|
|
4118
4118
|
}) : (!p || u || this.resetZoomButton ? !p && this.resetZoomButton && (this.resetZoomButton = this.resetZoomButton.destroy()) : this.showResetZoom(), this.redraw(n === "zoom" && (this.options.chart.animation ?? this.pointCount < 100)))), d;
|
|
4119
4119
|
}
|
|
4120
4120
|
}
|
|
4121
|
-
|
|
4122
|
-
let { stop: Ud } =
|
|
4121
|
+
re(oe.prototype, { callbacks: [], collectionsWithInit: { xAxis: [oe.prototype.addAxis, [!0]], yAxis: [oe.prototype.addAxis, [!1]], series: [oe.prototype.addSeries] }, collectionsWithUpdate: ["xAxis", "yAxis", "series"], propsRequireDirtyBox: ["backgroundColor", "borderColor", "borderWidth", "borderRadius", "plotBackgroundColor", "plotBackgroundImage", "plotBorderColor", "plotBorderWidth", "plotShadow", "shadow"], propsRequireReflow: ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft", "spacing", "spacingTop", "spacingRight", "spacingBottom", "spacingLeft"], propsRequireUpdateSeries: ["chart.inverted", "chart.polar", "chart.ignoreHiddenSeries", "chart.type", "colors", "plotOptions", "time", "tooltip"] });
|
|
4122
|
+
let { stop: Ud } = ft, { composed: Vd } = C, { addEvent: ae, createElement: Ki, css: dr, defined: cr, erase: $d, merge: xa, pushUnique: ya } = B;
|
|
4123
4123
|
function Zd() {
|
|
4124
4124
|
let l = this.scrollablePlotArea;
|
|
4125
4125
|
(this.scrollablePixelsX || this.scrollablePixelsY) && !l && (this.scrollablePlotArea = l = new ni(this)), l?.applyFixed();
|
|
@@ -4129,7 +4129,7 @@ function Dp() {
|
|
|
4129
4129
|
}
|
|
4130
4130
|
class ni {
|
|
4131
4131
|
static compose(t, e, i) {
|
|
4132
|
-
ya(Vd, this.compose) && (
|
|
4132
|
+
ya(Vd, this.compose) && (ae(t, "afterInit", ba), ae(e, "afterSetChartSize", (s) => this.afterSetSize(s.target, s)), ae(e, "render", Zd), ae(i, "show", ba));
|
|
4133
4133
|
}
|
|
4134
4134
|
static afterSetSize(t, e) {
|
|
4135
4135
|
let i, s, r, { minWidth: o, minHeight: a } = t.options.chart.scrollablePlotArea || {}, { clipBox: n, plotBox: h, inverted: c, renderer: d } = t;
|
|
@@ -4141,7 +4141,7 @@ function Dp() {
|
|
|
4141
4141
|
let e, i = t.options.chart, s = Ke.getRendererType(), r = i.scrollablePlotArea || {}, o = this.moveFixedElements.bind(this), a = { WebkitOverflowScrolling: "touch", overflowX: "hidden", overflowY: "hidden" };
|
|
4142
4142
|
t.scrollablePixelsX && (a.overflowX = "auto"), t.scrollablePixelsY && (a.overflowY = "auto"), this.chart = t;
|
|
4143
4143
|
let n = this.parentDiv = Ki("div", { className: "highcharts-scrolling-parent" }, { position: "relative" }, t.renderTo), h = this.scrollingContainer = Ki("div", { className: "highcharts-scrolling" }, a, n), c = this.innerContainer = Ki("div", { className: "highcharts-inner-container" }, void 0, h), d = this.fixedDiv = Ki("div", { className: "highcharts-fixed" }, { position: "absolute", overflow: "hidden", pointerEvents: "none", zIndex: (i.style?.zIndex || 0) + 2, top: 0 }, void 0, !0), p = this.fixedRenderer = new s(d, t.chartWidth, t.chartHeight, i.style);
|
|
4144
|
-
this.mask = p.path().attr({ fill: i.backgroundColor || "#fff", "fill-opacity": r.opacity ?? 0.85, zIndex: -1 }).addClass("highcharts-scrollable-mask").add(), h.parentNode.insertBefore(d, h), dr(t.renderTo, { overflow: "visible" }),
|
|
4144
|
+
this.mask = p.path().attr({ fill: i.backgroundColor || "#fff", "fill-opacity": r.opacity ?? 0.85, zIndex: -1 }).addClass("highcharts-scrollable-mask").add(), h.parentNode.insertBefore(d, h), dr(t.renderTo, { overflow: "visible" }), ae(t, "afterShowResetZoom", o), ae(t, "afterApplyDrilldown", o), ae(t, "afterLayOutTitles", o), ae(h, "scroll", () => {
|
|
4145
4145
|
let { pointer: u, hoverPoint: g } = t;
|
|
4146
4146
|
u && (delete u.chartPosition, g && (e = g), u.runPointActions(void 0, e, !0));
|
|
4147
4147
|
}), c.appendChild(t.container);
|
|
@@ -4162,7 +4162,7 @@ function Dp() {
|
|
|
4162
4162
|
}
|
|
4163
4163
|
}
|
|
4164
4164
|
ni.fixedSelectors = [".highcharts-breadcrumbs-group", ".highcharts-contextbutton", ".highcharts-caption", ".highcharts-credits", ".highcharts-drillup-button", ".highcharts-legend", ".highcharts-legend-checkbox", ".highcharts-navigator-series", ".highcharts-navigator-xaxis", ".highcharts-navigator-yaxis", ".highcharts-navigator", ".highcharts-range-selector-group", ".highcharts-reset-zoom", ".highcharts-scrollbar", ".highcharts-subtitle", ".highcharts-title"];
|
|
4165
|
-
let { format: qd } =
|
|
4165
|
+
let { format: qd } = Et, { series: Kd } = ot, { destroyObjectProperties: _d, fireEvent: va, getAlignFactor: pr, isNumber: ur, pick: li } = B, ka = class {
|
|
4166
4166
|
constructor(l, t, e, i, s) {
|
|
4167
4167
|
let r = l.chart.inverted, o = l.reversed;
|
|
4168
4168
|
this.axis = l;
|
|
@@ -4199,7 +4199,7 @@ function Dp() {
|
|
|
4199
4199
|
let t = this.axis, e = t.chart, { boxTop: i, defaultX: s, xOffset: r, width: o, boxBottom: a } = l, n = t.stacking.usePercentage ? 100 : li(i, this.total, 0), h = t.toPixels(n), c = l.xAxis || e.xAxis[0], d = li(s, c.translate(this.x)) + r, p = Math.abs(h - t.toPixels(a || ur(t.min) && t.logarithmic && t.logarithmic.lin2log(t.min) || 0)), u = e.inverted, g = this.isNegative;
|
|
4200
4200
|
return u ? { x: (g ? h : h - p) - e.plotLeft, y: c.height - d - o + c.top - e.plotTop, width: p, height: o } : { x: d + c.transB - e.plotLeft, y: (g ? h - p : h) - e.plotTop, width: o, height: p };
|
|
4201
4201
|
}
|
|
4202
|
-
}, { getDeferredAnimation: Jd } =
|
|
4202
|
+
}, { getDeferredAnimation: Jd } = ft, { series: { prototype: Qd } } = ot, { addEvent: wa, correctFloat: hi, defined: Ma, destroyObjectProperties: tc, fireEvent: ec, isNumber: gr, objectEach: be, pick: fr } = B;
|
|
4203
4203
|
function ic() {
|
|
4204
4204
|
let l = this.inverted;
|
|
4205
4205
|
this.axes.forEach((t) => {
|
|
@@ -4213,7 +4213,7 @@ function Dp() {
|
|
|
4213
4213
|
let l = this.stacking;
|
|
4214
4214
|
if (l) {
|
|
4215
4215
|
let t = l.stacks;
|
|
4216
|
-
|
|
4216
|
+
be(t, (e, i) => {
|
|
4217
4217
|
tc(e), delete t[i];
|
|
4218
4218
|
}), l.stackTotalGroup?.destroy();
|
|
4219
4219
|
}
|
|
@@ -4261,23 +4261,23 @@ function Dp() {
|
|
|
4261
4261
|
ec(i, "afterBuildStacks");
|
|
4262
4262
|
}
|
|
4263
4263
|
cleanStacks() {
|
|
4264
|
-
this.oldStacks && (this.stacks = this.oldStacks,
|
|
4265
|
-
|
|
4264
|
+
this.oldStacks && (this.stacks = this.oldStacks, be(this.stacks, (t) => {
|
|
4265
|
+
be(t, (e) => {
|
|
4266
4266
|
e.cumulative = e.total;
|
|
4267
4267
|
});
|
|
4268
4268
|
}));
|
|
4269
4269
|
}
|
|
4270
4270
|
resetStacks() {
|
|
4271
|
-
|
|
4272
|
-
|
|
4271
|
+
be(this.stacks, (t) => {
|
|
4272
|
+
be(t, (e, i) => {
|
|
4273
4273
|
gr(e.touched) && e.touched < this.stacksTouched ? (e.destroy(), delete t[i]) : (e.total = null, e.cumulative = null);
|
|
4274
4274
|
});
|
|
4275
4275
|
});
|
|
4276
4276
|
}
|
|
4277
4277
|
renderStackTotals() {
|
|
4278
4278
|
let t = this.axis, e = t.chart, i = e.renderer, s = this.stacks, r = Jd(e, t.options.stackLabels?.animation || !1), o = this.stackTotalGroup = this.stackTotalGroup || i.g("stack-labels").attr({ zIndex: 6, opacity: 0 }).add();
|
|
4279
|
-
o.translate(e.plotLeft, e.plotTop),
|
|
4280
|
-
|
|
4279
|
+
o.translate(e.plotLeft, e.plotTop), be(s, (a) => {
|
|
4280
|
+
be(a, (n) => {
|
|
4281
4281
|
n.render(o);
|
|
4282
4282
|
});
|
|
4283
4283
|
}), o.animate({ opacity: 1 }, r);
|
|
@@ -4288,7 +4288,7 @@ function Dp() {
|
|
|
4288
4288
|
i.getStacks || (wa(l, "init", rc), wa(l, "destroy", sc), i.getStacks = ic, s.getStackIndicator = oc, s.modifyStacks = ac, s.percentStacker = nc, s.setGroupedPoints = lc, s.setStackedPoints = hc);
|
|
4289
4289
|
};
|
|
4290
4290
|
let cc = Ye, { defined: pc, merge: Sa, isObject: uc } = B;
|
|
4291
|
-
class Ta extends
|
|
4291
|
+
class Ta extends At {
|
|
4292
4292
|
drawGraph() {
|
|
4293
4293
|
let t = this.options, e = (this.gappedPath || this.getGraphPath).call(this), i = this.chart.styledMode;
|
|
4294
4294
|
[this, ...this.zones].forEach((s, r) => {
|
|
@@ -4304,8 +4304,8 @@ function Dp() {
|
|
|
4304
4304
|
}), o.xMap = a, s.graphPath = o, o;
|
|
4305
4305
|
}
|
|
4306
4306
|
}
|
|
4307
|
-
Ta.defaultOptions = Sa(
|
|
4308
|
-
let { seriesTypes: { line: mr } } =
|
|
4307
|
+
Ta.defaultOptions = Sa(At.defaultOptions, { legendSymbol: "lineMarker" }), ot.registerSeriesType("line", Ta);
|
|
4308
|
+
let { seriesTypes: { line: mr } } = ot, { extend: gc, merge: fc, objectEach: mc, pick: _i } = B;
|
|
4309
4309
|
class xr extends mr {
|
|
4310
4310
|
drawGraph() {
|
|
4311
4311
|
this.areaPath = [], super.drawGraph.apply(this);
|
|
@@ -4371,8 +4371,8 @@ function Dp() {
|
|
|
4371
4371
|
return i;
|
|
4372
4372
|
}
|
|
4373
4373
|
}
|
|
4374
|
-
xr.defaultOptions = fc(mr.defaultOptions, { threshold: 0, legendSymbol: "areaMarker" }), gc(xr.prototype, { singleStacks: !1 }),
|
|
4375
|
-
let { line: Aa } =
|
|
4374
|
+
xr.defaultOptions = fc(mr.defaultOptions, { threshold: 0, legendSymbol: "areaMarker" }), gc(xr.prototype, { singleStacks: !1 }), ot.registerSeriesType("area", xr);
|
|
4375
|
+
let { line: Aa } = ot.seriesTypes, { merge: xc, pick: Ji } = B;
|
|
4376
4376
|
class yr extends Aa {
|
|
4377
4377
|
getPointSpline(t, e, i) {
|
|
4378
4378
|
let s, r, o, a, n = e.plotX || 0, h = e.plotY || 0, c = t[i - 1], d = t[i + 1];
|
|
@@ -4387,13 +4387,13 @@ function Dp() {
|
|
|
4387
4387
|
return c.rightContX = c.rightContY = void 0, u;
|
|
4388
4388
|
}
|
|
4389
4389
|
}
|
|
4390
|
-
yr.defaultOptions = xc(Aa.defaultOptions),
|
|
4391
|
-
let Ca = yr, { area: yc, area: { prototype: br } } =
|
|
4390
|
+
yr.defaultOptions = xc(Aa.defaultOptions), ot.registerSeriesType("spline", yr);
|
|
4391
|
+
let Ca = yr, { area: yc, area: { prototype: br } } = ot.seriesTypes, { extend: bc, merge: vc } = B;
|
|
4392
4392
|
class vr extends Ca {
|
|
4393
4393
|
}
|
|
4394
|
-
vr.defaultOptions = vc(Ca.defaultOptions, yc.defaultOptions), bc(vr.prototype, { getGraphPath: br.getGraphPath, getStackPoints: br.getStackPoints, drawGraph: br.drawGraph }),
|
|
4395
|
-
let { animObject: kc } =
|
|
4396
|
-
class is extends
|
|
4394
|
+
vr.defaultOptions = vc(Ca.defaultOptions, yc.defaultOptions), bc(vr.prototype, { getGraphPath: br.getGraphPath, getStackPoints: br.getStackPoints, drawGraph: br.drawGraph }), ot.registerSeriesType("areaspline", vr);
|
|
4395
|
+
let { animObject: kc } = ft, { parse: wc } = tt, { noop: Mc } = C, { clamp: Qi, crisp: ts, defined: Pa, extend: Oa, fireEvent: La, isArray: Ea, isNumber: es, merge: kr, pick: di, objectEach: Sc } = B;
|
|
4396
|
+
class is extends At {
|
|
4397
4397
|
animate(t) {
|
|
4398
4398
|
let e, i, s = this, r = this.yAxis, o = r.pos, a = r.reversed, n = s.options, { clipOffset: h, inverted: c } = this.chart, d = {}, p = c ? "translateX" : "translateY";
|
|
4399
4399
|
t && h ? (d.scaleY = 1e-3, i = Qi(r.toPixels(n.threshold || 0), o, o + r.len), c ? d.translateX = (i += a ? -Math.floor(h[0]) : Math.ceil(h[2])) - r.len : d.translateY = i += a ? Math.ceil(h[0]) : -Math.floor(h[2]), s.clipBox && s.setClip(), s.group.attr(d)) : (e = Number(s.group.attr(p)), s.group.animate({ scaleY: 1 }, Oa(kc(s.options.animation), { step: function(u, g) {
|
|
@@ -4444,7 +4444,7 @@ function Dp() {
|
|
|
4444
4444
|
}
|
|
4445
4445
|
translate() {
|
|
4446
4446
|
let t = this, e = t.chart, i = t.options, s = t.dense = t.closestPointRange * t.xAxis.transA < 2, r = t.borderWidth = di(i.borderWidth, +!s), o = t.xAxis, a = t.yAxis, n = i.threshold, h = di(i.minPointLength, 5), c = t.getColumnMetrics(), d = c.width, p = t.pointXOffset = c.offset, u = t.dataMin, g = t.dataMax, x = t.translatedThreshold = a.getThreshold(n), m = t.barW = Math.max(d, 1 + 2 * r);
|
|
4447
|
-
i.pointPadding && i.crisp && (m = Math.ceil(m)),
|
|
4447
|
+
i.pointPadding && i.crisp && (m = Math.ceil(m)), At.prototype.translate.apply(t), t.points.forEach(function(f) {
|
|
4448
4448
|
let y = di(f.yBottom, x), b = 999 + Math.abs(y), v = f.plotX || 0, k = Qi(f.plotY, -b, a.len + b), M, S = Math.min(k, y), w = Math.max(k, y) - S, A = d, P = v + p, T = m;
|
|
4449
4449
|
h && Math.abs(w) < h && (w = h, M = !a.reversed && !f.negative || a.reversed && f.negative, es(n) && es(g) && f.y === n && g <= n && (a.min || 0) < n && (u !== g || (a.max || 0) <= n) && (M = !M, f.negative = !f.negative), S = Math.abs(S - x) > h ? y - h : x - (M ? h : 0)), Pa(f.options.pointWidth) && (P -= Math.round(((A = T = Math.ceil(f.options.pointWidth)) - d) / 2)), i.centerInCategory && (P = t.adjustForMissingColumns(P, A, f, c)), f.barX = P, f.pointWidth = A, f.tooltipPos = e.inverted ? [Qi(a.len + a.pos - e.plotLeft - k, a.pos - e.plotLeft, a.len + a.pos - e.plotLeft), o.len + o.pos - e.plotTop - P - T / 2, w] : [o.left - e.plotLeft + P + T / 2, Qi(k + a.pos - e.plotTop, a.pos - e.plotTop, a.len + a.pos - e.plotTop), w], f.shapeType = t.pointClass.prototype.shapeType || "roundedRect", f.shapeArgs = t.crispCol(P, S, T, f.isNull ? 0 : w);
|
|
4450
4450
|
}), La(this, "afterColumnTranslate");
|
|
@@ -4485,17 +4485,17 @@ function Dp() {
|
|
|
4485
4485
|
let t = this, e = t.chart;
|
|
4486
4486
|
e.hasRendered && e.series.forEach(function(i) {
|
|
4487
4487
|
i.type === t.type && (i.isDirty = !0);
|
|
4488
|
-
}),
|
|
4488
|
+
}), At.prototype.remove.apply(t, arguments);
|
|
4489
4489
|
}
|
|
4490
4490
|
}
|
|
4491
|
-
is.defaultOptions = kr(
|
|
4492
|
-
let ss = is, { getDeferredAnimation: Tc } =
|
|
4491
|
+
is.defaultOptions = kr(At.defaultOptions, { borderRadius: 3, centerInCategory: !1, groupPadding: 0.2, marker: null, pointPadding: 0.1, minPointLength: 0, cropThreshold: 50, pointRange: null, states: { hover: { halo: !1, brightness: 0.1 }, select: { color: "#cccccc", borderColor: "#000000" } }, dataLabels: { align: void 0, verticalAlign: void 0, y: void 0 }, startFromThreshold: !0, stickyTracking: !1, tooltip: { distance: 6 }, threshold: 0, borderColor: "#ffffff" }), Oa(is.prototype, { directTouch: !0, getSymbol: Mc, negStacks: !0, trackerGroups: ["group", "dataLabelsGroup"] }), ot.registerSeriesType("column", is);
|
|
4492
|
+
let ss = is, { getDeferredAnimation: Tc } = ft, { format: Ac } = Et, { defined: ve, extend: Ia, fireEvent: wr, getAlignFactor: Da, isArray: ne, isString: ci, merge: pi, objectEach: Cc, pick: ui, pInt: Pc, splat: Ba } = B;
|
|
4493
4493
|
(function(l) {
|
|
4494
4494
|
function t() {
|
|
4495
4495
|
return n(this).some((c) => c?.enabled);
|
|
4496
4496
|
}
|
|
4497
4497
|
function e(c, d, p, u, g) {
|
|
4498
|
-
let { chart: x, enabledDataSorting: m } = this, f = this.isCartesian && x.inverted, y = c.plotX, b = c.plotY, v = p.rotation || 0, k =
|
|
4498
|
+
let { chart: x, enabledDataSorting: m } = this, f = this.isCartesian && x.inverted, y = c.plotX, b = c.plotY, v = p.rotation || 0, k = ve(y) && ve(b) && x.isInsidePlot(y, Math.round(b), { inverted: f, paneCoordinates: !0, series: this }), M = v === 0 && ui(p.overflow, m ? "none" : "justify") === "justify", S = this.visible && c.visible !== !1 && ve(y) && (c.series.forceDL || m && !M || k || ui(p.inside, !!this.options.stacking) && u && x.isInsidePlot(y, f ? u.x + 1 : u.y + u.height - 1, { inverted: f, paneCoordinates: !0, series: this })), w = c.pos();
|
|
4499
4499
|
if (S && w) {
|
|
4500
4500
|
var A;
|
|
4501
4501
|
let P = d.getBBox(), T = d.getBBox(void 0, 0);
|
|
@@ -4522,17 +4522,17 @@ function Dp() {
|
|
|
4522
4522
|
wr(this, "drawDataLabels"), p.hasDataLabels?.() && (d = this.initDataLabels(M), c.forEach((S) => {
|
|
4523
4523
|
let w = S.dataLabels || [], A = S.color || p.color;
|
|
4524
4524
|
Ba(a(b, S.dlOptions || S.options?.dataLabels)).forEach((T, L) => {
|
|
4525
|
-
let I = T.enabled && (S.visible || S.dataLabelOnHidden) && (!S.isNull || S.dataLabelOnNull) && (function(
|
|
4526
|
-
let
|
|
4527
|
-
if (
|
|
4528
|
-
let
|
|
4529
|
-
return
|
|
4525
|
+
let I = T.enabled && (S.visible || S.dataLabelOnHidden) && (!S.isNull || S.dataLabelOnNull) && (function(V, $) {
|
|
4526
|
+
let Z = $.filter;
|
|
4527
|
+
if (Z) {
|
|
4528
|
+
let kt = Z.operator, wt = V[Z.property], Mt = Z.value;
|
|
4529
|
+
return kt === ">" && wt > Mt || kt === "<" && wt < Mt || kt === ">=" && wt >= Mt || kt === "<=" && wt <= Mt || kt === "==" && wt == Mt || kt === "===" && wt === Mt || kt === "!=" && wt != Mt || kt === "!==" && wt !== Mt || !1;
|
|
4530
4530
|
}
|
|
4531
4531
|
return !0;
|
|
4532
|
-
})(S, T), { backgroundColor: D, borderColor: O, distance: E, style: N = {} } = T,
|
|
4533
|
-
I && (F =
|
|
4534
|
-
|
|
4535
|
-
})), !W || I &&
|
|
4532
|
+
})(S, T), { backgroundColor: D, borderColor: O, distance: E, style: N = {} } = T, K, F, G, X = {}, W = w[L], U = !W, j;
|
|
4533
|
+
I && (F = ve(K = ui(T[S.formatPrefix + "Format"], T.format)) ? Ac(K, S, u) : (T[S.formatPrefix + "Formatter"] || T.formatter).call(S, T), G = T.rotation, !u.styledMode && (N.color = ui(T.color, N.color, ci(p.color) ? p.color : void 0, "#000000"), N.color === "contrast" ? (D !== "none" && (j = D), S.contrastColor = x.getContrast(j !== "auto" && ci(j) && j || (ci(A) ? A : "")), N.color = j || !ve(E) && T.inside || 0 > Pc(E || 0) || g.stacking ? S.contrastColor : y) : delete S.contrastColor, g.cursor && (N.cursor = g.cursor)), X = { r: T.borderRadius || 0, rotation: G, padding: T.padding, zIndex: 1 }, u.styledMode || (X.fill = D === "auto" ? S.color : D, X.stroke = O === "auto" ? S.color : O, X["stroke-width"] = T.borderWidth), Cc(X, (V, $) => {
|
|
4534
|
+
V === void 0 && delete X[$];
|
|
4535
|
+
})), !W || I && ve(F) && !!(W.div || W.text?.foreignObject) == !!T.useHTML && (W.rotation && T.rotation || W.rotation === T.rotation) || (W = void 0, U = !0), I && ve(F) && F !== "" && (W ? X.text = F : (W = x.label(F, 0, 0, T.shape, void 0, void 0, T.useHTML, void 0, "data-label")).addClass(" highcharts-data-label-color-" + S.colorIndex + " " + (T.className || "") + (T.useHTML ? " highcharts-tracker" : "")), W && (W.options = T, W.attr(X), u.styledMode ? N.width && W.css({ width: N.width, textOverflow: N.textOverflow, whiteSpace: N.whiteSpace }) : W.css(N).shadow(T.shadow), wr(W, "beforeAddingDataLabel", { labelOptions: T, point: S }), W.added || W.add(d), p.alignDataLabel(S, W, T, void 0, U), W.isActive = !0, w[L] && w[L] !== W && w[L].destroy(), w[L] = W));
|
|
4536
4536
|
});
|
|
4537
4537
|
let P = w.length;
|
|
4538
4538
|
for (; P--; ) w[P]?.isActive ? w[P].isActive = !1 : (w[P]?.destroy(), w.splice(P, 1));
|
|
@@ -4545,14 +4545,14 @@ function Dp() {
|
|
|
4545
4545
|
}
|
|
4546
4546
|
function a(c, d) {
|
|
4547
4547
|
let p = [], u;
|
|
4548
|
-
if (
|
|
4548
|
+
if (ne(c) && !ne(d)) p = c.map(function(g) {
|
|
4549
4549
|
return pi(g, d);
|
|
4550
4550
|
});
|
|
4551
|
-
else if (
|
|
4551
|
+
else if (ne(d) && !ne(c)) p = d.map(function(g) {
|
|
4552
4552
|
return pi(c, g);
|
|
4553
4553
|
});
|
|
4554
|
-
else if (
|
|
4555
|
-
if (
|
|
4554
|
+
else if (ne(c) || ne(d)) {
|
|
4555
|
+
if (ne(c) && ne(d)) for (u = Math.max(c.length, d.length); u--; ) p[u] = pi(c[u], d[u]);
|
|
4556
4556
|
} else p = pi(c, d);
|
|
4557
4557
|
return p;
|
|
4558
4558
|
}
|
|
@@ -4568,8 +4568,8 @@ function Dp() {
|
|
|
4568
4568
|
let d = c.prototype;
|
|
4569
4569
|
d.initDataLabels || (d.initDataLabels = s, d.initDataLabelsGroup = i, d.alignDataLabel = e, d.drawDataLabels = r, d.justifyDataLabel = o, d.mergeArrays = a, d.setDataLabelStartPos = h, d.hasDataLabels = t);
|
|
4570
4570
|
};
|
|
4571
|
-
})(
|
|
4572
|
-
let rs =
|
|
4571
|
+
})(Se || (Se = {}));
|
|
4572
|
+
let rs = Se, { composed: Oc } = C, { series: Na } = ot, { merge: Lc, pushUnique: Ec } = B;
|
|
4573
4573
|
(function(l) {
|
|
4574
4574
|
function t(e, i, s, r, o) {
|
|
4575
4575
|
let { chart: a, options: n } = this, h = a.inverted, c = this.xAxis?.len || a.plotSizeX || 0, d = this.yAxis?.len || a.plotSizeY || 0, p = e.dlBox || e.shapeArgs, u = e.below ?? (e.plotY || 0) > (this.translatedThreshold ?? d), g = s.inside ?? !!n.stacking;
|
|
@@ -4586,12 +4586,12 @@ function Dp() {
|
|
|
4586
4586
|
l.compose = function(e) {
|
|
4587
4587
|
rs.compose(Na), Ec(Oc, "ColumnDataLabel") && (e.prototype.alignDataLabel = t);
|
|
4588
4588
|
};
|
|
4589
|
-
})(
|
|
4590
|
-
let Ic =
|
|
4589
|
+
})(Te || (Te = {}));
|
|
4590
|
+
let Ic = Te, { extend: Dc, merge: Bc } = B;
|
|
4591
4591
|
class Mr extends ss {
|
|
4592
4592
|
}
|
|
4593
|
-
Mr.defaultOptions = Bc(ss.defaultOptions, {}), Dc(Mr.prototype, { inverted: !0 }),
|
|
4594
|
-
let { column: Nc, line: za } =
|
|
4593
|
+
Mr.defaultOptions = Bc(ss.defaultOptions, {}), Dc(Mr.prototype, { inverted: !0 }), ot.registerSeriesType("bar", Mr);
|
|
4594
|
+
let { column: Nc, line: za } = ot.seriesTypes, { addEvent: zc, extend: Rc, merge: Wc } = B;
|
|
4595
4595
|
class os extends za {
|
|
4596
4596
|
applyJitter() {
|
|
4597
4597
|
let t = this, e = this.options.jitter, i = this.points.length;
|
|
@@ -4616,22 +4616,22 @@ function Dp() {
|
|
|
4616
4616
|
}
|
|
4617
4617
|
os.defaultOptions = Wc(za.defaultOptions, { lineWidth: 0, findNearestPointBy: "xy", jitter: { x: 0, y: 0 }, marker: { enabled: !0 }, tooltip: { headerFormat: '<span style="color:{point.color}">●</span> <span style="font-size: 0.8em"> {series.name}</span><br/>', pointFormat: "x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>" } }), Rc(os.prototype, { drawTracker: Nc.prototype.drawTracker, sorted: !1, requireSorting: !1, noSharedTooltip: !0, trackerGroups: ["group", "markerGroup", "dataLabelsGroup"] }), zc(os, "afterTranslate", function() {
|
|
4618
4618
|
this.applyJitter();
|
|
4619
|
-
}),
|
|
4619
|
+
}), ot.registerSeriesType("scatter", os);
|
|
4620
4620
|
let { deg2rad: Ra } = C, { fireEvent: Xc, isNumber: Sr, pick: as, relativeLength: Hc } = B;
|
|
4621
4621
|
(function(l) {
|
|
4622
4622
|
l.getCenter = function() {
|
|
4623
4623
|
let t = this.options, e = this.chart, i = 2 * (t.slicedOffset || 0), s = e.plotWidth - 2 * i, r = e.plotHeight - 2 * i, o = t.center, a = Math.min(s, r), n = t.thickness, h, c = t.size, d = t.innerSize || 0, p, u;
|
|
4624
4624
|
typeof c == "string" && (c = parseFloat(c)), typeof d == "string" && (d = parseFloat(d));
|
|
4625
4625
|
let g = [as(o?.[0], "50%"), as(o?.[1], "50%"), as(c && c < 0 ? void 0 : t.size, "100%"), as(d && d < 0 ? void 0 : t.innerSize || 0, "0%")];
|
|
4626
|
-
for (!e.angular || this instanceof
|
|
4626
|
+
for (!e.angular || this instanceof At || (g[3] = 0), p = 0; p < 4; ++p) u = g[p], h = p < 2 || p === 2 && /%$/.test(u), g[p] = Hc(u, [s, r, a, g[2]][p]) + (h ? i : 0);
|
|
4627
4627
|
return g[3] > g[2] && (g[3] = g[2]), Sr(n) && 2 * n < g[2] && n > 0 && (g[3] = g[2] - 2 * n), Xc(this, "afterGetCenter", { positions: g }), g;
|
|
4628
4628
|
}, l.getStartAndEndRadians = function(t, e) {
|
|
4629
4629
|
let i = Sr(t) ? t : 0, s = Sr(e) && e > i && e - i < 360 ? e : i + 360;
|
|
4630
4630
|
return { start: Ra * (i + -90), end: Ra * (s + -90) };
|
|
4631
4631
|
};
|
|
4632
4632
|
})(z || (z = {}));
|
|
4633
|
-
let Wa = z, { setAnimation: Fc } =
|
|
4634
|
-
class Ha extends
|
|
4633
|
+
let Wa = z, { setAnimation: Fc } = ft, { addEvent: Xa, defined: Gc, extend: Yc, isNumber: jc, pick: Uc, relativeLength: Vc } = B;
|
|
4634
|
+
class Ha extends ee {
|
|
4635
4635
|
getConnectorPath(t) {
|
|
4636
4636
|
let e = t.dataLabelPosition, i = t.options || {}, s = i.connectorShape, r = this.connectorShapes[s] || s;
|
|
4637
4637
|
return e && r.call(this, { ...e.computed, alignment: e.alignment }, e.connectorPosition, i) || [];
|
|
@@ -4677,7 +4677,7 @@ function Dp() {
|
|
|
4677
4677
|
return (u ? m <= g && m >= s.x : m >= g && m <= s.x) && f.push(["L", m, x]), f.push(["L", s.x, s.y], ["L", r.x, r.y]), f;
|
|
4678
4678
|
} } });
|
|
4679
4679
|
let { getStartAndEndRadians: $c } = Wa, { noop: Fa } = C, { clamp: Zc, extend: qc, fireEvent: Ga, merge: Tr, pick: Kc } = B;
|
|
4680
|
-
class Ar extends
|
|
4680
|
+
class Ar extends At {
|
|
4681
4681
|
animate(t) {
|
|
4682
4682
|
let e = this, i = e.points, s = e.startAngleRad;
|
|
4683
4683
|
t || i.forEach(function(r) {
|
|
@@ -4733,10 +4733,10 @@ function Dp() {
|
|
|
4733
4733
|
for (s = 0, this.total = o; s < e; s++) (r = t[s]).percentage = o > 0 && (r.visible || !i) ? r.y / o * 100 : 0, r.total = o;
|
|
4734
4734
|
}
|
|
4735
4735
|
}
|
|
4736
|
-
Ar.defaultOptions = Tr(
|
|
4736
|
+
Ar.defaultOptions = Tr(At.defaultOptions, { borderRadius: 3, center: [null, null], clip: !1, colorByPoint: !0, dataLabels: { connectorPadding: 5, connectorShape: "crookedLine", crookDistance: void 0, distance: 30, enabled: !0, formatter: function() {
|
|
4737
4737
|
return this.isNull ? void 0 : this.name;
|
|
4738
|
-
}, softConnector: !0, x: 0 }, fillColor: void 0, ignoreHiddenPoint: !0, inactiveOtherPoints: !0, legendType: "point", marker: null, size: null, showInLegend: !1, slicedOffset: 10, stickyTracking: !1, tooltip: { followPointer: !0 }, borderColor: "#ffffff", borderWidth: 1, lineWidth: void 0, states: { hover: { brightness: 0.1 } } }), qc(Ar.prototype, { axisTypes: [], directTouch: !0, drawGraph: void 0, drawTracker: ss.prototype.drawTracker, getCenter: Wa.getCenter, getSymbol: Fa, invertible: !1, isCartesian: !1, noSharedTooltip: !0, pointAttribs: ss.prototype.pointAttribs, pointClass: Ha, requireSorting: !1, searchPoint: Fa, trackerGroups: ["group", "dataLabelsGroup"] }),
|
|
4739
|
-
let { composed: _c, noop: Jc } = C, { distribute: Qc } = ki, { series: Ya } =
|
|
4738
|
+
}, softConnector: !0, x: 0 }, fillColor: void 0, ignoreHiddenPoint: !0, inactiveOtherPoints: !0, legendType: "point", marker: null, size: null, showInLegend: !1, slicedOffset: 10, stickyTracking: !1, tooltip: { followPointer: !0 }, borderColor: "#ffffff", borderWidth: 1, lineWidth: void 0, states: { hover: { brightness: 0.1 } } }), qc(Ar.prototype, { axisTypes: [], directTouch: !0, drawGraph: void 0, drawTracker: ss.prototype.drawTracker, getCenter: Wa.getCenter, getSymbol: Fa, invertible: !1, isCartesian: !1, noSharedTooltip: !0, pointAttribs: ss.prototype.pointAttribs, pointClass: Ha, requireSorting: !1, searchPoint: Fa, trackerGroups: ["group", "dataLabelsGroup"] }), ot.registerSeriesType("pie", Ar);
|
|
4739
|
+
let { composed: _c, noop: Jc } = C, { distribute: Qc } = ki, { series: Ya } = ot, { arrayMax: tp, clamp: ja, defined: Ua, isNumber: ep, pick: ip, pushUnique: sp, relativeLength: Va } = B;
|
|
4740
4740
|
(function(l) {
|
|
4741
4741
|
let t = { radialDistributionY: function(o, a) {
|
|
4742
4742
|
return (a.dataLabelPosition?.top || 0) + o.distributeBox.pos;
|
|
@@ -4780,22 +4780,22 @@ function Dp() {
|
|
|
4780
4780
|
});
|
|
4781
4781
|
}), Qc(P, D = L + I - T, D / 5)), S.forEach((O) => {
|
|
4782
4782
|
(O.dataLabels || []).forEach((E) => {
|
|
4783
|
-
let N = E.options || {},
|
|
4783
|
+
let N = E.options || {}, K = O.distributeBox, F = E.dataLabelPosition, G = F?.natural.y || 0, X = N.connectorPadding || 0, W = E.lineHeight || 21, U = (W - E.getBBox().height) / 2, j = 0, V = G, $ = "inherit";
|
|
4784
4784
|
if (F) {
|
|
4785
|
-
if (P && Ua(
|
|
4785
|
+
if (P && Ua(K) && F.distance > 0 && (K.pos === void 0 ? $ = "hidden" : (k = K.size, V = y.radialDistributionY(O, E))), N.justify) j = y.justify(O, E, g, u);
|
|
4786
4786
|
else switch (N.alignTo) {
|
|
4787
4787
|
case "connectors":
|
|
4788
|
-
|
|
4788
|
+
j = y.alignToConnectors(S, w, h, d);
|
|
4789
4789
|
break;
|
|
4790
4790
|
case "plotEdges":
|
|
4791
|
-
|
|
4791
|
+
j = y.alignToPlotEdges(E, w, h, d);
|
|
4792
4792
|
break;
|
|
4793
4793
|
default:
|
|
4794
|
-
|
|
4794
|
+
j = y.radialDistributionX(o, O, V - U, G, E);
|
|
4795
4795
|
}
|
|
4796
|
-
if (F.attribs = { visibility:
|
|
4797
|
-
let
|
|
4798
|
-
|
|
4796
|
+
if (F.attribs = { visibility: $, align: F.alignment }, F.posAttribs = { x: j + (N.x || 0) + ({ left: X, right: -X }[F.alignment] || 0), y: V + (N.y || 0) - W / 2 }, F.computed.x = j, F.computed.y = V - U, ip(N.crop, !0)) {
|
|
4797
|
+
let Z;
|
|
4798
|
+
j - (v = E.getBBox().width) < X && w === 1 ? (Z = Math.round(v - j + X), f[3] = Math.max(Z, f[3])) : j + v > h - X && w === 0 && (Z = Math.round(j + v - h + X), f[1] = Math.max(Z, f[1])), V - k / 2 < 0 ? f[0] = Math.max(Math.round(-V + k / 2), f[0]) : V + k / 2 > c && (f[2] = Math.max(Math.round(V + k / 2 - c), f[2])), F.sideOverflow = Z;
|
|
4799
4799
|
}
|
|
4800
4800
|
}
|
|
4801
4801
|
});
|
|
@@ -4828,8 +4828,8 @@ function Dp() {
|
|
|
4828
4828
|
a.dataLabelPositioners = t, a.alignDataLabel = Jc, a.drawDataLabels = i, a.getDataLabelPosition = e, a.placeDataLabels = s, a.verifyDataLabelOverflow = r;
|
|
4829
4829
|
}
|
|
4830
4830
|
};
|
|
4831
|
-
})(
|
|
4832
|
-
let rp =
|
|
4831
|
+
})(J || (J = {}));
|
|
4832
|
+
let rp = J;
|
|
4833
4833
|
(function(l) {
|
|
4834
4834
|
l.getCenterOfPoints = function(t) {
|
|
4835
4835
|
let e = t.reduce((i, s) => (i.x += s.x, i.y += s.y, i), { x: 0, y: 0 });
|
|
@@ -4846,8 +4846,8 @@ function Dp() {
|
|
|
4846
4846
|
}
|
|
4847
4847
|
return a;
|
|
4848
4848
|
};
|
|
4849
|
-
})(
|
|
4850
|
-
let { pointInPolygon: op } =
|
|
4849
|
+
})(rt || (rt = {}));
|
|
4850
|
+
let { pointInPolygon: op } = rt, { addEvent: ap, getAlignFactor: np, fireEvent: $a, objectEach: Za, pick: lp } = B;
|
|
4851
4851
|
function hp(l) {
|
|
4852
4852
|
let t = l.length, e = (c, d) => !(d.x >= c.x + c.width || d.x + d.width <= c.x || d.y >= c.y + c.height || d.y + d.height <= c.y), i = (c, d) => {
|
|
4853
4853
|
for (let p of c) if (op({ x: p[0], y: p[1] }, d)) return !0;
|
|
@@ -4906,7 +4906,7 @@ function Dp() {
|
|
|
4906
4906
|
let Ka = { compose: function(l) {
|
|
4907
4907
|
let t = l.prototype;
|
|
4908
4908
|
t.hideOverlappingLabels || (t.hideOverlappingLabels = hp, ap(l, "render", dp));
|
|
4909
|
-
} }, { defaultOptions: cp } =
|
|
4909
|
+
} }, { defaultOptions: cp } = Lt, { noop: _a } = C, { addEvent: Ja, extend: pp, isObject: Qa, merge: up, relativeLength: Cr } = B, gp = { radius: 0, scope: "stack", where: void 0 }, tn = _a, en = _a;
|
|
4910
4910
|
function fp(l, t, e, i, s = {}) {
|
|
4911
4911
|
let r = tn(l, t, e, i, s), { brStart: o = !0, brEnd: a = !0, innerR: n = 0, r: h = e, start: c = 0, end: d = 0 } = s;
|
|
4912
4912
|
if (s.open || !s.borderRadius) return r;
|
|
@@ -4914,8 +4914,8 @@ function Dp() {
|
|
|
4914
4914
|
for (; m--; ) (o || m !== 0 && m !== 3) && (a || m !== 1 && m !== 2) && (function(f, y, b) {
|
|
4915
4915
|
let v, k, M, S = f[y], w = f[y + 1];
|
|
4916
4916
|
if (w[0] === "Z" && (w = f[0]), (S[0] === "M" || S[0] === "L") && w[0] === "A" ? (v = S, k = w, M = !0) : S[0] === "A" && (w[0] === "M" || w[0] === "L") && (v = w, k = S), v && k && k.params) {
|
|
4917
|
-
let A = k[1], P = k[5], T = k.params, { start: L, end: I, cx: D, cy: O } = T, E = P ? A - b : A + b, N = E ? Math.asin(b / E) : 0,
|
|
4918
|
-
M ? (T.start = L +
|
|
4917
|
+
let A = k[1], P = k[5], T = k.params, { start: L, end: I, cx: D, cy: O } = T, E = P ? A - b : A + b, N = E ? Math.asin(b / E) : 0, K = P ? N : -N, F = Math.cos(N) * E;
|
|
4918
|
+
M ? (T.start = L + K, v[1] = D + F * Math.cos(L), v[2] = O + F * Math.sin(L), f.splice(y + 1, 0, ["A", b, b, 0, 0, 1, D + A * Math.cos(T.start), O + A * Math.sin(T.start)])) : (T.end = I - K, k[6] = D + A * Math.cos(T.end), k[7] = O + A * Math.sin(T.end), f.splice(y + 1, 0, ["A", b, b, 0, 0, 1, D + F * Math.cos(I), O + F * Math.sin(I)])), k[4] = Math.abs(T.end - T.start) < Math.PI ? 0 : 1;
|
|
4919
4919
|
}
|
|
4920
4920
|
})(r, m, m > 1 ? x : g);
|
|
4921
4921
|
return r;
|
|
@@ -4993,13 +4993,13 @@ function Dp() {
|
|
|
4993
4993
|
};
|
|
4994
4994
|
})(dt || (dt = {}));
|
|
4995
4995
|
let Sp = dt;
|
|
4996
|
-
C.AST =
|
|
4996
|
+
C.AST = Q, C.Axis = Be, C.Chart = oe, C.Color = tt, C.DataLabel = rs, C.DataTableCore = ji, C.Fx = bt, C.HTMLElement = Ie, C.Legend = ha, C.LegendSymbol = qo, C.OverlappingDataLabels = C.OverlappingDataLabels || Ka, C.PlotLineOrBand = Xi, C.Point = ee, C.Pointer = Vo, C.RendererRegistry = Ke, C.Series = At, C.SeriesRegistry = ot, C.StackItem = ka, C.SVGElement = Ft, C.SVGRenderer = Oi, C.Templating = Et, C.Tick = De, C.Time = ms, C.Tooltip = Fo, C.animate = ft.animate, C.animObject = ft.animObject, C.chart = oe.chart, C.color = tt.parse, C.dateFormat = Et.dateFormat, C.defaultOptions = Lt.defaultOptions, C.distribute = ki.distribute, C.format = Et.format, C.getDeferredAnimation = ft.getDeferredAnimation, C.getOptions = Lt.getOptions, C.numberFormat = Et.numberFormat, C.seriesType = ot.seriesType, C.setAnimation = ft.setAnimation, C.setOptions = Lt.setOptions, C.stop = ft.stop, C.time = Lt.defaultTime, C.timers = bt.timers, { compose: function(l, t, e) {
|
|
4997
4997
|
let i = l.types.pie;
|
|
4998
4998
|
if (!t.symbolCustomAttribs.includes("borderRadius")) {
|
|
4999
4999
|
let s = e.prototype.symbols;
|
|
5000
5000
|
Ja(l, "afterColumnTranslate", mp, { order: 9 }), Ja(i, "afterTranslate", xp), t.symbolCustomAttribs.push("borderRadius", "brBoxHeight", "brBoxY", "brEnd", "brStart"), tn = s.arc, en = s.roundedRect, s.arc = fp, s.roundedRect = yp;
|
|
5001
5001
|
}
|
|
5002
|
-
}, optionsToObject: Pr }.compose(C.Series, C.SVGElement, C.SVGRenderer), Ic.compose(C.Series.types.column), rs.compose(C.Series), ph.compose(C.Axis),
|
|
5002
|
+
}, optionsToObject: Pr }.compose(C.Series, C.SVGElement, C.SVGRenderer), Ic.compose(C.Series.types.column), rs.compose(C.Series), ph.compose(C.Axis), Ie.compose(C.SVGRenderer), ha.compose(C.Chart), fh.compose(C.Axis), Ka.compose(C.Chart), rp.compose(C.Series.types.pie), Xi.compose(C.Chart, C.Axis), Vo.compose(C.Chart), Sp.compose(C.Chart), ni.compose(C.Axis, C.Chart, C.Series), cc.compose(C.Axis, C.Chart, C.Series), Fo.compose(C.Pointer), B.extend(C, B);
|
|
5003
5003
|
let Tp = C;
|
|
5004
5004
|
return je.default;
|
|
5005
5005
|
})());
|
|
@@ -5009,102 +5009,102 @@ var Bp = /* @__PURE__ */ Dp();
|
|
|
5009
5009
|
const Np = /* @__PURE__ */ ln(Bp);
|
|
5010
5010
|
var hs = { exports: {} }, zp = hs.exports, an;
|
|
5011
5011
|
function Rp() {
|
|
5012
|
-
return an || (an = 1, (function(
|
|
5013
|
-
(function(
|
|
5014
|
-
|
|
5015
|
-
})(typeof self < "u" ? self : zp, function(
|
|
5016
|
-
return (function(
|
|
5017
|
-
function
|
|
5018
|
-
if (
|
|
5019
|
-
var
|
|
5020
|
-
return
|
|
5021
|
-
}
|
|
5022
|
-
var
|
|
5023
|
-
return
|
|
5024
|
-
|
|
5025
|
-
},
|
|
5026
|
-
var
|
|
5027
|
-
return
|
|
5012
|
+
return an || (an = 1, (function(we, he) {
|
|
5013
|
+
(function(Ot, xt) {
|
|
5014
|
+
we.exports = xt(Cp);
|
|
5015
|
+
})(typeof self < "u" ? self : zp, function(Ot) {
|
|
5016
|
+
return (function(xt) {
|
|
5017
|
+
function at(_) {
|
|
5018
|
+
if (St[_]) return St[_].exports;
|
|
5019
|
+
var nt = St[_] = { i: _, l: !1, exports: {} };
|
|
5020
|
+
return xt[_].call(nt.exports, nt, nt.exports, at), nt.l = !0, nt.exports;
|
|
5021
|
+
}
|
|
5022
|
+
var St = {};
|
|
5023
|
+
return at.m = xt, at.c = St, at.d = function(_, nt, gt) {
|
|
5024
|
+
at.o(_, nt) || Object.defineProperty(_, nt, { configurable: !1, enumerable: !0, get: gt });
|
|
5025
|
+
}, at.n = function(_) {
|
|
5026
|
+
var nt = _ && _.__esModule ? function() {
|
|
5027
|
+
return _.default;
|
|
5028
5028
|
} : function() {
|
|
5029
|
-
return
|
|
5029
|
+
return _;
|
|
5030
5030
|
};
|
|
5031
|
-
return
|
|
5032
|
-
},
|
|
5033
|
-
return Object.prototype.hasOwnProperty.call(
|
|
5034
|
-
},
|
|
5035
|
-
})([function(
|
|
5036
|
-
function
|
|
5037
|
-
return
|
|
5038
|
-
for (var
|
|
5039
|
-
var
|
|
5040
|
-
for (var dt in
|
|
5031
|
+
return at.d(nt, "a", nt), nt;
|
|
5032
|
+
}, at.o = function(_, nt) {
|
|
5033
|
+
return Object.prototype.hasOwnProperty.call(_, nt);
|
|
5034
|
+
}, at.p = "", at(at.s = 0);
|
|
5035
|
+
})([function(xt, at, St) {
|
|
5036
|
+
function _() {
|
|
5037
|
+
return _ = Object.assign ? Object.assign.bind() : function(z) {
|
|
5038
|
+
for (var J = 1; J < arguments.length; J++) {
|
|
5039
|
+
var rt = arguments[J];
|
|
5040
|
+
for (var dt in rt) Object.prototype.hasOwnProperty.call(rt, dt) && (z[dt] = rt[dt]);
|
|
5041
5041
|
}
|
|
5042
5042
|
return z;
|
|
5043
|
-
},
|
|
5043
|
+
}, _.apply(this, arguments);
|
|
5044
5044
|
}
|
|
5045
|
-
function
|
|
5046
|
-
return Ge(z) || Fe(z) ||
|
|
5045
|
+
function nt(z) {
|
|
5046
|
+
return Ge(z) || Fe(z) || Dt(z) || gt();
|
|
5047
5047
|
}
|
|
5048
|
-
function
|
|
5048
|
+
function gt() {
|
|
5049
5049
|
throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
5050
5050
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
|
|
5051
5051
|
}
|
|
5052
|
-
function
|
|
5052
|
+
function Dt(z, J) {
|
|
5053
5053
|
if (z) {
|
|
5054
|
-
if (typeof z == "string") return
|
|
5055
|
-
var
|
|
5056
|
-
return
|
|
5054
|
+
if (typeof z == "string") return de(z, J);
|
|
5055
|
+
var rt = Object.prototype.toString.call(z).slice(8, -1);
|
|
5056
|
+
return rt === "Object" && z.constructor && (rt = z.constructor.name), rt === "Map" || rt === "Set" ? Array.from(z) : rt === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(rt) ? de(z, J) : void 0;
|
|
5057
5057
|
}
|
|
5058
5058
|
}
|
|
5059
5059
|
function Fe(z) {
|
|
5060
5060
|
if (typeof Symbol < "u" && z[Symbol.iterator] != null || z["@@iterator"] != null) return Array.from(z);
|
|
5061
5061
|
}
|
|
5062
5062
|
function Ge(z) {
|
|
5063
|
-
if (Array.isArray(z)) return
|
|
5063
|
+
if (Array.isArray(z)) return de(z);
|
|
5064
5064
|
}
|
|
5065
|
-
function
|
|
5066
|
-
(
|
|
5067
|
-
for (var
|
|
5065
|
+
function de(z, J) {
|
|
5066
|
+
(J == null || J > z.length) && (J = z.length);
|
|
5067
|
+
for (var rt = 0, dt = new Array(J); rt < J; rt++) dt[rt] = z[rt];
|
|
5068
5068
|
return dt;
|
|
5069
5069
|
}
|
|
5070
|
-
function
|
|
5070
|
+
function Me(z) {
|
|
5071
5071
|
"@babel/helpers - typeof";
|
|
5072
|
-
return (
|
|
5073
|
-
return typeof
|
|
5074
|
-
} : function(
|
|
5075
|
-
return
|
|
5072
|
+
return (Me = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(J) {
|
|
5073
|
+
return typeof J;
|
|
5074
|
+
} : function(J) {
|
|
5075
|
+
return J && typeof Symbol == "function" && J.constructor === Symbol && J !== Symbol.prototype ? "symbol" : typeof J;
|
|
5076
5076
|
})(z);
|
|
5077
5077
|
}
|
|
5078
|
-
Object.defineProperty(
|
|
5079
|
-
return
|
|
5078
|
+
Object.defineProperty(at, "__esModule", { value: !0 }), St.d(at, "HighchartsReact", function() {
|
|
5079
|
+
return Te;
|
|
5080
5080
|
});
|
|
5081
|
-
var
|
|
5082
|
-
var
|
|
5083
|
-
return
|
|
5081
|
+
var Tt = St(1), Ye = St.n(Tt), Se = typeof window < "u" ? Tt.useLayoutEffect : Tt.useEffect, Te = Object(Tt.memo)(Object(Tt.forwardRef)(function(z, J) {
|
|
5082
|
+
var rt = Object(Tt.useRef)(), dt = Object(Tt.useRef)(), qt = Object(Tt.useRef)(z.constructorType), je = Object(Tt.useRef)(z.highcharts);
|
|
5083
|
+
return Se(function() {
|
|
5084
5084
|
function C() {
|
|
5085
|
-
var
|
|
5086
|
-
|
|
5085
|
+
var Kt = z.highcharts || (typeof window > "u" ? "undefined" : Me(window)) === "object" && window.Highcharts, Xt = z.constructorType || "chart";
|
|
5086
|
+
Kt ? Kt[Xt] ? z.options ? dt.current = Kt[Xt](rt.current, z.options, z.callback) : console.warn('The "options" property was not passed.') : console.warn('The "constructorType" property is incorrect or some required module is not imported.') : console.warn('The "highcharts" property was not passed.');
|
|
5087
5087
|
}
|
|
5088
5088
|
if (dt.current) {
|
|
5089
|
-
if (z.allowChartUpdate !== !1) if (z.constructorType !==
|
|
5089
|
+
if (z.allowChartUpdate !== !1) if (z.constructorType !== qt.current || z.highcharts !== je.current) qt.current = z.constructorType, je.current = z.highcharts, C();
|
|
5090
5090
|
else if (!z.immutable && dt.current) {
|
|
5091
5091
|
var fi;
|
|
5092
|
-
(fi = dt.current).update.apply(fi, [z.options].concat(
|
|
5092
|
+
(fi = dt.current).update.apply(fi, [z.options].concat(nt(z.updateArgs || [!0, !0])));
|
|
5093
5093
|
} else C();
|
|
5094
5094
|
} else C();
|
|
5095
|
-
}, [z.options, z.allowChartUpdate, z.updateArgs, z.containerProps, z.highcharts, z.constructorType]),
|
|
5095
|
+
}, [z.options, z.allowChartUpdate, z.updateArgs, z.containerProps, z.highcharts, z.constructorType]), Se(function() {
|
|
5096
5096
|
return function() {
|
|
5097
5097
|
dt.current && (dt.current.destroy(), dt.current = null);
|
|
5098
5098
|
};
|
|
5099
|
-
}, []), Object(
|
|
5099
|
+
}, []), Object(Tt.useImperativeHandle)(J, function() {
|
|
5100
5100
|
return { get chart() {
|
|
5101
5101
|
return dt.current;
|
|
5102
|
-
}, container:
|
|
5103
|
-
}, []), Ye.a.createElement("div",
|
|
5102
|
+
}, container: rt };
|
|
5103
|
+
}, []), Ye.a.createElement("div", _({}, z.containerProps, { ref: rt }));
|
|
5104
5104
|
}));
|
|
5105
|
-
|
|
5106
|
-
}, function(
|
|
5107
|
-
|
|
5105
|
+
at.default = Te;
|
|
5106
|
+
}, function(xt, at) {
|
|
5107
|
+
xt.exports = Ot;
|
|
5108
5108
|
}]);
|
|
5109
5109
|
});
|
|
5110
5110
|
})(hs)), hs.exports;
|
|
@@ -5152,33 +5152,40 @@ const Xp = /* @__PURE__ */ ln(Wp), nn = {
|
|
|
5152
5152
|
},
|
|
5153
5153
|
series: []
|
|
5154
5154
|
}, Hp = ({
|
|
5155
|
-
tokenUsage:
|
|
5156
|
-
page:
|
|
5155
|
+
tokenUsage: we,
|
|
5156
|
+
page: he = 0,
|
|
5157
|
+
viewMode: Ot = "token"
|
|
5157
5158
|
}) => {
|
|
5158
|
-
const
|
|
5159
|
+
const xt = Ep() ? Lp : rn, [at, St] = Pp(nn);
|
|
5159
5160
|
return Op(() => {
|
|
5160
|
-
const
|
|
5161
|
-
const
|
|
5161
|
+
const _ = we.map((gt) => {
|
|
5162
|
+
const Dt = gt.data.slice(he, he + 3);
|
|
5162
5163
|
return {
|
|
5163
|
-
name:
|
|
5164
|
-
data:
|
|
5164
|
+
name: gt.name,
|
|
5165
|
+
data: Dt
|
|
5165
5166
|
};
|
|
5166
|
-
}).filter((
|
|
5167
|
-
|
|
5168
|
-
const
|
|
5167
|
+
}).filter((gt) => gt.data.some((Dt) => Dt !== 0)), nt = Ot === "model" ? "Usage Count" : "Tokens";
|
|
5168
|
+
St((gt) => {
|
|
5169
|
+
const Dt = gt.xAxis.categories || nn.xAxis.categories;
|
|
5169
5170
|
return {
|
|
5170
|
-
...
|
|
5171
|
+
...gt,
|
|
5171
5172
|
title: {
|
|
5172
|
-
text:
|
|
5173
|
+
text: xt[he].join(" - ")
|
|
5174
|
+
},
|
|
5175
|
+
yAxis: {
|
|
5176
|
+
...gt.yAxis,
|
|
5177
|
+
title: {
|
|
5178
|
+
text: nt
|
|
5179
|
+
}
|
|
5173
5180
|
},
|
|
5174
5181
|
xAxis: {
|
|
5175
|
-
...
|
|
5176
|
-
categories: rn[
|
|
5182
|
+
...gt.xAxis,
|
|
5183
|
+
categories: rn[he] || Dt
|
|
5177
5184
|
},
|
|
5178
|
-
series:
|
|
5185
|
+
series: _
|
|
5179
5186
|
};
|
|
5180
5187
|
});
|
|
5181
|
-
}, [
|
|
5188
|
+
}, [we, he, xt, Ot]), /* @__PURE__ */ Ap(Xp, { highcharts: Np, options: at });
|
|
5182
5189
|
};
|
|
5183
5190
|
Hp.displayName = "Chart";
|
|
5184
5191
|
export {
|