@versini/sassysaint 8.51.0 → 8.51.1
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.WNM37aeI.js → AboutChangelog.BIKGjlK4.js} +2 -2
- package/dist/chunks/{AboutEntry.DsEQiX_E.js → AboutEntry.Bvl_l0xS.js} +5 -5
- package/dist/chunks/{App.Bu-CJnKe.js → App.G5LEkLPc.js} +345 -341
- package/dist/chunks/{Chart.BdBKxHIA.js → Chart.O7iJjuZ1.js} +662 -660
- package/dist/chunks/{ChatBubbleAssistant.B-vRFZBE.js → ChatBubbleAssistant.DR6NuTsN.js} +4 -4
- package/dist/chunks/{ChatBubbleUser.B5gHBtWt.js → ChatBubbleUser.DyDiVXkT.js} +3 -3
- package/dist/chunks/{ChatHistoryTable.Dlabwern.js → ChatHistoryTable.Ceddivd9.js} +3 -3
- package/dist/chunks/{HistoryEntry.DRtSTHsn.js → HistoryEntry.DNEz-Xkp.js} +3 -3
- package/dist/chunks/{ProfileEntry.BSSHn4EU.js → ProfileEntry.BGVFwilC.js} +2 -2
- package/dist/chunks/{SettingsEntry.DwwFKKy7.js → SettingsEntry.D9FWahsa.js} +3 -3
- package/dist/chunks/{Table.D-giOzeS.js → Table.CpK7zURs.js} +2 -2
- package/dist/chunks/{UsageEntry.CShAiRZX.js → UsageEntry.BdEcEOro.js} +3 -3
- package/dist/chunks/{index.wxtgxm6M.js → index.6OcHe6xE.js} +3 -3
- package/dist/chunks/{index.CrGSvvJa.js → index.BUTJCc-o.js} +1 -1
- package/dist/chunks/{index.aQpIhFBj.js → index.CoXgq2rQ.js} +1 -1
- package/dist/chunks/{index.CHVF-o0F.js → index.DRMQdLp_.js} +1778 -1714
- package/dist/chunks/{index.Bp_XB-o3.js → index.DvVy8-Zq.js} +2 -2
- package/dist/chunks/{index.DMEz-UrM.js → index.E5R-gRQM.js} +1 -1
- package/dist/chunks/{index.BHp59-sT.js → index.T93ZkOuc.js} +1 -1
- package/dist/chunks/{useMarkdown.CW97u9fP.js → useMarkdown.CYsjqhfo.js} +6 -6
- package/dist/components/SassySaint/SassySaint.js +1 -1
- package/dist/index.js +4 -4
- package/dist/style.css +3 -3
- package/package.json +5 -5
@@ -1,29 +1,29 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import { getDefaultExportFromCjs as ln } from "./App.
|
3
|
-
import
|
4
|
-
import { TRIMESTERS as rn, TRIMESTERS_SHORT as
|
5
|
-
var ls = { exports: {} },
|
6
|
-
function
|
7
|
-
return on || (on = 1, (function(
|
1
|
+
import { jsx as Ap } from "react/jsx-runtime";
|
2
|
+
import { getDefaultExportFromCjs as ln } from "./App.G5LEkLPc.js";
|
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.DRMQdLp_.js";
|
5
|
+
var ls = { exports: {} }, Ip = ls.exports, on;
|
6
|
+
function Dp() {
|
7
|
+
return on || (on = 1, (function(ke, ne) {
|
8
8
|
/**
|
9
|
-
* Highcharts JS v12.
|
9
|
+
* Highcharts JS v12.4.0 (2025-09-04)
|
10
10
|
* @module highcharts/highcharts
|
11
11
|
*
|
12
|
-
* (c) 2009-2025
|
12
|
+
* (c) 2009-2025 Highsoft AS
|
13
13
|
*
|
14
14
|
* License: www.highcharts.com/license
|
15
15
|
*/
|
16
|
-
(function(Pt,
|
17
|
-
Pt._Highcharts =
|
18
|
-
})(typeof window > "u" ?
|
19
|
-
let Pt,
|
20
|
-
var nt, Mt, j,
|
16
|
+
(function(Pt, mt) {
|
17
|
+
Pt._Highcharts = mt(), ke.exports = Pt._Highcharts;
|
18
|
+
})(typeof window > "u" ? Ip : window, () => (() => {
|
19
|
+
let Pt, mt;
|
20
|
+
var nt, Mt, j, J, le, He, Fe, Ge, he, we, St, Ye, Me, Se, z, Q, ot, dt, $t = {};
|
21
21
|
$t.d = (l, t) => {
|
22
22
|
for (var e in t) $t.o(t, e) && !$t.o(l, e) && Object.defineProperty(l, e, { enumerable: !0, get: t[e] });
|
23
23
|
}, $t.o = (l, t) => Object.prototype.hasOwnProperty.call(l, t);
|
24
24
|
var je = {};
|
25
|
-
$t.d(je, { default: () =>
|
26
|
-
l.SVG_NS = "http://www.w3.org/2000/svg", l.product = "Highcharts", l.version = "12.
|
25
|
+
$t.d(je, { default: () => Tp }), (function(l) {
|
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;
|
29
29
|
if (!l.isMS) {
|
@@ -62,32 +62,32 @@ function Ip() {
|
|
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 Te(l, t) {
|
66
66
|
return !!l && typeof l == "object" && (!t || !mi(l));
|
67
67
|
}
|
68
68
|
function ds(l) {
|
69
|
-
return
|
69
|
+
return Te(l) && typeof l.nodeType == "number";
|
70
70
|
}
|
71
71
|
function Lr(l) {
|
72
72
|
let t = l?.constructor;
|
73
|
-
return !!(
|
73
|
+
return !!(Te(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 Ae(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) && !Ae(e), r = (o, a) => {
|
83
|
+
Ae(o) ? l.setAttribute(a, o) : s ? (i = l.getAttribute(a)) || a !== "class" || (i = l.getAttribute(a + "Name")) : l.removeAttribute(a);
|
84
84
|
};
|
85
85
|
return Ve(t) ? r(e, t) : de(t, r), i;
|
86
86
|
}
|
87
87
|
function Ir(l) {
|
88
88
|
return mi(l) ? l : [l];
|
89
89
|
}
|
90
|
-
function
|
90
|
+
function Ce(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 Ip() {
|
|
100
100
|
}
|
101
101
|
}
|
102
102
|
function ps(l, t) {
|
103
|
-
|
103
|
+
Ce(l.style, t);
|
104
104
|
}
|
105
105
|
function Dr(l) {
|
106
106
|
return Math.pow(10, Math.floor(Math.log(l) / Math.LN10));
|
@@ -145,9 +145,9 @@ function Ip() {
|
|
145
145
|
function zr(l, t, e, i) {
|
146
146
|
if (e = e || {}, Zt?.createEvent && (l.dispatchEvent || l.fireEvent && l !== C)) {
|
147
147
|
let s = Zt.createEvent("Events");
|
148
|
-
s.initEvent(t, !0, !0), e =
|
148
|
+
s.initEvent(t, !0, !0), e = Ce(s, e), l.dispatchEvent ? l.dispatchEvent(e) : l.fireEvent(t, e);
|
149
149
|
} else if (l.hcEvents) {
|
150
|
-
e.target ||
|
150
|
+
e.target || Ce(e, { preventDefault: function() {
|
151
151
|
e.defaultPrevented = !0;
|
152
152
|
}, target: l, type: t });
|
153
153
|
let s = [], r = l, o = !1;
|
@@ -190,14 +190,14 @@ function Ip() {
|
|
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
|
+
Ae(l) && clearTimeout(l);
|
194
194
|
}, correctFloat: Br, createElement: function(l, t, e, i, s) {
|
195
195
|
let r = Zt.createElement(l);
|
196
|
-
return t &&
|
196
|
+
return t && Ce(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:
|
200
|
+
}, css: ps, defined: Ae, destroyObjectProperties: function(l, t, e) {
|
201
201
|
de(l, function(i, s) {
|
202
202
|
i !== t && i?.destroy && i.destroy(), (i?.destroy || !e) && delete l[s];
|
203
203
|
});
|
@@ -209,7 +209,7 @@ function Ip() {
|
|
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 Te(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 Ip() {
|
|
220
220
|
l.splice(e, 1);
|
221
221
|
break;
|
222
222
|
}
|
223
|
-
}, error: Ue, extend:
|
223
|
+
}, error: Ue, extend: Ce, extendClass: function(l, t) {
|
224
224
|
let e = function() {
|
225
225
|
};
|
226
|
-
return e.prototype = new l(),
|
226
|
+
return e.prototype = new l(), Ce(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 Ip() {
|
|
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 && Ae(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 Te(t) && (r = t["@this"]), r ?? t;
|
240
240
|
}
|
241
241
|
let s = t[i.replace(/[\\'"]/g, "")];
|
242
|
-
if (!
|
242
|
+
if (!Ae(s) || typeof s == "function" || typeof s.nodeType == "number" || s === Rt) return;
|
243
243
|
t = s;
|
244
244
|
}
|
245
245
|
return t;
|
@@ -261,10 +261,10 @@ function Ip() {
|
|
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: Te, isString: Ve, merge: function(l, ...t) {
|
265
265
|
let e, i = [l, ...t], s = {}, r = function(a, n) {
|
266
266
|
return typeof a != "object" && (a = {}), de(n, function(h, c) {
|
267
|
-
c !== "__proto__" && c !== "constructor" && (!
|
267
|
+
c !== "__proto__" && c !== "constructor" && (!Te(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));
|
@@ -438,18 +438,18 @@ function Ip() {
|
|
438
438
|
return jt;
|
439
439
|
}, setOptions: function(l) {
|
440
440
|
return kn(C, "setOptions", { options: l }), wn(!0, jt, l), l.time && xs.update(jt.time), l.lang && "locale" in l.lang && xs.update({ locale: l.lang.locale }), l.lang?.chartTitle && (jt.title = { ...jt.title, text: l.lang.chartTitle }), jt;
|
441
|
-
} }, { win: Mn } = C, { isNumber: qe, isString: Sn, merge: Tn, pInt:
|
442
|
-
class
|
441
|
+
} }, { win: Mn } = C, { isNumber: qe, isString: Sn, merge: Tn, pInt: xt, defined: Fr } = B, Gr = (l, t, e) => `color-mix(in srgb,${l},${t} ${100 * e}%)`, ys = (l) => Sn(l) && !!l && l !== "none";
|
442
|
+
class et {
|
443
443
|
static parse(t) {
|
444
|
-
return t ? new
|
444
|
+
return t ? new et(t) : et.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 !== et) return new o(t);
|
451
|
+
if (typeof t == "object" && t.stops !== void 0) this.stops = t.stops.map((a) => new et(a[1]));
|
452
|
+
else if (typeof t == "string") for (this.input = t = et.names[t.toLowerCase()] || t, s = et.parsers.length; s-- && !i; ) (e = (r = et.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 Ip() {
|
|
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] += xt(255 * t), e[i] < 0 && (e[i] = 0), e[i] > 255 && (e[i] = 255);
|
472
|
+
else et.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 Ip() {
|
|
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 et.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
|
+
et.names = { white: "#ffffff", black: "#000000" }, et.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 [xt(l[1]), xt(l[2]), xt(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 [xt(l[1]), xt(l[2]), xt(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 [xt(l[1] + l[1], 16), xt(l[2] + l[2], 16), xt(l[3] + l[3], 16), Fr(l[4]) ? xt(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 [xt(l[1], 16), xt(l[2], 16), xt(l[3], 16), Fr(l[4]) ? xt(l[4], 16) / 255 : 1];
|
493
|
+
} }], et.useColorMix = Mn.CSS?.supports("color", "color-mix(in srgb,red,blue 9%)"), et.None = new et("");
|
494
|
+
let { parse: Yr } = et, { win: An } = C, { isNumber: bs, objectEach: Cn } = B;
|
495
|
+
class yt {
|
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 Ip() {
|
|
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 < yt.timers.length; h++) yt.timers[h]() || yt.timers.splice(h--, 1);
|
524
|
+
yt.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() && yt.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;
|
@@ -538,8 +538,8 @@ function Ip() {
|
|
538
538
|
for (; f.length < d; ) {
|
539
539
|
let b = f[0], v = y[d - f.length];
|
540
540
|
if (v && b[0] === "M" && (v[0] === "C" ? f[0] = ["C", b[1], b[2], b[1], b[2], b[1], b[2]] : f[0] = ["L", b[1], b[2]]), f.unshift(b), a) {
|
541
|
-
let
|
542
|
-
f.push(f[f.length - 1],
|
541
|
+
let k = f.pop();
|
542
|
+
f.push(f[f.length - 1], k);
|
543
543
|
}
|
544
544
|
}
|
545
545
|
}
|
@@ -568,25 +568,25 @@ function Ip() {
|
|
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
|
+
yt.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
|
+
yt.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 = yt.timers.length;
|
584
|
+
for (; e--; ) yt.timers[e].elem !== l || t && t !== yt.timers[e].prop || (yt.timers[e].stopped = !0);
|
585
585
|
}
|
586
586
|
let gt = { 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 yt(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 Ip() {
|
|
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 tt {
|
601
601
|
static filterUserAttributes(t) {
|
602
602
|
return qr(t, (e, i) => {
|
603
603
|
let s = !0;
|
604
|
-
|
604
|
+
tt.allowedAttributes.indexOf(i) === -1 && (s = !1), ["background", "dynsrc", "href", "lowsrc", "src"].indexOf(i) !== -1 && (s = Zr(e) && tt.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 Ip() {
|
|
611
611
|
}, {});
|
612
612
|
}
|
613
613
|
static setElementHTML(t, e) {
|
614
|
-
t.innerHTML =
|
614
|
+
t.innerHTML = tt.emptyHTML, e && new tt(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 Ip() {
|
|
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 = tt.bypassHTMLFiltering;
|
624
624
|
if (n) if (n === "#text") a = h;
|
625
|
-
else if (
|
625
|
+
else if (tt.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 : tt.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 Ip() {
|
|
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 = tt.parseStyle(d.value) : c[d.name] = d.value;
|
654
654
|
}), n.attributes = c;
|
655
655
|
}
|
656
656
|
if (r.childNodes.length) {
|
@@ -664,7 +664,7 @@ function Ip() {
|
|
664
664
|
return [].forEach.call(e.body.childNodes, (r) => s(r, i)), i;
|
665
665
|
}
|
666
666
|
}
|
667
|
-
|
667
|
+
tt.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"], tt.allowedReferences = ["https://", "http://", "mailto:", "/", "../", "./", "#"], tt.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"], tt.emptyHTML = Hn, tt.bypassHTMLFiltering = !1;
|
668
668
|
let { defaultOptions: Kr, defaultTime: _r } = Ot, { 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("");
|
@@ -682,27 +682,27 @@ function Ip() {
|
|
682
682
|
let b = p[1] === "else";
|
683
683
|
if (u.isBlock && u.fn && (p[1] === `/${u.fn}` || b)) if (g) !b && g--;
|
684
684
|
else {
|
685
|
-
let v = u.startInner,
|
686
|
-
u.body === void 0 ? (u.body =
|
685
|
+
let v = u.startInner, k = l.substr(v, p.index - v);
|
686
|
+
u.body === void 0 ? (u.body = k, u.startInner = p.index + p[0].length) : u.elseBody = k, u.find += k + p[0], b || (r.push(u), u = void 0);
|
687
687
|
}
|
688
688
|
else u.isBlock || r.push(u);
|
689
689
|
if (f && !u?.isBlock) break;
|
690
690
|
}
|
691
691
|
return r.forEach((m) => {
|
692
|
-
let f, y, { body: b, elseBody: v, expression:
|
693
|
-
if (
|
694
|
-
let S = [m],
|
692
|
+
let f, y, { body: b, elseBody: v, expression: k, fn: M } = m;
|
693
|
+
if (M) {
|
694
|
+
let S = [m], w = [], A = k.length, P = 0, T;
|
695
695
|
for (y = 0; y <= A; y++) {
|
696
|
-
let L =
|
697
|
-
T || L !== '"' && L !== "'" ? T === L && (T = "") : T = L, T || L !== " " && y !== A || (
|
696
|
+
let L = k.charAt(y);
|
697
|
+
T || L !== '"' && L !== "'" ? T === L && (T = "") : T = L, T || L !== " " && y !== A || (w.push(k.substr(P, y - P)), P = y + 1);
|
698
698
|
}
|
699
|
-
for (y = bi[
|
700
|
-
f = bi[
|
699
|
+
for (y = bi[M].length; y--; ) S.unshift(d(w[y + 1]));
|
700
|
+
f = bi[M].apply(t, S), m.isBlock && typeof f == "boolean" && (f = vi(f ? b : v, t, e));
|
701
701
|
} else {
|
702
|
-
let S = to(
|
703
|
-
if (typeof f == "number" && (S.length ||
|
702
|
+
let S = to(k) ? [k] : k.split(":"), w = (f = d(S.shift() || "")) % 1 != 0;
|
703
|
+
if (typeof f == "number" && (S.length || w)) {
|
704
704
|
let A = S.join(":");
|
705
|
-
if (o.test(A) ||
|
705
|
+
if (o.test(A) || w) {
|
706
706
|
let P = parseInt((A.match(a) || ["", "-1"])[1], 10);
|
707
707
|
f !== null && (f = c(f, P, n.decimalPoint, A.indexOf(",") > -1 ? n.thousandsSep : ""));
|
708
708
|
} else f = h.dateFormat(A, f);
|
@@ -744,10 +744,10 @@ function Ip() {
|
|
744
744
|
}
|
745
745
|
return c.apply(s, a), d = 0, t.some((b) => {
|
746
746
|
let v = 0;
|
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((
|
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 = j, { animate: Jn, animObject: Qn, stop: io } = gt, { deg2rad: so, doc:
|
750
|
+
let ki = j, { animate: Jn, animObject: Qn, stop: io } = gt, { deg2rad: so, doc: Pe, svg: tl, SVG_NS: wi, win: el, isFirefox: il } = C, { addEvent: sl, attr: Ss, createElement: rl, crisp: Mi, css: ro, defined: Wt, erase: ol, extend: _e, fireEvent: Ts, getAlignFactor: As, isArray: oo, isFunction: ao, isNumber: al, isObject: nl, isString: no, merge: Cs, objectEach: Oe, pick: Ut, pInt: Si, pushUnique: ll, replaceNested: hl, syncTimeout: dl, uniqueKey: lo } = B;
|
751
751
|
class ct {
|
752
752
|
_defaultGetter(t) {
|
753
753
|
let e = Ut(this[t + "Value"], this[t], this.element ? this.element.getAttribute(t) : null, 0);
|
@@ -783,9 +783,9 @@ function Ip() {
|
|
783
783
|
}
|
784
784
|
animate(t, e, i) {
|
785
785
|
let s = Qn(Ut(e, this.renderer.globalAnimation, !0)), r = s.defer;
|
786
|
-
return
|
786
|
+
return Pe.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), Oe(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 Ip() {
|
|
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 = Pe.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 Ip() {
|
|
808
808
|
[].forEach.call(a.querySelectorAll("text tspan"), (c) => {
|
809
809
|
n += Number(c.getAttribute("dy"));
|
810
810
|
});
|
811
|
-
let h =
|
811
|
+
let h = Pe.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) : (Oe(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
|
}
|
@@ -834,16 +834,16 @@ function Ip() {
|
|
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 && !Wt(a.gradientUnits) && (n = a, a = Cs(a, s.getRadialAttr(u, n), { gradientUnits: "userSpaceOnUse" })),
|
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 && !Wt(a.gradientUnits) && (n = a, a = Cs(a, s.getRadialAttr(u, n), { gradientUnits: "userSpaceOnUse" })), Oe(a, function(f, y) {
|
838
838
|
y !== "id" && x.push(y, f);
|
839
|
-
}),
|
839
|
+
}), Oe(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 = et.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 Ip() {
|
|
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 && Oe(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;
|
@@ -888,7 +888,7 @@ function Ip() {
|
|
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), Oe(t, (n, h) => {
|
892
892
|
(t[h]?.parentGroup === t || ["connector", "foreignObject"].indexOf(h) !== -1) && t[h]?.destroy?.(), delete t[h];
|
893
893
|
});
|
894
894
|
}
|
@@ -925,8 +925,8 @@ function Ip() {
|
|
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), [[
|
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), _ = Math.min(I, D, O, E), F = Math.max(A, P, T, L) - N, G = Math.max(I, D, O, E) - _;
|
929
|
+
return { x: N, y: _, 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 Ip() {
|
|
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) : Pe.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,7 +982,7 @@ function Ip() {
|
|
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 = Pe.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;
|
@@ -994,7 +994,7 @@ function Ip() {
|
|
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] ||
|
997
|
+
let e = this.element, i = e.getElementsByTagName("title")[0] || Pe.createElementNS(this.SVG_NS, "title");
|
998
998
|
e.insertBefore ? e.insertBefore(i, e.firstChild) : e.appendChild(i), i.textContent = hl(Ut(t, ""), [/<[^>]*>/g, ""]).replace(/</g, "<").replace(/>/g, ">");
|
999
999
|
}
|
1000
1000
|
toFront() {
|
@@ -1123,10 +1123,10 @@ function Ip() {
|
|
1123
1123
|
return (this.widthSetting || this.bBox.width || 0) + e + i;
|
1124
1124
|
}
|
1125
1125
|
xSetter(t) {
|
1126
|
-
this.x = t, this.alignFactor && (t -= this.alignFactor * this.getPaddedWidth(), this["forceAnimate:x"] = !0), this.xSetting = Math.round(t), this.attr("translateX", this.xSetting);
|
1126
|
+
this.x = t, this.alignFactor && (t -= this.alignFactor * this.getPaddedWidth(), this["forceAnimate:x"] = !0), this.anchorX && (this["forceAnimate:anchorX"] = !0), this.xSetting = Math.round(t), this.attr("translateX", this.xSetting);
|
1127
1127
|
}
|
1128
1128
|
ySetter(t) {
|
1129
|
-
this.ySetting = this.y = Math.round(t), this.attr("translateY", this.ySetting);
|
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
|
ce.emptyBBox = { width: 0, height: 0, x: 0, y: 0 }, ce.textProps = ["color", "direction", "fontFamily", "fontSize", "fontStyle", "fontWeight", "lineClamp", "lineHeight", "textAlign", "textDecoration", "textOutline", "textOverflow", "whiteSpace", "width"];
|
@@ -1184,7 +1184,7 @@ function Ip() {
|
|
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 tt(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,26 +1261,26 @@ function Ip() {
|
|
1261
1261
|
t && t.indexOf(e) !== -1 || (l = l.toString().replace(RegExp(e, "g"), i));
|
1262
1262
|
}), l;
|
1263
1263
|
}
|
1264
|
-
}, { defaultOptions: kl } = Ot, { charts: wl, deg2rad: yo, doc:
|
1264
|
+
}, { defaultOptions: kl } = Ot, { charts: wl, deg2rad: yo, doc: Le, 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: pe, destroyObjectProperties: Cl, extend: ue, isArray: Pl, isNumber: ge, 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(Le.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 tt([t]).addToDOM(this.defs.element);
|
1276
1276
|
}
|
1277
1277
|
getReferenceURL() {
|
1278
|
-
if ((bo || Ml) &&
|
1279
|
-
if (!pe(
|
1280
|
-
let t = Il(), e = new
|
1281
|
-
Pi(e, { position: "fixed", top: 0, left: 0, zIndex: 9e5 }),
|
1278
|
+
if ((bo || Ml) && Le.getElementsByTagName("base").length) {
|
1279
|
+
if (!pe(mt)) {
|
1280
|
+
let t = Il(), e = new tt([{ 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(Le.body);
|
1281
|
+
Pi(e, { position: "fixed", top: 0, left: 0, zIndex: 9e5 }), mt = Le.elementFromPoint(6, 6)?.id === "hitme", Le.body.removeChild(e);
|
1282
1282
|
}
|
1283
|
-
if (
|
1283
|
+
if (mt) return El(Ds.location.href.split("#")[0], [/<[^>]*>/g, ""], [/([\('\)])/g, "\\$1"], [/ /g, "%20"]);
|
1284
1284
|
}
|
1285
1285
|
return "";
|
1286
1286
|
}
|
@@ -1315,8 +1315,8 @@ function Ip() {
|
|
1315
1315
|
}
|
1316
1316
|
getContrast(t) {
|
1317
1317
|
if (t === "transparent") return "#000000";
|
1318
|
-
let e =
|
1319
|
-
if (
|
1318
|
+
let e = et.parse(t).rgba, i = " clamp(0,calc(9e9*(0.5 - (0.2126*r + 0.7152*g + 0.0722*b))),1)";
|
1319
|
+
if (ge(e[0]) || !et.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 Ip() {
|
|
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 = [tt.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], tt.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() {
|
@@ -1389,7 +1389,7 @@ function Ip() {
|
|
1389
1389
|
}
|
1390
1390
|
image(t, e, i, s, r, o) {
|
1391
1391
|
let a = { preserveAspectRatio: "none" };
|
1392
|
-
|
1392
|
+
ge(e) && (a.x = e), ge(i) && (a.y = i), ge(s) && (a.width = s), ge(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
|
};
|
@@ -1409,12 +1409,12 @@ function Ip() {
|
|
1409
1409
|
m.imgwidth = Ns(o?.width, Is[h]?.width), m.imgheight = Ns(o?.height, Is[h]?.height), c = (f) => f.attr({ width: f.width, height: f.height }), ["width", "height"].forEach((f) => {
|
1410
1410
|
m[`${f}Setter`] = function(y, b) {
|
1411
1411
|
this[b] = y;
|
1412
|
-
let { alignByTranslate: v, element:
|
1413
|
-
o && o.backgroundSize === "within" &&
|
1412
|
+
let { alignByTranslate: v, element: k, width: M, height: S, imgwidth: w, imgheight: A } = this, P = b === "width" ? w : A, T = 1;
|
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
|
}), pe(e) && m.attr({ x: e, y: i }), m.isImg = !0, m.symbolUrl = t, pe(m.imgwidth) && pe(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" }), Le.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;
|
@@ -1434,7 +1434,7 @@ function Ip() {
|
|
1434
1434
|
}), o;
|
1435
1435
|
}
|
1436
1436
|
fontMetrics(t) {
|
1437
|
-
let e = Ll(Xt.prototype.getStyle.call(t, "font-size") || 0), i = e < 24 ? e + 3 : Math.round(1.2 * e), s = Math.round(0.8 * i);
|
1437
|
+
let e = ge(t) ? t : Ll(Xt.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,7 +1443,7 @@ function Ip() {
|
|
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]) && ge(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) {
|
@@ -1503,12 +1503,12 @@ function Ip() {
|
|
1503
1503
|
if (e || Kt(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
|
1507
|
-
(A > i ||
|
1506
|
+
let w = this.textPxLength ? this.textPxLength : (Kt(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") && (Kt(t, { width: (r || n || w > A || P) && Li(u) ? u + "px" : "auto", display: c, whiteSpace: d || "normal" }), this.oldTextWidth = u);
|
1508
1508
|
}
|
1509
1509
|
e && (Kt(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) && Kt(t, { transform: `rotate(${r}deg)`, transformOrigin: `${v}% ${v}px` }), this.getSpanCorrection(!wo(r) && !this.textWidth && this.textPxLength || t.offsetWidth, y, Wl(p)));
|
1510
|
-
let { xCorr:
|
1511
|
-
(n || h) && (S.transform = `scale(${n ?? 1},${h ?? 1})`), e ? (super.updateTransform(), Li(m) && Li(f) ? (e.attr({ x: m +
|
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" }), Kt(t, { display: c, textAlign: p })) : Bl && e.attr({ width: 0, height: 0 })) : Kt(t, S), this.cTT = b, this.oldRotation = r, this.oldAlign = p;
|
1512
1512
|
}
|
1513
1513
|
}
|
1514
1514
|
add(t) {
|
@@ -1526,7 +1526,7 @@ function Ip() {
|
|
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, tt.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,14 +1535,14 @@ function Ip() {
|
|
1535
1535
|
this[e] = t, this.doTransform = !0;
|
1536
1536
|
}
|
1537
1537
|
}
|
1538
|
-
let
|
1539
|
-
|
1538
|
+
let fe = Ee.prototype;
|
1539
|
+
fe.visibilitySetter = fe.opacitySetter = Mo, fe.ySetter = fe.rotationSetter = fe.rotationOriginXSetter = fe.rotationOriginYSetter = fe.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 =
|
1544
|
+
})(J || (J = {}));
|
1545
|
+
let Gl = J, { addEvent: Yl, isFunction: jl, objectEach: Ul, removeEvent: Vl } = B;
|
1546
1546
|
(le || (le = {})).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 })));
|
@@ -1557,11 +1557,11 @@ function Ip() {
|
|
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), Lt.format(n.format, S, i)) : t.defaultLabelFormatter.call(S),
|
1561
|
-
|
1562
|
-
for (f = 0; f <
|
1560
|
+
let v = (S) => n.formatter ? n.formatter.call(S, S) : n.format ? (S.text = t.defaultLabelFormatter.call(S), Lt.format(n.format, S, i)) : t.defaultLabelFormatter.call(S), k = v.call(b, b), M = m?.list;
|
1561
|
+
M ? l.shortenLabel = function() {
|
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: "" });
|
1564
|
-
} : l.shortenLabel = void 0, p && t._addedPlotLB && l.moveLabel(
|
1564
|
+
} : l.shortenLabel = void 0, p && t._addedPlotLB && l.moveLabel(k, n), Rs(g) || l.movedLabel ? g && g.textStr !== k && !p && (!g.textWidth || n.style.width || g.styles.width || g.css({ width: null }), g.attr({ text: k }), g.textPxLength = g.getBBox().width) : (l.label = g = l.createLabel(k, n), l.rotation = 0);
|
1565
1565
|
}
|
1566
1566
|
createLabel(l, t, e) {
|
1567
1567
|
let i = this.axis, { renderer: s, styledMode: r } = i.chart, o = t.style.whiteSpace, a = Rs(l) && t.enabled ? s.text(l, e?.x, e?.y, t.useHTML).add(i.labelGroup) : void 0;
|
@@ -1614,7 +1614,7 @@ function Ip() {
|
|
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 } = gt, { xAxis: To, yAxis: Ql } = Gl, { defaultOptions: Ws } = Ot, { registerEventOptions: th } = Ei, { deg2rad: eh } = C, { arrayMax: Ao, arrayMin: ih, clamp: Xs, correctFloat:
|
1617
|
+
}, { animObject: Jl } = gt, { xAxis: To, yAxis: Ql } = Gl, { defaultOptions: Ws } = Ot, { registerEventOptions: th } = Ei, { deg2rad: eh } = C, { arrayMax: Ao, arrayMin: ih, clamp: Xs, correctFloat: At, defined: K, destroyObjectProperties: sh, erase: Co, error: Hs, extend: Bi, fireEvent: it, 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
1619
|
class De {
|
1620
1620
|
constructor(t, e, i) {
|
@@ -1622,15 +1622,15 @@ function Ip() {
|
|
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, it(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), it(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 = K(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 && !K(this.reversed) && (this.reversed = !0), this.labelRotation = R(a.rotation) ? a.rotation : void 0, th(this, o),
|
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 && !K(this.reversed) && (this.reversed = !0), this.labelRotation = R(a.rotation) ? a.rotation : void 0, th(this, o), it(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), it(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,7 +1641,7 @@ function Ip() {
|
|
1641
1641
|
}
|
1642
1642
|
getSeriesExtremes() {
|
1643
1643
|
let t, e = this;
|
1644
|
-
|
1644
|
+
it(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;
|
@@ -1652,13 +1652,13 @@ function Ip() {
|
|
1652
1652
|
}
|
1653
1653
|
}
|
1654
1654
|
});
|
1655
|
-
}),
|
1655
|
+
}), it(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
|
-
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 =
|
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 = At(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);
|
@@ -1668,18 +1668,18 @@ function Ip() {
|
|
1668
1668
|
}
|
1669
1669
|
getPlotLinePath(t) {
|
1670
1670
|
let e = this, i = e.chart, s = e.left, r = e.top, o = t.old, a = t.value, n = t.lineWidth, h = o && i.oldChartHeight || i.chartHeight, c = o && i.oldChartWidth || i.chartWidth, d = e.transB, p = t.translatedValue, u = t.force, g, x, m, f, y;
|
1671
|
-
function b(
|
1672
|
-
return u !== "pass" && (
|
1671
|
+
function b(k, M, S) {
|
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
|
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),
|
1675
|
+
return it(this, "getPlotLinePath", v, function(k) {
|
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 = At(Math.floor(e / t) * t), n = At(Math.ceil(i / t) * t), h = [];
|
1681
|
+
if (At(a + t) === a && (o = 20), this.single) return [e];
|
1682
|
+
for (s = a; s <= n && (h.push(s), (s = At(s + t, o)) !== r); ) r = s;
|
1683
1683
|
return h;
|
1684
1684
|
}
|
1685
1685
|
getMinorTickInterval() {
|
@@ -1742,16 +1742,16 @@ function Ip() {
|
|
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, it(this, "afterSetAxisTranslation");
|
1746
1746
|
}
|
1747
1747
|
minFromRange() {
|
1748
1748
|
let { max: t, min: e } = this;
|
1749
1749
|
return R(t) && R(e) && t - e || void 0;
|
1750
1750
|
}
|
1751
1751
|
setTickInterval(t) {
|
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,
|
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,
|
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) && (!K(L) &&
|
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 && K(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 = At(n.log2lin(this.min), 16), this.max = At(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)), it(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) && (!K(L) && M && (this.min -= S * M), !K(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
|
!K(L) && this.min < O && r >= O ? this.min = h.minRange ? Math.min(O, this.max - u) : O : !K(I) && this.max > O && s <= O && (this.max = h.minRange ? Math.max(O, this.min + u) : O);
|
1757
1757
|
}
|
@@ -1761,9 +1761,9 @@ function Ip() {
|
|
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
|
+
}), it(this, "postProcessData", { hasExtremesChanged: O });
|
1765
1765
|
}
|
1766
|
-
this.setAxisTranslation(),
|
1766
|
+
this.setAxisTranslation(), it(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
|
}
|
@@ -1780,11 +1780,11 @@ function Ip() {
|
|
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()), it(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 (it(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;
|
@@ -1827,7 +1827,7 @@ function Ip() {
|
|
1827
1827
|
K(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(At(o[o.length - 1] + u)), m = () => o.unshift(At(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]);
|
@@ -1855,13 +1855,13 @@ function Ip() {
|
|
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, it(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), it(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 Ip() {
|
|
1871
1871
|
}
|
1872
1872
|
getExtremes() {
|
1873
1873
|
let t = this.logarithmic;
|
1874
|
-
return { min: t ?
|
1874
|
+
return { min: t ? At(t.lin2log(this.min)) : this.min, max: t ? At(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 Ip() {
|
|
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 it(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 Ip() {
|
|
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 it(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 = At(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)), At(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) {
|
@@ -1913,7 +1913,7 @@ function Ip() {
|
|
1913
1913
|
if (!i) {
|
1914
1914
|
let a = s.style.width;
|
1915
1915
|
if (a !== void 0) return parseInt(String(a), 10);
|
1916
|
-
if (o) return o - e.spacing[3];
|
1916
|
+
if (!this.opposite && o) return o - e.spacing[3];
|
1917
1917
|
}
|
1918
1918
|
return 0.33 * e.chartWidth;
|
1919
1919
|
}
|
@@ -1947,20 +1947,20 @@ function Ip() {
|
|
1947
1947
|
this.axisGroup || (this.gridGroup = o("grid", "-grid", s.gridZIndex), this.axisGroup = o("axis", "", s.zIndex), this.labelGroup = o("axis-labels", "-labels", s.labels.zIndex));
|
1948
1948
|
}
|
1949
1949
|
getOffset() {
|
1950
|
-
let t = this, { chart: e, horiz: i, options: s, side: r, ticks: o, tickPositions: a, coll: n } = t, h = e.inverted && !t.isZAxis ? [1, 0, 3, 2][r] : r, c = t.hasData(), d = s.title, p = s.labels, u = R(s.crossing), g = e.axisOffset, x = e.clipOffset, m = [-1, 1, 1, -1][r], f, y = 0, b, v = 0,
|
1951
|
-
if (t.showAxis = f = c || s.showEmpty, t.staggerLines = t.horiz && p.staggerLines || void 0, t.createGroups(), c || t.isLinked ? (a.forEach(function(
|
1952
|
-
t.generateTick(
|
1953
|
-
}), t.renderUnsquish(), t.reserveSpaceDefault = r === 0 || r === 2 || { 1: "left", 3: "right" }[r] === t.labelAlign, H(p.reserveSpace, !u && null, t.labelAlign === "center" || null, t.reserveSpaceDefault) && a.forEach(function(
|
1954
|
-
|
1955
|
-
}), t.staggerLines && (
|
1956
|
-
|
1957
|
-
}), d?.text && d.enabled !== !1 && (t.addTitle(f), f && !u && d.reserveSpace !== !1 && (t.titleOffset = y = t.axisTitle.getBBox()[i ? "height" : "width"], v = K(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,
|
1958
|
-
let
|
1959
|
-
g[r] = Math.max(g[r], (t.axisTitleMargin || 0) + y + m * t.offset,
|
1950
|
+
let t = this, { chart: e, horiz: i, options: s, side: r, ticks: o, tickPositions: a, coll: n } = t, h = e.inverted && !t.isZAxis ? [1, 0, 3, 2][r] : r, c = t.hasData(), d = s.title, p = s.labels, u = R(s.crossing), g = e.axisOffset, x = e.clipOffset, m = [-1, 1, 1, -1][r], f, y = 0, b, v = 0, k = 0, M, S;
|
1951
|
+
if (t.showAxis = f = c || s.showEmpty, t.staggerLines = t.horiz && p.staggerLines || void 0, t.createGroups(), c || t.isLinked ? (a.forEach(function(w) {
|
1952
|
+
t.generateTick(w);
|
1953
|
+
}), t.renderUnsquish(), t.reserveSpaceDefault = r === 0 || r === 2 || { 1: "left", 3: "right" }[r] === t.labelAlign, H(p.reserveSpace, !u && null, t.labelAlign === "center" || null, t.reserveSpaceDefault) && a.forEach(function(w) {
|
1954
|
+
k = Math.max(o[w].getLabelSize(), k);
|
1955
|
+
}), t.staggerLines && (k *= t.staggerLines), t.labelOffset = k * (t.opposite ? -1 : 1)) : zi(o, function(w, A) {
|
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 = K(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
|
+
let w = this.tickSize("tick");
|
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
|
+
it(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,7 +1971,7 @@ function Ip() {
|
|
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 it(this, "afterGetTitlePosition", { titlePosition: m }), m;
|
1975
1975
|
}
|
1976
1976
|
renderMinorTick(t, e) {
|
1977
1977
|
let i = this.minorTicks;
|
@@ -1983,38 +1983,38 @@ function Ip() {
|
|
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);
|
1986
|
-
if (i.labelEdge.length = 0, i.overlap = !1, [d, p, u].forEach(function(
|
1987
|
-
zi(
|
1988
|
-
|
1986
|
+
if (i.labelEdge.length = 0, i.overlap = !1, [d, p, u].forEach(function(k) {
|
1987
|
+
zi(k, function(M) {
|
1988
|
+
M.isActive = !1;
|
1989
1989
|
});
|
1990
1990
|
}), R(m)) {
|
1991
|
-
let
|
1992
|
-
if (
|
1993
|
-
let S =
|
1994
|
-
i.horiz && (S =
|
1991
|
+
let k = this.isXAxis ? s.yAxis[0] : s.xAxis[0], M = [1, -1, -1, 1][this.side];
|
1992
|
+
if (k) {
|
1993
|
+
let S = k.toPixels(m, !0);
|
1994
|
+
i.horiz && (S = k.len - S), i.offset = M * S;
|
1995
1995
|
}
|
1996
1996
|
}
|
1997
1997
|
if (i.hasData() || n) {
|
1998
|
-
let
|
1999
|
-
i.minorTickInterval && !i.categories && i.getMinorTickPositions().forEach(function(
|
2000
|
-
i.renderMinorTick(
|
2001
|
-
}), h.length && (h.forEach(function(
|
2002
|
-
i.renderTick(
|
2003
|
-
}), f && (i.min === 0 || i.single) && (d[-1] || (d[-1] = new Ie(i, -1, null, !0)), d[-1].render(-1))), x && h.forEach(function(
|
2004
|
-
e = h[S + 1] !== void 0 ? h[S + 1] + f : i.max - f, S % 2 == 0 &&
|
2005
|
-
}), i._addedPlotLB || (i._addedPlotLB = !0, (a.plotLines || []).concat(a.plotBands || []).forEach(function(
|
2006
|
-
i.addPlotBandOrLine(
|
1998
|
+
let k = i.chart.hasRendered && i.old && R(i.old.min);
|
1999
|
+
i.minorTickInterval && !i.categories && i.getMinorTickPositions().forEach(function(M) {
|
2000
|
+
i.renderMinorTick(M, k);
|
2001
|
+
}), h.length && (h.forEach(function(M, S) {
|
2002
|
+
i.renderTick(M, S, k);
|
2003
|
+
}), f && (i.min === 0 || i.single) && (d[-1] || (d[-1] = new Ie(i, -1, null, !0)), d[-1].render(-1))), x && h.forEach(function(M, S) {
|
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
|
+
}), i._addedPlotLB || (i._addedPlotLB = !0, (a.plotLines || []).concat(a.plotBands || []).forEach(function(M) {
|
2006
|
+
i.addPlotBandOrLine(M);
|
2007
2007
|
}));
|
2008
2008
|
}
|
2009
|
-
[d, p, u].forEach(function(
|
2010
|
-
let
|
2011
|
-
zi(
|
2012
|
-
|
2009
|
+
[d, p, u].forEach(function(k) {
|
2010
|
+
let M = [], S = v.duration;
|
2011
|
+
zi(k, function(w, A) {
|
2012
|
+
w.isActive || (w.render(A, !1, 0), w.isActive = !1, M.push(A));
|
2013
2013
|
}), lh(function() {
|
2014
|
-
let
|
2015
|
-
for (;
|
2016
|
-
},
|
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,
|
2014
|
+
let w = M.length;
|
2015
|
+
for (; w--; ) k[M[w]] && !k[M[w]].isActive && (k[M[w]].destroy(), delete k[M[w]]);
|
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, it(this, "afterRender");
|
2018
2018
|
}
|
2019
2019
|
redraw() {
|
2020
2020
|
this.visible && (this.render(), this.plotLinesAndBands.forEach(function(t) {
|
@@ -2028,7 +2028,7 @@ function Ip() {
|
|
2028
2028
|
}
|
2029
2029
|
destroy(t) {
|
2030
2030
|
let e = this, i = e.plotLinesAndBands, s = this.eventOptions;
|
2031
|
-
if (
|
2031
|
+
if (it(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 Ip() {
|
|
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 (
|
2046
|
+
if (it(this, "drawCrosshair", { e: t, point: e }), t || (t = this.cross?.e), i && (K(e) || !s) !== !1) {
|
2047
2047
|
if (s ? K(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), K(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), !K(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 ?
|
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 ? et.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
|
+
it(this, "afterDrawCrosshair", { e: t, point: e });
|
2051
2051
|
}
|
2052
2052
|
hideCrosshair() {
|
2053
|
-
this.cross && this.cross.hide(),
|
2053
|
+
this.cross && this.cross.hide(), it(this, "afterHideCrosshair");
|
2054
2054
|
}
|
2055
2055
|
update(t, e) {
|
2056
2056
|
let i = this.chart;
|
@@ -2169,8 +2169,8 @@ function Ip() {
|
|
2169
2169
|
d = d || this.options;
|
2170
2170
|
let p = this.getPlotLinePath({ value: c, force: !0, acrossPanes: d.acrossPanes }), u = [], g = this.horiz, x = !Do(this.min) || !Do(this.max) || h < this.min && c < this.min || h > this.max && c > this.max, m = this.getPlotLinePath({ value: h, force: !0, acrossPanes: d.acrossPanes }), f, y = 1, b;
|
2171
2171
|
if (m && p) for (x && (b = m.toString() === p.toString(), y = 0), f = 0; f < m.length; f += 2) {
|
2172
|
-
let v = m[f],
|
2173
|
-
(v[0] === "M" || v[0] === "L") && (
|
2172
|
+
let v = m[f], k = m[f + 1], M = p[f], S = p[f + 1];
|
2173
|
+
(v[0] === "M" || v[0] === "L") && (k[0] === "M" || k[0] === "L") && (M[0] === "M" || M[0] === "L") && (S[0] === "M" || S[0] === "L") && (g && M[1] === v[1] ? (M[1] += y, S[1] += y) : g || M[2] !== v[2] || (M[2] += y, S[2] += y), u.push(["M", v[1], v[2]], ["L", k[1], k[2]], ["L", S[1], S[2]], ["L", M[1], M[2]], ["Z"])), u.isFlat = b;
|
2174
2174
|
}
|
2175
2175
|
return u;
|
2176
2176
|
}
|
@@ -2211,8 +2211,8 @@ function Ip() {
|
|
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 = Ft(p) && Ft(d),
|
2215
|
-
if (!t.chart.styledMode && (
|
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 = Ft(p) && Ft(d), k = Ft(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)), Ft(u)) y = t.getPlotLinePath({ value: s?.log2lin(u) ?? u, lineWidth: f.strokeWidth(), acrossPanes: e.acrossPanes });
|
2216
2216
|
else {
|
2217
2217
|
if (!(Ft(p) && Ft(d))) return;
|
2218
2218
|
y = t.getPlotBandPath(s?.log2lin(p) ?? p, s?.log2lin(d) ?? d, e);
|
@@ -2221,11 +2221,11 @@ function Ip() {
|
|
2221
2221
|
f?.on(P, (T) => {
|
2222
2222
|
o[P].apply(this, [T]);
|
2223
2223
|
});
|
2224
|
-
}), this.eventsAdded = !0), (
|
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 && (Ft(x.text) || Ft(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
|
-
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
|
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
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" || Ft(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
|
}
|
@@ -2306,27 +2306,27 @@ function Ip() {
|
|
2306
2306
|
return { width: r ? Math.max(t.scrollWidth, e.scrollWidth, t.offsetWidth, e.offsetWidth, e.clientWidth) - 2 * s - 2 : i.chartWidth, height: r ? Math.max(t.scrollHeight, e.scrollHeight, t.offsetHeight, e.offsetHeight, e.clientHeight) : i.chartHeight };
|
2307
2307
|
}
|
2308
2308
|
getPosition(t, e, i) {
|
2309
|
-
let { distance: s, chart: r, outside: o, pointer: a } = this, { inverted: n, plotLeft: h, plotTop: c, polar: d } = r, { plotX: p = 0, plotY: u = 0 } = i, g = {}, x = n && i.h || 0, { height: m, width: f } = this.getPlayingField(), y = a.getChartPosition(), b = (O) => O * y.scaleX, v = (O) => O * y.scaleY,
|
2309
|
+
let { distance: s, chart: r, outside: o, pointer: a } = this, { inverted: n, plotLeft: h, plotTop: c, polar: d } = r, { plotX: p = 0, plotY: u = 0 } = i, g = {}, x = n && i.h || 0, { height: m, width: f } = this.getPlayingField(), y = a.getChartPosition(), b = (O) => O * y.scaleX, v = (O) => O * y.scaleY, k = (O) => {
|
2310
2310
|
let E = O === "x";
|
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 && Ne(i.ttBelow, !d && !n === A), T = function(O, E, N,
|
2315
|
-
let W = o ? O === "y" ? v(s) : b(s) : s, V = (N -
|
2314
|
+
let P = !this.followPointer && Ne(i.ttBelow, !d && !n === A), T = function(O, E, N, _, F, G, X) {
|
2315
|
+
let W = o ? O === "y" ? v(s) : b(s) : s, V = (N - _) / 2, U = _ < F - s, $ = F + s + _ < E, Z = F - W - N + V, q = F + W - V;
|
2316
2316
|
if (P && $) g[O] = q;
|
2317
2317
|
else if (!P && U) g[O] = Z;
|
2318
|
-
else if (U) g[O] = Math.min(X -
|
2318
|
+
else if (U) g[O] = Math.min(X - _, Z - x < 0 ? Z : Z - x);
|
2319
2319
|
else {
|
2320
2320
|
if (!$) return g[O] = 0, !1;
|
2321
|
-
g[O] = Math.max(
|
2321
|
+
g[O] = Math.max(G, q + x + N > E ? q : q + x);
|
2322
2322
|
}
|
2323
|
-
}, L = function(O, E, N,
|
2324
|
-
if (
|
2325
|
-
|
2323
|
+
}, L = function(O, E, N, _, F) {
|
2324
|
+
if (F < s || F > E - s) return !1;
|
2325
|
+
F < N / 2 ? g[O] = 1 : F > E - _ / 2 ? g[O] = E - _ - 2 : g[O] = F - N / 2;
|
2326
2326
|
}, I = function(O) {
|
2327
|
-
[
|
2327
|
+
[M, S] = [S, M], w = O;
|
2328
2328
|
}, D = () => {
|
2329
|
-
T.apply(0,
|
2329
|
+
T.apply(0, M) !== !1 ? L.apply(0, S) !== !1 || w || (I(!0), D()) : w ? g.x = g.y = 0 : (I(!0), D());
|
2330
2330
|
};
|
2331
2331
|
return (n && !d || this.len > 1) && I(), D(), g;
|
2332
2332
|
}
|
@@ -2378,68 +2378,68 @@ function Ip() {
|
|
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 },
|
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, V = [0, 0], U = !0) {
|
2382
2382
|
let $, Z;
|
2383
|
-
if (W.isHeader) Z = S ? 0 : I, $ = Be(V[0] -
|
2383
|
+
if (W.isHeader) Z = S ? 0 : I, $ = Be(V[0] - G / 2, v.left, v.right - G - (i.outside ? w : 0));
|
2384
2384
|
else if (g && W) {
|
2385
|
-
let q = i.getFixedPosition(
|
2385
|
+
let q = i.getFixedPosition(G, X, W);
|
2386
2386
|
$ = q.x, Z = q.y - T;
|
2387
|
-
} else Z = V[1] - T, $ = Be($ = U ? V[0] -
|
2387
|
+
} else Z = V[1] - T, $ = Be($ = U ? V[0] - G - p : V[0] + p, U ? $ : v.left, v.right);
|
2388
2388
|
return { x: $, y: Z };
|
2389
2389
|
};
|
2390
2390
|
Gs(t) && (t = [!1, t]);
|
2391
|
-
let O = t.slice(0, e.length + 1).reduce(function(
|
2391
|
+
let O = t.slice(0, e.length + 1).reduce(function(G, X, W) {
|
2392
2392
|
if (X !== !1 && X !== "") {
|
2393
|
-
let V = e[W - 1] || { isHeader: !0, plotX: e[0].plotX, plotY: o, series: {} }, U = V.isHeader, $ = U ? i : V.series, Z = $.tt = (function(Nt,
|
2394
|
-
let Ct = Nt, { isHeader:
|
2393
|
+
let V = e[W - 1] || { isHeader: !0, plotX: e[0].plotX, plotY: o, series: {} }, U = V.isHeader, $ = U ? i : V.series, Z = $.tt = (function(Nt, ft, ae) {
|
2394
|
+
let Ct = Nt, { isHeader: ve, series: gi } = ft, zt = gi.tooltipOptions || u;
|
2395
2395
|
if (!Ct) {
|
2396
2396
|
let Xe = { padding: zt.padding, r: zt.borderRadius };
|
2397
|
-
d || (Xe.fill = zt.backgroundColor, Xe["stroke-width"] = zt.borderWidth ?? (g && !
|
2397
|
+
d || (Xe.fill = zt.backgroundColor, Xe["stroke-width"] = zt.borderWidth ?? (g && !ve ? 0 : 1)), Ct = M.label("", 0, 0, zt[ve ? "headerShape" : "shape"] || (g && !ve ? "rect" : "callout"), void 0, void 0, zt.useHTML).addClass(i.getClassName(ft, !0, ve)).attr(Xe).add(k);
|
2398
2398
|
}
|
2399
|
-
return Ct.isActive = !0, Ct.attr({ text: ae }), d || Ct.css(zt.style).attr({ stroke: zt.borderColor ||
|
2399
|
+
return Ct.isActive = !0, Ct.attr({ text: ae }), d || Ct.css(zt.style).attr({ stroke: zt.borderColor || ft.color || gi.color || "#333333" }), Ct;
|
2400
2400
|
})($.tt, V, X.toString()), q = Z.getBBox(), vt = q.width + Z.strokeWidth();
|
2401
2401
|
U && (L = q.height, I += L, S && (T -= L));
|
2402
2402
|
let { anchorX: kt, anchorY: wt } = (function(Nt) {
|
2403
|
-
let
|
2404
|
-
if (Ct)
|
2403
|
+
let ft, ae, { isHeader: Ct, plotX: ve = 0, plotY: gi = 0, series: zt } = Nt;
|
2404
|
+
if (Ct) ft = Math.max(a + ve, a), ae = n + o / 2;
|
2405
2405
|
else {
|
2406
2406
|
let { xAxis: Xe, yAxis: sn } = zt;
|
2407
|
-
|
2407
|
+
ft = Xe.pos + Be(ve, -p, Xe.len + p), zt.shouldShowTooltip(0, sn.pos - n + gi, { ignoreX: !0 }) && (ae = sn.pos + gi);
|
2408
2408
|
}
|
2409
|
-
return { anchorX:
|
2409
|
+
return { anchorX: ft = Be(ft, v.left - p, v.right + p), anchorY: ae };
|
2410
2410
|
})(V);
|
2411
2411
|
if (typeof wt == "number") {
|
2412
|
-
let Nt = q.height + 1,
|
2413
|
-
|
2412
|
+
let Nt = q.height + 1, ft = (m || D).call(i, vt, Nt, V, [kt, wt]);
|
2413
|
+
G.push({ align: P ? 0 : void 0, anchorX: kt, anchorY: wt, boxWidth: vt, point: V, rank: Ne(ft.rank, +!!U), size: Nt, target: ft.y, tt: Z, x: ft.x });
|
2414
2414
|
} else Z.isActive = !1;
|
2415
2415
|
}
|
2416
|
-
return
|
2416
|
+
return G;
|
2417
2417
|
}, []);
|
2418
|
-
!P && O.some((
|
2419
|
-
let { outside: X } = i, W = (X ?
|
2420
|
-
return W < v.left && W +
|
2421
|
-
}) && (O = O.map((
|
2422
|
-
let { x: X, y: W } = D.call(this,
|
2423
|
-
return Ih(
|
2418
|
+
!P && O.some((G) => {
|
2419
|
+
let { outside: X } = i, W = (X ? w : 0) + G.anchorX;
|
2420
|
+
return W < v.left && W + G.boxWidth < v.right || W < w - v.left + G.boxWidth && v.right - W > W;
|
2421
|
+
}) && (O = O.map((G) => {
|
2422
|
+
let { x: X, y: W } = D.call(this, G.boxWidth, G.size, G.point, [G.anchorX, G.anchorY], !1);
|
2423
|
+
return Ih(G, { target: W, x: X });
|
2424
2424
|
})), i.cleanSplit(), Oh(O, I);
|
2425
|
-
let E = { left:
|
2426
|
-
O.forEach(function(
|
2427
|
-
let { x: X, boxWidth: W, isHeader: V } =
|
2428
|
-
!V && (i.outside &&
|
2429
|
-
}), O.forEach(function(
|
2430
|
-
let { x: X, anchorX: W, anchorY: V, pos: U, point: { isHeader: $ } } =
|
2425
|
+
let E = { left: w, right: w };
|
2426
|
+
O.forEach(function(G) {
|
2427
|
+
let { x: X, boxWidth: W, isHeader: V } = G;
|
2428
|
+
!V && (i.outside && w + X < E.left && (E.left = w + X), !V && i.outside && E.left + W > E.right && (E.right = w + X));
|
2429
|
+
}), O.forEach(function(G) {
|
2430
|
+
let { x: X, anchorX: W, anchorY: V, pos: U, point: { isHeader: $ } } = G, Z = { visibility: U === void 0 ? "hidden" : "inherit", x: X, y: (U || 0) + T + (g && x.y || 0), anchorX: W, anchorY: V };
|
2431
2431
|
if (i.outside && X < W) {
|
2432
|
-
let q =
|
2432
|
+
let q = w - E.left;
|
2433
2433
|
q > 0 && ($ || (Z.x = X + q, Z.anchorX = W + q), $ && (Z.x = (E.right - E.left) / 2, Z.anchorX = W + q));
|
2434
2434
|
}
|
2435
|
-
|
2435
|
+
G.tt.attr(Z);
|
2436
2436
|
});
|
2437
|
-
let { container: N, outside:
|
2438
|
-
if (
|
2439
|
-
let { width:
|
2440
|
-
|
2437
|
+
let { container: N, outside: _, renderer: F } = i;
|
2438
|
+
if (_ && N && F) {
|
2439
|
+
let { width: G, height: X, x: W, y: V } = k.getBBox();
|
2440
|
+
F.setSize(G + W, X + V, !1), N.style.left = E.left + "px", N.style.top = A + "px";
|
2441
2441
|
}
|
2442
|
-
Ph &&
|
2442
|
+
Ph && k.attr({ opacity: k.opacity === 1 ? 0.999 : 1 });
|
2443
2443
|
}
|
2444
2444
|
drawTracker() {
|
2445
2445
|
if (!this.shouldStickOnContact()) {
|
@@ -2476,8 +2476,8 @@ function Ip() {
|
|
2476
2476
|
let { chart: e, container: i, distance: s, options: r, pointer: o, renderer: a } = this, { height: n = 0, width: h = 0 } = this.getLabel(), { fixed: c, positioner: d } = r, { left: p, top: u, scaleX: g, scaleY: x } = o.getChartPosition(), m = (d || c && this.getFixedPosition || this.getPosition).call(this, h, n, t), f = C.doc, y = (t.plotX || 0) + e.plotLeft, b = (t.plotY || 0) + e.plotTop, v;
|
2477
2477
|
if (a && i) {
|
2478
2478
|
if (d || c) {
|
2479
|
-
let { scrollLeft:
|
2480
|
-
m.x +=
|
2479
|
+
let { scrollLeft: k = 0, scrollTop: M = 0 } = e.scrollablePlotArea?.scrollingContainer || {};
|
2480
|
+
m.x += k + p - s, m.y += M + u - s;
|
2481
2481
|
}
|
2482
2482
|
v = (r.borderWidth || 0) + 2 * s + 2, a.setSize(Be(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
|
}
|
@@ -2637,31 +2637,32 @@ function Ip() {
|
|
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
2639
|
x = i.pointAttribs(this, t), m = Jt(d.options.chart.animation, r.animation);
|
2640
|
-
let
|
2641
|
-
i.options.inactiveOtherPoints && _t(
|
2642
|
-
S && !S.hasClass("highcharts-data-label-hidden") && (S.animate({ opacity:
|
2640
|
+
let M = x.opacity;
|
2641
|
+
i.options.inactiveOtherPoints && _t(M) && (this.dataLabels || []).forEach(function(S) {
|
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
2645
|
g && this.graphic.animate(g, Jt(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
|
-
let b = r.halo, v = this.graphic || f,
|
2648
|
-
b?.size && v &&
|
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-" + Jt(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 }, tt.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 Qt = ii, { parse: Kh } =
|
2655
|
+
let Qt = ii, { parse: Kh } = et, { charts: Vs, composed: _h, isTouchDevice: Jh } = C, { addEvent: Et, attr: Qh, css: $s, extend: Zs, find: jo, fireEvent: te, isNumber: Gi, isObject: Yi, objectEach: td, offset: ed, pick: Gt, pushUnique: id, splat: Uo } = B;
|
2656
2656
|
class pt {
|
2657
2657
|
applyInactiveState(t = []) {
|
2658
2658
|
let e = [];
|
2659
|
-
t.forEach((
|
2660
|
-
let
|
2661
|
-
e.push(
|
2662
|
-
}), this.chart.series
|
2663
|
-
|
2664
|
-
|
2659
|
+
for (let i of (t.forEach((s) => {
|
2660
|
+
let r = s.series;
|
2661
|
+
e.push(r), r.linkedParent && e.push(r.linkedParent), r.linkedSeries && e.push.apply(e, r.linkedSeries), r.navigatorSeries && e.push(r.navigatorSeries), r.boosted && r.markerGroup && e.push.apply(e, this.chart.series.filter((o) => o.markerGroup === r.markerGroup));
|
2662
|
+
}), this.chart.series)) {
|
2663
|
+
let s = i.options;
|
2664
|
+
s.states?.inactive?.enabled !== !1 && (e.indexOf(i) === -1 ? i.setState("inactive", !0) : s.inactiveOtherPoints && i.setAllPointsToState("inactive"));
|
2665
|
+
}
|
2665
2666
|
}
|
2666
2667
|
destroy() {
|
2667
2668
|
let t = this;
|
@@ -2702,7 +2703,7 @@ function Ip() {
|
|
2702
2703
|
}
|
2703
2704
|
Gi(i.index) && (this.selectionMarker = s.destroy());
|
2704
2705
|
}
|
2705
|
-
i && Gi(i.index) && ($s(i.container, { cursor: i._cursor }), i.cancelClick = this.hasDragged > 10, i.mouseIsDown = !1, this.hasDragged = 0, this.pinchDown = []);
|
2706
|
+
i && Gi(i.index) && ($s(i.container, { cursor: i._cursor }), i.cancelClick = this.hasDragged > 10, i.mouseIsDown = !1, this.hasDragged = 0, this.pinchDown = [], this.hasPinchMoved = !1);
|
2706
2707
|
}
|
2707
2708
|
findNearestKDPoint(t, e, i) {
|
2708
2709
|
let s;
|
@@ -2810,7 +2811,7 @@ function Ip() {
|
|
2810
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();
|
2811
2812
|
}
|
2812
2813
|
onDocumentMouseUp(t) {
|
2813
|
-
Vs[Gt(pt.hoverChartIndex, -1)]?.pointer?.drop(t);
|
2814
|
+
t?.touches && this.hasPinchMoved && t?.preventDefault?.(), Vs[Gt(pt.hoverChartIndex, -1)]?.pointer?.drop(t);
|
2814
2815
|
}
|
2815
2816
|
pinch(t) {
|
2816
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 && Gt(h?.options.followTouchMove, !0);
|
@@ -2886,7 +2887,7 @@ function Ip() {
|
|
2886
2887
|
}
|
2887
2888
|
touch(t, e) {
|
2888
2889
|
let i, { chart: s, pinchDown: r = [] } = this;
|
2889
|
-
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" && (i = !!r[0] && Math.pow(r[0].chartX - t.chartX, 2) + Math.pow(r[0].chartY - t.chartY, 2) >= 16), Gt(i, !0) && this.pinch(t)) : e && this.reset() : t.touches.length === 2 && this.pinch(t);
|
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), Gt(i, !0) && this.pinch(t)) : e && this.reset() : t.touches.length === 2 && this.pinch(t);
|
2890
2891
|
}
|
2891
2892
|
touchSelect(t) {
|
2892
2893
|
return !!(this.chart.zooming.singleTouch && t.touches && t.touches.length === 1);
|
@@ -2979,8 +2980,8 @@ function Ip() {
|
|
2979
2980
|
let s = i.legendItem || {}, r = e.options, o = e.symbolHeight, a = r.squareSymbol, n = a ? o : e.symbolWidth;
|
2980
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);
|
2981
2982
|
};
|
2982
|
-
})(
|
2983
|
-
let qo =
|
2983
|
+
})(we || (we = {}));
|
2984
|
+
let qo = we, { defaultOptions: Ko } = Ot, { extend: ad, extendClass: nd, merge: ld } = B;
|
2984
2985
|
(function(l) {
|
2985
2986
|
function t(e, i) {
|
2986
2987
|
let s = Ko.plotOptions || {}, r = i.defaultOptions, o = i.prototype;
|
@@ -2988,8 +2989,7 @@ function Ip() {
|
|
2988
2989
|
}
|
2989
2990
|
l.seriesTypes = C.seriesTypes, l.registerSeriesType = t, l.seriesType = function(e, i, s, r, o) {
|
2990
2991
|
let a = Ko.plotOptions || {};
|
2991
|
-
if (i = i || "", a[e] = ld(a[i], s), delete l.seriesTypes[e], t(e, nd(l.seriesTypes[i] ||
|
2992
|
-
}, r)), l.seriesTypes[e].prototype.type = e, o) {
|
2992
|
+
if (i = i || "", a[e] = ld(a[i], s), delete l.seriesTypes[e], t(e, nd(l.seriesTypes[i] || Tt, r)), l.seriesTypes[e].prototype.type = e, o) {
|
2993
2993
|
class n extends Qt {
|
2994
2994
|
}
|
2995
2995
|
ad(n.prototype, o), l.seriesTypes[e].prototype.pointClass = n;
|
@@ -2997,31 +2997,31 @@ function Ip() {
|
|
2997
2997
|
return l.seriesTypes[e];
|
2998
2998
|
};
|
2999
2999
|
})(St || (St = {}));
|
3000
|
-
let at = St, { animObject: _o, setAnimation: hd } = gt, { defaultOptions: Ui } = Ot, { registerEventOptions: dd } = Ei, { svg: cd, win: pd } = C, { seriesTypes: ze } = at, { format: ud } = Lt, { arrayMax: Ks, arrayMin: Jo, clamp: Qo, correctFloat: ta, crisp: gd, defined: ht, destroyObjectProperties: fd, diffObjects: md, erase: ea, error: Vi, extend: Re, find: xd, fireEvent:
|
3001
|
-
class
|
3000
|
+
let at = St, { animObject: _o, setAnimation: hd } = gt, { defaultOptions: Ui } = Ot, { registerEventOptions: dd } = Ei, { svg: cd, win: pd } = C, { seriesTypes: ze } = at, { format: ud } = Lt, { arrayMax: Ks, arrayMin: Jo, clamp: Qo, correctFloat: ta, crisp: gd, defined: ht, destroyObjectProperties: fd, diffObjects: md, erase: ea, error: Vi, extend: Re, find: xd, fireEvent: st, getClosestDistance: yd, getNestedProperty: ia, insertItem: sa, isArray: ra, isNumber: ut, isString: bd, merge: oi, objectEach: _s, pick: rt, removeEvent: vd, syncTimeout: oa } = B;
|
3001
|
+
class It {
|
3002
3002
|
constructor() {
|
3003
3003
|
this.zoneAxis = "y";
|
3004
3004
|
}
|
3005
3005
|
init(t, e) {
|
3006
3006
|
let i;
|
3007
|
-
|
3007
|
+
st(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(), Re(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 =
|
3011
|
+
this.linkedSeries = [], this.bindAxes(), Re(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 = rt(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), st(this, "afterInit");
|
3012
3012
|
}
|
3013
3013
|
is(t) {
|
3014
3014
|
return ze[t] && this instanceof ze[t];
|
3015
3015
|
}
|
3016
3016
|
bindAxes() {
|
3017
3017
|
let t, e = this, i = e.options, s = e.chart;
|
3018
|
-
|
3018
|
+
st(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, (rt(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
|
+
}), st(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 Ip() {
|
|
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 = rt(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
|
}
|
@@ -3044,20 +3044,20 @@ function Ip() {
|
|
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
|
+
st(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 = rt(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 }), st(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 = rt(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);
|
@@ -3105,27 +3105,27 @@ function Ip() {
|
|
3105
3105
|
return ["x", ...this.pointArrayMap || ["y"]];
|
3106
3106
|
}
|
3107
3107
|
setData(t, e = !0, i, s) {
|
3108
|
-
let r = this.points, o = r?.length || 0, a = this.options, n = this.chart, h = a.dataSorting, c = this.xAxis, d = a.turboThreshold, p = this.dataTable, u = this.dataColumnKeys(), g = this.pointValKey || "y", x = (this.pointArrayMap || []).length, m = a.keys, f, y, b = 0, v = 1,
|
3109
|
-
n.options.chart.allowMutatingData || (a.data && delete this.options.data, this.userOptions.data && delete this.userOptions.data,
|
3110
|
-
let
|
3111
|
-
if (h?.enabled && (t = this.sortData(t)), n.options.chart.allowMutatingData && s !== !1 &&
|
3108
|
+
let r = this.points, o = r?.length || 0, a = this.options, n = this.chart, h = a.dataSorting, c = this.xAxis, d = a.turboThreshold, p = this.dataTable, u = this.dataColumnKeys(), g = this.pointValKey || "y", x = (this.pointArrayMap || []).length, m = a.keys, f, y, b = 0, v = 1, k;
|
3109
|
+
n.options.chart.allowMutatingData || (a.data && delete this.options.data, this.userOptions.data && delete this.userOptions.data, k = oi(!0, t));
|
3110
|
+
let M = (t = k || t || []).length;
|
3111
|
+
if (h?.enabled && (t = this.sortData(t)), n.options.chart.allowMutatingData && s !== !1 && M && o && !this.cropped && !this.hasGroupedData && this.visible && !this.boosted && (y = this.updateData(t, i)), !y) {
|
3112
3112
|
this.xIncrement = null, this.colorCounter = 0;
|
3113
|
-
let S = d && !a.relativeXValue &&
|
3113
|
+
let S = d && !a.relativeXValue && M > d;
|
3114
3114
|
if (S) {
|
3115
|
-
let
|
3116
|
-
if (ut(
|
3115
|
+
let w = this.getFirstValidPoint(t), A = this.getFirstValidPoint(t, M - 1, -1), P = (T) => !!(ra(T) && (m || ut(T[0])));
|
3116
|
+
if (ut(w) && ut(A)) {
|
3117
3117
|
let T = [], L = [];
|
3118
3118
|
for (let I of t) T.push(this.autoIncrement()), L.push(I);
|
3119
3119
|
p.setColumns({ x: T, [g]: L });
|
3120
|
-
} else if (P(
|
3121
|
-
let T = +(
|
3120
|
+
} else if (P(w) && P(A)) if (x) {
|
3121
|
+
let T = +(w.length === x), L = Array(u.length).fill(0).map(() => []);
|
3122
3122
|
for (let I of t) {
|
3123
3123
|
T && L[0].push(this.autoIncrement());
|
3124
3124
|
for (let D = T; D <= x; D++) L[D]?.push(I[D - T]);
|
3125
3125
|
}
|
3126
3126
|
p.setColumns(u.reduce((I, D, O) => (I[D] = L[O], I), {}));
|
3127
3127
|
} else {
|
3128
|
-
m && (b = m.indexOf("x"), v = m.indexOf("y"), b = b >= 0 ? b : 0, v = v >= 0 ? v : 1),
|
3128
|
+
m && (b = m.indexOf("x"), v = m.indexOf("y"), b = b >= 0 ? b : 0, v = v >= 0 ? v : 1), w.length === 1 && (v = 0);
|
3129
3129
|
let T = [], L = [];
|
3130
3130
|
if (b === v) for (let I of t) T.push(this.autoIncrement()), L.push(I[v]);
|
3131
3131
|
else for (let I of t) T.push(I[b]), L.push(I[v]);
|
@@ -3134,12 +3134,12 @@ function Ip() {
|
|
3134
3134
|
else S = !1;
|
3135
3135
|
}
|
3136
3136
|
if (!S) {
|
3137
|
-
let
|
3138
|
-
for (f = 0; f <
|
3137
|
+
let w = u.reduce((A, P) => (A[P] = [], A), {});
|
3138
|
+
for (f = 0; f < M; f++) {
|
3139
3139
|
let A = this.pointClass.prototype.applyOptions.apply({ series: this }, [t[f]]);
|
3140
|
-
for (let P of u)
|
3140
|
+
for (let P of u) w[P][f] = A[P];
|
3141
3141
|
}
|
3142
|
-
p.setColumns(
|
3142
|
+
p.setColumns(w);
|
3143
3143
|
}
|
3144
3144
|
for (bd(this.getColumn("y")[0]) && Vi(14, !0, n), this.data = [], this.options.data = this.userOptions.data = t, f = o; f--; ) r[f]?.destroy();
|
3145
3145
|
c && (c.minRange = c.userMinRange), this.isDirty = n.isDirtyBox = !0, this.isDirtyData = !!r, i = !1;
|
@@ -3172,7 +3172,7 @@ function Ip() {
|
|
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, st(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;
|
@@ -3193,24 +3193,24 @@ function Ip() {
|
|
3193
3193
|
generatePoints() {
|
3194
3194
|
let t = this.options, e = this.processedData || t.data, i = this.dataTable.modified, s = this.getColumn("x", !0), r = this.pointClass, o = i.rowCount, a = this.cropStart || 0, n = this.hasGroupedData, h = t.keys, c = [], d = t.dataGrouping?.groupAll ? a : 0, p = this.xAxis?.categories, u = this.pointArrayMap || ["y"], g = this.dataColumnKeys(), x, m, f, y, b = this.data, v;
|
3195
3195
|
if (!b && !n) {
|
3196
|
-
let
|
3197
|
-
|
3196
|
+
let k = [];
|
3197
|
+
k.length = e?.length || 0, b = this.data = k;
|
3198
3198
|
}
|
3199
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, Re(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, st(this, "afterGeneratePoints");
|
3202
3202
|
}
|
3203
3203
|
getXExtremes(t) {
|
3204
3204
|
return { min: Jo(t), max: Ks(t) };
|
3205
3205
|
}
|
3206
3206
|
getExtremes(t, e) {
|
3207
|
-
let { xAxis: i, yAxis: s } = this, r = e || this.getExtremesFromAll || this.options.getExtremesFromAll, o = r && this.cropped ? this.dataTable : this.dataTable.modified, a = o.rowCount, n = t || this.stackedYData, h = n ? [n] : (this.keysAffectYAxis || this.pointArrayMap || ["y"])?.map((
|
3208
|
-
for (i && (y = (x = i.getExtremes()).min, b = x.max), f = 0; f < a; f++) if (m = c[f], g || (c[f + p] || m) >= y && (c[f - p] || m) <= b) for (let
|
3209
|
-
let
|
3210
|
-
ut(
|
3207
|
+
let { xAxis: i, yAxis: s } = this, r = e || this.getExtremesFromAll || this.options.getExtremesFromAll, o = r && this.cropped ? this.dataTable : this.dataTable.modified, a = o.rowCount, n = t || this.stackedYData, h = n ? [n] : (this.keysAffectYAxis || this.pointArrayMap || ["y"])?.map((k) => o.getColumn(k, !0) || []) || [], c = this.getColumn("x", !0), d = [], p = this.requireSorting && !this.is("column") ? 1 : 0, u = !!s && s.positiveValuesOnly, g = r || this.cropped || !i, x, m, f, y = 0, b = 0;
|
3208
|
+
for (i && (y = (x = i.getExtremes()).min, b = x.max), f = 0; f < a; f++) if (m = c[f], g || (c[f + p] || m) >= y && (c[f - p] || m) <= b) for (let k of h) {
|
3209
|
+
let M = k[f];
|
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 st(this, "afterGetExtremes", { dataExtremes: v }), v;
|
3214
3214
|
}
|
3215
3215
|
applyExtremes() {
|
3216
3216
|
let t = this.getExtremes();
|
@@ -3230,10 +3230,10 @@ function Ip() {
|
|
3230
3230
|
return Qo(b, -1e9, 1e9);
|
3231
3231
|
}
|
3232
3232
|
for (u = 0; u < a; u++) {
|
3233
|
-
let b, v = o[u],
|
3234
|
-
v.plotX = ut(g = i.translate(
|
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 = rt(ut(c) ? c : r.min)), r.positiveValuesOnly && ht(A) && A <= 0 && (A = void 0), v.total = v.stackTotal = rt(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, st(this, "afterTranslate");
|
3237
3237
|
}
|
3238
3238
|
getValidPoints(t, e, i) {
|
3239
3239
|
let s = this.chart;
|
@@ -3270,38 +3270,38 @@ function Ip() {
|
|
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, st(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 = rt(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 = rt(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) {
|
3285
|
-
let
|
3286
|
-
c ? d && s.css({ fill:
|
3285
|
+
let k = this.pointAttribs(i, c || !i.selected ? void 0 : "select");
|
3286
|
+
c ? d && s.css({ fill: k.fill }) : s[r](k);
|
3287
3287
|
}
|
3288
3288
|
s && s.addClass(i.getClassName(), !0);
|
3289
3289
|
} else s && (i.graphic = s.destroy());
|
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 = rt(r.radius, s?.radius);
|
3294
|
+
e && (n = s.states[e], h = r.states && r.states[e], c = rt(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 = rt(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 = rt((d = o.states && o.states[e] || {}).lineWidth, c.lineWidth, x + rt(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 = rt(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 (st(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);
|
@@ -3314,29 +3314,29 @@ function Ip() {
|
|
3314
3314
|
applyZones() {
|
3315
3315
|
let { area: t, chart: e, graph: i, zones: s, points: r, xAxis: o, yAxis: a, zoneAxis: n } = this, { inverted: h, renderer: c } = e, d = this[`${n}Axis`], { isXAxis: p, len: u = 0, minPointOffset: g = 0 } = d || {}, x = (i?.strokeWidth() || 0) / 2 + 1, m = (f, y = 0, b = 0) => {
|
3316
3316
|
h && (b = u - b);
|
3317
|
-
let { translated: v = 0, lineClip:
|
3318
|
-
|
3317
|
+
let { translated: v = 0, lineClip: k } = f, M = b - v;
|
3318
|
+
k?.push(["L", y, Math.abs(M) < x ? b - x * (M <= 0 ? -1 : 1) : v]);
|
3319
3319
|
};
|
3320
3320
|
if (s.length && (i || t) && d && ut(d.min)) {
|
3321
|
-
let f = d.getExtremes().max + g, y = (
|
3322
|
-
|
3323
|
-
(
|
3321
|
+
let f = d.getExtremes().max + g, y = (k) => {
|
3322
|
+
k.forEach((M, S) => {
|
3323
|
+
(M[0] === "M" || M[0] === "L") && (k[S] = [M[0], p ? u - M[1] : M[1], p ? M[2] : u - M[2]]);
|
3324
3324
|
});
|
3325
3325
|
};
|
3326
|
-
if (s.forEach((
|
3327
|
-
|
3328
|
-
}), i && !this.showLine && i.hide(), t && t.hide(), n === "y" && r.length < o.len) for (let
|
3329
|
-
let { plotX:
|
3330
|
-
|
3326
|
+
if (s.forEach((k) => {
|
3327
|
+
k.lineClip = [], k.translated = Qo(d.toPixels(rt(k.value, f), !0) || 0, 0, u);
|
3328
|
+
}), i && !this.showLine && i.hide(), t && t.hide(), n === "y" && r.length < o.len) for (let k of r) {
|
3329
|
+
let { plotX: M, plotY: S, zone: w } = k, A = w && s[s.indexOf(w) - 1];
|
3330
|
+
w && m(w, M, S), A && m(A, M, S);
|
3331
3331
|
}
|
3332
3332
|
let b = [], v = d.toPixels(d.getExtremes().min - g, !0);
|
3333
|
-
s.forEach((
|
3334
|
-
let
|
3335
|
-
o.reversed &&
|
3336
|
-
let { clip:
|
3333
|
+
s.forEach((k) => {
|
3334
|
+
let M = k.lineClip || [], S = Math.round(k.translated || 0);
|
3335
|
+
o.reversed && M.reverse();
|
3336
|
+
let { clip: w, simpleClip: A } = k, P = 0, T = 0, L = o.len, I = a.len;
|
3337
3337
|
p ? (P = S, L = v) : (T = S, I = v);
|
3338
|
-
let D = [["M", P, T], ["L", L, T], ["L", L, I], ["L", P, I], ["Z"]], O = [D[0], ...
|
3339
|
-
b =
|
3338
|
+
let D = [["M", P, T], ["L", L, T], ["L", L, I], ["L", P, I], ["Z"]], O = [D[0], ...M, D[1], D[2], ...b, D[3], D[4]];
|
3339
|
+
b = M.reverse(), v = S, h && (y(O), t && y(D)), w ? (w.animate({ d: O }), A?.animate({ d: D })) : (w = k.clip = c.path(O), t && (A = k.simpleClip = c.path(D))), i && k.graph?.clip(w), t && k.area?.clip(A);
|
3340
3340
|
});
|
3341
3341
|
} else this.visible && (i && i.show(), t && t.show());
|
3342
3342
|
}
|
@@ -3348,7 +3348,7 @@ function Ip() {
|
|
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
|
+
st(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 Ip() {
|
|
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
|
+
st(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, st(t, "afterRender");
|
3366
3366
|
}
|
3367
3367
|
redraw() {
|
3368
3368
|
let t = this.isDirty || this.isDirtyData;
|
@@ -3391,13 +3391,13 @@ function Ip() {
|
|
3391
3391
|
return [f === y && g.index > x.index || f < y ? g : x, !1];
|
3392
3392
|
}), u = r || ((g, x) => g < x);
|
3393
3393
|
if (this.kdTree || this.buildingKdTree || this.buildKDTree(i), this.kdTree) return (function g(x, m, f, y) {
|
3394
|
-
let b = m.point, v = o.kdAxisArray[f % y],
|
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, _ = d && T.marker?.radius || 0;
|
3397
|
+
T.dist = Math.sqrt((D && D * D || 0) + N * N) - _, T.distX = ht(D) ? Math.abs(D) - _ : Number.MAX_VALUE;
|
3398
3398
|
})(x, b);
|
3399
|
-
let S = (x[v] || 0) - (b[v] || 0) + (d && b.marker?.radius || 0),
|
3400
|
-
return m[
|
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
|
+
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;
|
3401
3401
|
})(t, this.kdTree, c, c);
|
3402
3402
|
}
|
3403
3403
|
pointPlacementToXValue() {
|
@@ -3416,18 +3416,18 @@ function Ip() {
|
|
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
|
+
})), st(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 = rt(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 && st(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,19 +3435,19 @@ function Ip() {
|
|
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 = rt(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), rt(t, !0) && o.redraw(e);
|
3444
3444
|
}
|
3445
|
-
i !== !1 ?
|
3445
|
+
i !== !1 ? st(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 = ze[o].prototype, h = i.finishedAnimating && { animation: !1 }, c = {}, d, p, u =
|
3450
|
-
g = g || o, x ? (u.push.apply(u,
|
3448
|
+
st(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 = ze[o].prototype, h = i.finishedAnimating && { animation: !1 }, c = {}, d, p, u = It.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, It.keepPropsForPoints), t.visible !== !1 && u.push("area", "graph"), i.parallelArrays.forEach(function(f) {
|
3451
3451
|
u.push(f + "Data");
|
3452
3452
|
}), t.data && (t.dataSorting && Re(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];
|
@@ -3464,32 +3464,32 @@ function Ip() {
|
|
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), st(this, "afterUpdate"), rt(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 = rt(s?.[this.type]?.[t], s?.series?.[t]);
|
3474
|
+
return r && !ht(o) ? i !== r : i !== rt(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 && st(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 && st(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 = rt(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 = rt(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 Ip() {
|
|
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), st(i, a), e !== !1 && s.redraw();
|
3515
3515
|
}
|
3516
3516
|
show() {
|
3517
3517
|
this.setVisible(!0);
|
@@ -3520,7 +3520,7 @@ function Ip() {
|
|
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), st(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 Ip() {
|
|
3529
3529
|
qo[this.options.legendSymbol || "rectangle"]?.call(this, t, e);
|
3530
3530
|
}
|
3531
3531
|
}
|
3532
|
-
|
3532
|
+
It.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" }, It.types = at.seriesTypes, It.registerType = at.registerSeriesType, It.keepProps = ["colorIndex", "eventOptions", "navigatorSeries", "symbolIndex", "baseSeries"], It.keepPropsForPoints = ["data", "isDirtyData", "isDirtyCanvas", "points", "dataTable", "processedData", "xIncrement", "cropped", "_hasPointMarkers", "hasDataLabels", "nodes", "layout", "level", "mapMap", "mapData", "minY", "maxY", "minX", "maxX", "transformGroups"], Re(It.prototype, { axisTypes: ["xAxis", "yAxis"], coll: "series", colorCounter: 0, directTouch: !1, invertible: !0, isCartesian: !0, kdAxisArray: ["clientX", "plotY"], parallelArrays: ["x", "y"], pointClass: Qt, requireSorting: !0, sorted: !0 }), at.series = It;
|
3536
|
+
let Tt = It, { animObject: kd, setAnimation: wd } = gt, { registerEventOptions: aa } = Ei, { composed: Md, marginNames: na } = C, { distribute: Sd } = ki, { format: Td } = Lt, { addEvent: $i, createElement: Ad, css: Cd, defined: Js, discardElement: Pd, find: Od, fireEvent: Vt, isNumber: la, merge: me, pick: Dt, 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,18 +3543,18 @@ function Ip() {
|
|
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 = Dt(t.padding, 8);
|
3547
|
+
this.options = t, this.chart.styledMode || (this.itemStyle = t.itemStyle, this.itemHiddenStyle = me(this.itemStyle, t.itemHiddenStyle)), this.itemMarginTop = t.itemMarginTop, this.itemMarginBottom = t.itemMarginBottom, this.padding = e, this.initialItemY = e - 5, this.symbolWidth = Dt(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(me(!0, this.options, t)), "events" in this.options && aa(this, this.options), this.destroy(), i.isDirtyLegend = i.isDirtyBox = !0, Dt(e, !0) && i.redraw(), Vt(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 Tt || t instanceof Qt) && (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(me(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
3559
|
t.color = i, Vt(this, "afterColorizeItem", { item: t, visible: e });
|
3560
3560
|
}
|
@@ -3572,9 +3572,9 @@ function Ip() {
|
|
3572
3572
|
n && (n.x = i, n.y = s);
|
3573
3573
|
}
|
3574
3574
|
destroyItem(t) {
|
3575
|
-
let e = t.
|
3576
|
-
for (let
|
3577
|
-
|
3575
|
+
let e = t.legendItem || {};
|
3576
|
+
for (let i of ["group", "label", "line", "symbol"]) e[i] && (e[i] = e[i].destroy());
|
3577
|
+
t.checkbox = Pd(t.checkbox), t.legendItem = void 0;
|
3578
3578
|
}
|
3579
3579
|
destroy() {
|
3580
3580
|
for (let t of this.getAllItems()) this.destroyItem(t);
|
@@ -3597,20 +3597,20 @@ function Ip() {
|
|
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(
|
3602
|
-
let
|
3603
|
-
t.itemWidth = t.checkboxOffset = r.itemWidth || e.labelWidth ||
|
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 ? Dt(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(me(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 = Dt(r.symbolHeight, this.fontMetrics.f), r.squareSymbol && (this.symbolWidth = Dt(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
|
+
let k = b.getBBox(), M = this.fontMetrics?.h || 0;
|
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 ? Dt(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 &&
|
3613
|
+
e && Dt(i.showInLegend, !Js(i.linkedTo) && void 0, !0) && (t = t.concat(e.legendItem?.labels || (i.legendType === "point" ? e.data : e)));
|
3614
3614
|
}), Vt(this, "afterGetAllItems", { allItems: t }), t;
|
3615
3615
|
}
|
3616
3616
|
getAlignment() {
|
@@ -3619,8 +3619,8 @@ function Ip() {
|
|
3619
3619
|
}
|
3620
3620
|
adjustMargins(t, e) {
|
3621
3621
|
let i = this.chart, s = this.options, r = this.getAlignment();
|
3622
|
-
r && [/(lth|ct|rth)/, /(rtv|rm|rbv)/, /(rbh|cb|lbh)/, /(lbv|lm|ltv)/].forEach(
|
3623
|
-
o.test(r) && !Js(t[a]) && (i[na[a]] = Math.max(i[na[a]], i.legend[(a + 1) % 2 ? "legendHeight" : "legendWidth"] + [1, -1, -1, 1][a] * s[a % 2 ? "x" : "y"] +
|
3622
|
+
r && [/(lth|ct|rth)/, /(rtv|rm|rbv)/, /(rbh|cb|lbh)/, /(lbv|lm|ltv)/].forEach((o, a) => {
|
3623
|
+
o.test(r) && !Js(t[a]) && (i[na[a]] = Math.max(i[na[a]], i.legend[(a + 1) % 2 ? "legendHeight" : "legendWidth"] + [1, -1, -1, 1][a] * s[a % 2 ? "x" : "y"] + (s.margin ?? 12) + e[a] + (i.titleOffset[a] || 0)));
|
3624
3624
|
});
|
3625
3625
|
}
|
3626
3626
|
proximatePositions() {
|
@@ -3638,22 +3638,22 @@ function Ip() {
|
|
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 = me(t, { y: s })), e.hasRendered || (this.group.placed = !1), this.group.align(me(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 =
|
3645
|
-
typeof
|
3646
|
-
}, m = function(
|
3647
|
-
return e[
|
3648
|
-
}, f, y, b, v,
|
3649
|
-
return r.layout !== "horizontal" || r.verticalAlign === "middle" || r.floating || (
|
3650
|
-
let P = (b =
|
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 = Dt(c.animation, !0), p = c.arrowSize || 12, u = this.pages, g = this.allItems, x = function(w) {
|
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
|
+
}, m = function(w) {
|
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
|
+
}, 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 = Dt(this.currentPage, 1), this.fullHeight = t, g.forEach((w, A) => {
|
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
|
-
}), S || (S = e.clipRect = s.clipRect(0, n - 2, 9999, 0), e.contentGroup.clip(S)), x(f),
|
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() {
|
3653
3653
|
e.scroll(-1, d);
|
3654
|
-
}), this.pager = s.text("", 15, 10).addClass("highcharts-legend-navigation"), !i.styledMode && c.style && this.pager.css(c.style), this.pager.add(
|
3654
|
+
}), this.pager = s.text("", 15, 10).addClass("highcharts-legend-navigation"), !i.styledMode && c.style && this.pager.css(c.style), this.pager.add(M), this.down = s.symbol("triangle-down", 0, 0, p, p).add(M), m("downTracker").on("click", function() {
|
3655
3655
|
e.scroll(1, d);
|
3656
|
-
})), e.scroll(0), t =
|
3656
|
+
})), e.scroll(0), t = k) : M && (x(), this.nav = M.destroy(), this.scrollGroup.attr({ translateY: 1 }), this.clipHeight = 0), t;
|
3657
3657
|
}
|
3658
3658
|
scroll(t, e) {
|
3659
3659
|
let i = this.chart, s = this.pages, r = s.length, o = this.clipHeight, a = this.options.navigation, n = this.pager, h = this.padding, c = this.currentPage + t;
|
@@ -3663,10 +3663,10 @@ function Ip() {
|
|
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
3665
|
Vt(this, "afterScroll", { currentPage: c });
|
3666
|
-
}, kd(
|
3666
|
+
}, kd(Dt(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 Qt, n = t instanceof
|
3669
|
+
let s = this, r = t.legendItem || {}, o = s.chart.renderer.boxWrapper, a = t instanceof Qt, n = t instanceof Tt, 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,7 +3676,7 @@ function Ip() {
|
|
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(me(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" : "");
|
@@ -3700,7 +3700,7 @@ function Ip() {
|
|
3700
3700
|
});
|
3701
3701
|
};
|
3702
3702
|
})(Qs || (Qs = {}));
|
3703
|
-
let ha = Qs, { animate: tr, animObject: Bd, setAnimation: er } = gt, { defaultOptions: ir } = Ot, { numberFormat: Nd } = Lt, { registerEventOptions: da } = Ei, { charts:
|
3703
|
+
let ha = Qs, { animate: tr, animObject: Bd, setAnimation: er } = gt, { defaultOptions: ir } = Ot, { numberFormat: Nd } = Lt, { registerEventOptions: da } = Ei, { charts: xe, doc: ai, marginNames: ca, svg: zd, win: pa } = C, { seriesTypes: sr } = at, { addEvent: rr, attr: ua, createElement: or, css: Bt, defined: ee, diffObjects: ga, discardElement: Rd, erase: Wd, error: ar, extend: ie, find: nr, fireEvent: Y, getAlignFactor: Xd, getStyle: lr, isArray: Hd, isNumber: We, isObject: Fd, isString: Zi, merge: Yt, objectEach: hr, pick: bt, pInt: Gd, relativeLength: fa, removeEvent: ma, splat: qi, syncTimeout: Yd, uniqueKey: jd } = B;
|
3704
3704
|
class se {
|
3705
3705
|
static chart(t, e, i) {
|
3706
3706
|
return new se(t, e, i);
|
@@ -3712,12 +3712,12 @@ function Ip() {
|
|
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: bt(t.zoomType, e.type), key: bt(t.zoomKey, e.key), pinchType: bt(t.pinchType, e.pinchType), singleTouch: bt(t.zoomBySingleTouch, e.singleTouch, !1), resetButton: Yt(e.resetButton, t.resetZoomButton) };
|
3716
3716
|
}
|
3717
3717
|
init(t, e) {
|
3718
|
-
|
3718
|
+
Y(this, "init", { args: arguments }, function() {
|
3719
3719
|
let i = Yt(ir, t), s = i.chart, r = this.renderTo || s.renderTo;
|
3720
|
-
this.userOptions = ie({}, 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(ie(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 =
|
3720
|
+
this.userOptions = ie({}, 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(ie(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 = xe.length, xe.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,7 +3740,7 @@ function Ip() {
|
|
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 Tt && (n.name = n.getName()), n.options.isInternal || (s[o] = n.options, r[o] = n.userOptions));
|
3744
3744
|
}
|
3745
3745
|
}
|
3746
3746
|
getClipBox(t, e) {
|
@@ -3757,10 +3757,10 @@ function Ip() {
|
|
3757
3757
|
let m = !s && i.axis && !i.axis.isXAxis && i.axis || d && (s ? d.xAxis : d.yAxis) || { pos: a, len: 1 / 0 }, f = i.paneCoordinates ? m.pos + g : a + g;
|
3758
3758
|
f >= Math.max(c + a, m.pos) && f <= Math.min(c + a + p.height, m.pos + m.len) || (x.isInsidePlot = !1);
|
3759
3759
|
}
|
3760
|
-
return
|
3760
|
+
return Y(this, "afterIsInsidePlot", x), x.isInsidePlot;
|
3761
3761
|
}
|
3762
3762
|
redraw(t) {
|
3763
|
-
|
3763
|
+
Y(this, "beforeRedraw");
|
3764
3764
|
let e = this.hasCartesianSeries ? this.axes : this.colorAxis || [], i = this.series, s = this.pointer, r = this.legend, o = this.userOptions.legend, a = this.renderer, n = a.isHidden(), h = [], c, d, p, u = this.isDirtyBox, g = this.isDirtyLegend, x;
|
3765
3765
|
for (a.rootFontSize = a.boxWrapper.getStyle("font-size"), this.setResponsive && this.setResponsive(!1), er(!!this.hasRendered && t, this), n && this.temporaryDisplay(), this.layOutTitles(!1), p = i.length; p--; ) if (((x = i[p]).options.stacking || x.options.centerInCategory) && (d = !0, x.isDirty)) {
|
3766
3766
|
c = !0;
|
@@ -3768,7 +3768,7 @@ function Ip() {
|
|
3768
3768
|
}
|
3769
3769
|
if (c) for (p = i.length; p--; ) (x = i[p]).options.stacking && (x.isDirty = !0);
|
3770
3770
|
i.forEach(function(m) {
|
3771
|
-
m.isDirty && (m.options.legendType === "point" ? (typeof m.updateTotals == "function" && m.updateTotals(), g = !0) : o && (o.labelFormatter || o.labelFormat) && (g = !0)), m.isDirtyData &&
|
3771
|
+
m.isDirty && (m.options.legendType === "point" ? (typeof m.updateTotals == "function" && m.updateTotals(), g = !0) : o && (o.labelFormatter || o.labelFormat) && (g = !0)), m.isDirtyData && Y(m, "updatedData");
|
3772
3772
|
}), g && r && r.options.enabled && (r.render(), this.isDirtyLegend = !1), d && this.getStacks(), e.forEach(function(m) {
|
3773
3773
|
m.updateNames(), m.setScale();
|
3774
3774
|
}), this.getMargins(), e.forEach(function(m) {
|
@@ -3776,11 +3776,11 @@ function Ip() {
|
|
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
|
-
|
3779
|
+
Y(m, "afterSetExtremes", ie(m.eventArgs, m.getExtremes())), delete m.eventArgs;
|
3780
3780
|
})), (u || d) && m.redraw();
|
3781
|
-
}), u && this.drawChartBox(),
|
3781
|
+
}), u && this.drawChartBox(), Y(this, "predraw"), i.forEach(function(m) {
|
3782
3782
|
(u || m.isDirty) && m.visible && m.redraw(), m.isDirtyData = !1;
|
3783
|
-
}), s && s.reset(!0), a.draw(),
|
3783
|
+
}), s && s.reset(!0), a.draw(), Y(this, "redraw"), Y(this, "render"), n && this.temporaryDisplay(!0), h.forEach(function(m) {
|
3784
3784
|
m.call();
|
3785
3785
|
});
|
3786
3786
|
}
|
@@ -3795,12 +3795,12 @@ function Ip() {
|
|
3795
3795
|
}
|
3796
3796
|
createAxes() {
|
3797
3797
|
let t = this.userOptions;
|
3798
|
-
for (let e of (
|
3799
|
-
|
3798
|
+
for (let e of (Y(this, "createAxes"), ["xAxis", "yAxis"])) for (let i of t[e] = qi(t[e] || {})) new De(this, i, e);
|
3799
|
+
Y(this, "afterCreateAxes");
|
3800
3800
|
}
|
3801
3801
|
getSelectedPoints() {
|
3802
3802
|
return this.series.reduce((t, e) => (e.getPointsCollection().forEach((i) => {
|
3803
|
-
|
3803
|
+
bt(i.selectedStaging, i.selected) && t.push(i);
|
3804
3804
|
}), t), []);
|
3805
3805
|
}
|
3806
3806
|
getSelectedSeries() {
|
@@ -3820,18 +3820,18 @@ function Ip() {
|
|
3820
3820
|
["title", "subtitle", "caption"].forEach((a) => {
|
3821
3821
|
let n = this[a], h = this.options[a], c = Yt(r), d = n?.textPxLength || 0;
|
3822
3822
|
if (n && h) {
|
3823
|
-
|
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),
|
3825
|
-
n.alignValue !==
|
3826
|
-
let S = Math.round(n.css({ width:
|
3827
|
-
if (
|
3828
|
-
let
|
3829
|
-
x === "top" ? e[0] = Math.ceil(e[0] +
|
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 = Yt({ 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
|
+
n.alignValue !== k.align && (n.placed = !1);
|
3826
|
+
let S = Math.round(n.css({ width: M }).getBBox(h.useHTML).height);
|
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) {
|
3828
|
+
let w = S * (S < 1.2 * g ? 1 : v);
|
3829
|
+
x === "top" ? e[0] = Math.ceil(e[0] + w) : x === "bottom" && (e[2] = Math.ceil(e[2] + w));
|
3830
3830
|
}
|
3831
3831
|
}
|
3832
3832
|
}, this), e[0] && (i.title?.verticalAlign || "top") === "top" && (e[0] += i.title?.margin || 0), e[2] && i.caption?.verticalAlign === "bottom" && (e[2] += i.caption?.margin || 0);
|
3833
3833
|
let o = !this.titleOffset || this.titleOffset.join(",") !== e.join(",");
|
3834
|
-
this.titleOffset = e,
|
3834
|
+
this.titleOffset = e, Y(this, "afterLayOutTitles"), !this.isDirtyBox && o && (this.isDirtyBox = this.isDirtyLegend = o, this.hasRendered && t && this.isDirtyBox && this.redraw());
|
3835
3835
|
}
|
3836
3836
|
getContainerBox() {
|
3837
3837
|
let t = [].map.call(this.renderTo.children, (i) => {
|
@@ -3858,27 +3858,27 @@ function Ip() {
|
|
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
|
-
We(a) &&
|
3861
|
+
We(a) && xe[a] && xe[a].hasRendered && xe[a].destroy(), ua(o, s, this.index), o.innerHTML = tt.emptyHTML, i.skipClone || o.offsetWidth || this.temporaryDisplay(), this.getChartSize();
|
3862
3862
|
let n = this.chartHeight, h = this.chartWidth;
|
3863
3863
|
Bt(o, { overflow: "hidden" }), this.styledMode || (t = ie({ 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 || Bt(c, { width:
|
3865
|
+
this.container = c, this.getChartSize(), h !== this.chartWidth && (h = this.chartWidth, this.styledMode || Bt(c, { width: bt(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);
|
3869
|
-
this.renderer.chartIndex = this.index,
|
3869
|
+
this.renderer.chartIndex = this.index, Y(this, "afterGetContainer");
|
3870
3870
|
}
|
3871
3871
|
getMargins(t) {
|
3872
3872
|
let { spacing: e, margin: i, titleOffset: s } = this;
|
3873
|
-
this.resetMargins(), s[0] && !ee(i[0]) && (this.plotTop = Math.max(this.plotTop, s[0] + e[0])), s[2] && !ee(i[2]) && (this.marginBottom = Math.max(this.marginBottom, s[2] + e[2])), this.legend?.display && this.legend.adjustMargins(i, e),
|
3873
|
+
this.resetMargins(), s[0] && !ee(i[0]) && (this.plotTop = Math.max(this.plotTop, s[0] + e[0])), s[2] && !ee(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
|
-
let t = this, e = t.axisOffset = [0, 0, 0, 0], i = t.colorAxis, s = t.margin, r =
|
3877
|
-
o.forEach(
|
3876
|
+
let t = this, e = t.axisOffset = [0, 0, 0, 0], i = t.colorAxis, s = t.margin, r = (o) => {
|
3877
|
+
o.forEach((a) => {
|
3878
3878
|
a.visible && a.getOffset();
|
3879
3879
|
});
|
3880
3880
|
};
|
3881
|
-
t.hasCartesianSeries ? r(t.axes) : i?.length && r(i), ca.forEach(
|
3881
|
+
t.hasCartesianSeries ? r(t.axes) : i?.length && r(i), ca.forEach((o, a) => {
|
3882
3882
|
ee(s[a]) || (t[o] += e[a]);
|
3883
3883
|
}), t.setChartSize();
|
3884
3884
|
}
|
@@ -3909,31 +3909,31 @@ function Ip() {
|
|
3909
3909
|
let { chartWidth: a, chartHeight: n, scrollablePixelsX: h = 0, scrollablePixelsY: c = 0 } = s;
|
3910
3910
|
(s.isDirtyBox || a !== s.oldChartWidth || n !== s.oldChartHeight) && (s.styledMode || (o ? tr : Bt)(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
|
-
}), s.isDirtyLegend = !0, s.isDirtyBox = !0, s.layOutTitles(), s.getMargins(), s.redraw(o), s.oldChartHeight = void 0,
|
3913
|
-
s &&
|
3912
|
+
}), s.isDirtyLegend = !0, s.isDirtyBox = !0, s.layOutTitles(), s.getMargins(), s.redraw(o), s.oldChartHeight = void 0, Y(s, "resize"), setTimeout(() => {
|
3913
|
+
s && Y(s, "endResize");
|
3914
3914
|
}, Bd(o).duration)), s.isResizing -= 1;
|
3915
3915
|
}
|
3916
3916
|
setChartSize(t) {
|
3917
3917
|
let e, i, s, r, { chartHeight: o, chartWidth: a, inverted: n, spacing: h, renderer: c } = this, d = this.clipOffset, p = Math[n ? "floor" : "round"];
|
3918
3918
|
this.plotLeft = e = Math.round(this.plotLeft), this.plotTop = i = Math.round(this.plotTop), this.plotWidth = s = Math.max(0, Math.round(a - e - (this.marginRight ?? 0))), this.plotHeight = r = Math.max(0, Math.round(o - i - (this.marginBottom ?? 0))), this.plotSizeX = n ? r : s, this.plotSizeY = n ? s : r, this.spacingBox = c.spacingBox = { x: h[3], y: h[0], width: a - h[3] - h[1], height: o - h[0] - h[2] }, this.plotBox = c.plotBox = { x: e, y: i, width: s, height: r }, d && (this.clipBox = { x: p(d[3]), y: p(d[0]), width: p(this.plotSizeX - d[1] - d[3]), height: p(this.plotSizeY - d[0] - d[2]) }), t || (this.axes.forEach(function(u) {
|
3919
3919
|
u.setAxisSize(), u.setAxisTranslation();
|
3920
|
-
}), c.alignElements()),
|
3920
|
+
}), c.alignElements()), Y(this, "afterSetChartSize", { skipAxes: t });
|
3921
3921
|
}
|
3922
3922
|
resetMargins() {
|
3923
|
-
|
3923
|
+
Y(this, "resetMargins");
|
3924
3924
|
let t = this, e = t.options.chart, i = e.plotBorderWidth || 0, s = Math.round(i) / 2;
|
3925
|
-
["margin", "spacing"].forEach(
|
3925
|
+
["margin", "spacing"].forEach((r) => {
|
3926
3926
|
let o = e[r], a = Fd(o) ? o : [o, o, o, o];
|
3927
|
-
["Top", "Right", "Bottom", "Left"].forEach(
|
3928
|
-
t[r][h] =
|
3927
|
+
["Top", "Right", "Bottom", "Left"].forEach((n, h) => {
|
3928
|
+
t[r][h] = e[`${r}${n}`] ?? a[h];
|
3929
3929
|
});
|
3930
|
-
}), ca.forEach(
|
3931
|
-
t[r] =
|
3930
|
+
}), ca.forEach((r, o) => {
|
3931
|
+
t[r] = t.margin[o] ?? t.spacing[o];
|
3932
3932
|
}), t.axisOffset = [0, 0, 0, 0], t.clipOffset = [s, s, s, s], t.plotBorderWidth = i;
|
3933
3933
|
}
|
3934
3934
|
drawChartBox() {
|
3935
|
-
let t = this.options.chart, e = this.renderer, i = this.chartWidth, s = this.chartHeight, r = this.styledMode, o = this.plotBGImage, a = t.backgroundColor, n = t.plotBackgroundColor, h = t.plotBackgroundImage, c = this.plotLeft, d = this.plotTop, p = this.plotWidth, u = this.plotHeight, g = this.plotBox, x = this.clipRect, m = this.clipBox, f = this.chartBackground, y = this.plotBackground, b = this.plotBorder, v,
|
3936
|
-
f || (this.chartBackground = f = e.rect().addClass("highcharts-background").add(), S = "attr"), r ? v =
|
3935
|
+
let t = this.options.chart, e = this.renderer, i = this.chartWidth, s = this.chartHeight, r = this.styledMode, o = this.plotBGImage, a = t.backgroundColor, n = t.plotBackgroundColor, h = t.plotBackgroundImage, c = this.plotLeft, d = this.plotTop, p = this.plotWidth, u = this.plotHeight, g = this.plotBox, x = this.clipRect, m = this.clipBox, f = this.chartBackground, y = this.plotBackground, b = this.plotBorder, v, k, M, S = "animate";
|
3936
|
+
f || (this.chartBackground = f = e.rect().addClass("highcharts-background").add(), S = "attr"), r ? v = k = f.strokeWidth() : (k = (v = t.borderWidth || 0) + 8 * !!t.shadow, M = { fill: a || "none" }, (v || f["stroke-width"]) && (M.stroke = t.borderColor, M["stroke-width"] = v), f.attr(M).shadow(t.shadow)), f[S]({ x: k / 2, y: k / 2, width: i - k - v % 2, height: s - k - v % 2, r: t.borderRadius }), S = "animate", y || (S = "attr", this.plotBackground = y = e.rect().addClass("highcharts-plot-background").add()), y[S](g), !r && (y.attr({ fill: n || "none" }).shadow(t.plotShadow), h && (o ? (h !== o.attr("href") && o.attr("href", h), o.animate(g)) : this.plotBGImage = e.image(h, c, d, p, u).add())), x ? x.animate({ width: m.width, height: m.height }) : this.clipRect = e.clipRect(m), S = "animate", b || (S = "attr", this.plotBorder = b = e.rect().addClass("highcharts-plot-border").attr({ zIndex: 1 }).add()), r || b.attr({ stroke: t.plotBorderColor, "stroke-width": t.plotBorderWidth || 0, fill: "none" }), b[S](b.crisp(g, -b.strokeWidth())), this.isDirtyBox = !1, Y(this, "afterDrawChartBox");
|
3937
3937
|
}
|
3938
3938
|
propFromSeries() {
|
3939
3939
|
let t, e, i, s = this, r = s.options.chart, o = s.options.series;
|
@@ -3950,9 +3950,9 @@ function Ip() {
|
|
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 = bt(s.options.visible, o.options.visible, s.visible));
|
3954
3954
|
}
|
3955
|
-
}),
|
3955
|
+
}), Y(this, "afterLinkSeries", { isUpdating: t });
|
3956
3956
|
}
|
3957
3957
|
renderSeries() {
|
3958
3958
|
this.series.forEach(function(t) {
|
@@ -3965,12 +3965,12 @@ function Ip() {
|
|
3965
3965
|
d.visible && d.render();
|
3966
3966
|
});
|
3967
3967
|
}, o = 0, a = !0, n, h = 0;
|
3968
|
-
for (let c of (this.setTitle(),
|
3968
|
+
for (let c of (this.setTitle(), Y(this, "beforeMargins"), this.getStacks?.(), this.getMargins(!0), this.setChartSize(), t)) {
|
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
3972
|
let u = new Ie(c, 0, "", !0), g = u.createLabel("x", p);
|
3973
|
-
if (u.destroy(), g &&
|
3973
|
+
if (u.destroy(), g && bt(p.reserveSpace, !We(d.crossing)) && (o = g.getBBox().height + p.distance + Math.max(d.offset || 0, 0)), o) {
|
3974
3974
|
g?.destroy();
|
3975
3975
|
break;
|
3976
3976
|
}
|
@@ -3993,11 +3993,11 @@ function Ip() {
|
|
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 (
|
3996
|
+
for (Y(e, "destroy"), e.renderer.forExport ? Wd(xe, e) : xe[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 = tt.emptyHTML, ma(r), o && Rd(r)), hr(e, function(a, n) {
|
4001
4001
|
delete e[n];
|
4002
4002
|
});
|
4003
4003
|
}
|
@@ -4007,12 +4007,12 @@ function Ip() {
|
|
4007
4007
|
let i = Hd(e.series) ? e.series : [];
|
4008
4008
|
e.series = [], i.forEach(function(s) {
|
4009
4009
|
t.initSeries(s);
|
4010
|
-
}), t.linkSeries(), t.setSortedData(),
|
4010
|
+
}), t.linkSeries(), t.setSortedData(), Y(t, "beforeRender"), t.render(), t.pointer?.getChartPosition(), t.renderer.imgCount || t.hasLoaded || t.onload(), t.temporaryDisplay(!0);
|
4011
4011
|
}
|
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),
|
4015
|
+
}, this), Y(this, "load"), Y(this, "render"), ee(this.index) && this.setReflow(), this.warnIfA11yModuleNotLoaded(), this.hasLoaded = !0;
|
4016
4016
|
}
|
4017
4017
|
warnIfA11yModuleNotLoaded() {
|
4018
4018
|
let { options: t, title: e } = this;
|
@@ -4020,8 +4020,8 @@ function Ip() {
|
|
4020
4020
|
}
|
4021
4021
|
addSeries(t, e, i) {
|
4022
4022
|
let s, r = this;
|
4023
|
-
return t && (e =
|
4024
|
-
s = r.initSeries(t), r.isDirtyLegend = !0, r.linkSeries(), s.enabledDataSorting && s.setData(t.data, !1),
|
4023
|
+
return t && (e = bt(e, !0), Y(r, "addSeries", { options: t }, function() {
|
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
|
}
|
4027
4027
|
addAxis(t, e, i, s) {
|
@@ -4032,13 +4032,13 @@ function Ip() {
|
|
4032
4032
|
}
|
4033
4033
|
createAxis(t, e) {
|
4034
4034
|
let i = new De(this, e.axis, t);
|
4035
|
-
return
|
4035
|
+
return bt(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
4039
|
o && Bt(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", tt.setElementHTML(a, bt(t, i.lang.loading, "")), !e.styledMode && (Bt(o, ie(s.style, { zIndex: 10 })), Bt(a, s.labelStyle), e.loadingShown || (Bt(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;
|
@@ -4048,7 +4048,7 @@ function Ip() {
|
|
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
|
-
|
4051
|
+
Y(n, "update", { options: t }), c || n.setResponsive(!1, !0), t = ga(t, n.options), n.userOptions = Yt(n.userOptions, t);
|
4052
4052
|
let p = t.chart;
|
4053
4053
|
p && (Yt(!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));
|
@@ -4057,7 +4057,7 @@ function Ip() {
|
|
4057
4057
|
}), this.collectionsWithUpdate.forEach(function(x) {
|
4058
4058
|
t[x] && (qi(t[x]).forEach(function(m, f) {
|
4059
4059
|
let y, b = ee(m.id);
|
4060
|
-
b && (y = n.get(m.id)), !y && n[x] && (y = n[x][
|
4060
|
+
b && (y = n.get(m.id)), !y && n[x] && (y = n[x][bt(m.index, f)]) && (b && ee(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 Ip() {
|
|
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 || We(u) && u !== n.chartWidth || We(g) && g !== n.chartHeight ? n.setSize(u, g, s) :
|
4072
|
+
a || We(u) && u !== n.chartWidth || We(g) && g !== n.chartHeight ? n.setSize(u, g, s) : bt(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);
|
@@ -4082,38 +4082,38 @@ function Ip() {
|
|
4082
4082
|
function o() {
|
4083
4083
|
t.zoomOut();
|
4084
4084
|
}
|
4085
|
-
|
4085
|
+
Y(this, "beforeShowResetZoom", null, function() {
|
4086
4086
|
t.resetZoomButton = t.renderer.button(e.resetZoom, null, null, o, s).attr({ align: i.position.align, title: e.resetZoomTitle }).addClass("highcharts-reset-zoom").add().align(i.position, !1, r);
|
4087
|
-
}),
|
4087
|
+
}), Y(this, "afterShowResetZoom");
|
4088
4088
|
}
|
4089
4089
|
zoomOut() {
|
4090
|
-
|
4090
|
+
Y(this, "selection", { resetSelection: !0 }, () => this.transform({ reset: !0, trigger: "zoom" }));
|
4091
4091
|
}
|
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
|
-
a?.panning && (a.panning = s),
|
4094
|
+
a?.panning && (a.panning = s), Y(this, "pan", { originalEvent: t }, () => {
|
4095
4095
|
i.transform({ axes: o, event: t, to: { x: t.chartX - (i.mouseDownX || 0), y: t.chartY - (i.mouseDownY || 0) }, trigger: "pan" }), Bt(i.container, { cursor: "move" });
|
4096
4096
|
});
|
4097
4097
|
}
|
4098
4098
|
transform(t) {
|
4099
4099
|
let { axes: e = this.axes, event: i, from: s = {}, reset: r, selection: o, to: a = {}, trigger: n } = t, { inverted: h, time: c } = this;
|
4100
|
-
this.hoverPoints?.forEach((g) => g.setState()),
|
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",
|
4103
|
+
let { horiz: x, len: m, minPointOffset: f = 0, options: y, reversed: b } = g, v = x ? "width" : "height", k = x ? "x" : "y", M = bt(a[v], g.len), S = bt(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
|
-
let L = g.chart.polar || g.isOrdinal ? 0 : f * T || 0, I = g.toValue(P, !0), D = g.toValue(P + m /
|
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]),
|
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
|
+
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
4107
|
for (let ae of g.series) {
|
4108
4108
|
let Ct = ae.getExtremes(ae.getProcessedData(!0).modified.getColumn("y") || [], !0);
|
4109
4109
|
N ?? (N = { dataMin: Number.MAX_VALUE, dataMax: -Number.MAX_VALUE }), We(Ct.dataMin) && We(Ct.dataMax) && (N.dataMin = Math.min(Ct.dataMin, N.dataMin), N.dataMax = Math.max(Ct.dataMax, N.dataMax));
|
4110
4110
|
}
|
4111
4111
|
g.allExtremes = N;
|
4112
4112
|
}
|
4113
|
-
let { dataMin:
|
4114
|
-
(!g.isOrdinal ||
|
4113
|
+
let { dataMin: _, dataMax: F, min: G, max: X } = ie(g.getExtremes(), N || {}), W = c.parse(y.min), V = c.parse(y.max), U = _ ?? W, $ = F ?? V, Z = E - O, q = g.categories ? 0 : Math.min(Z, $ - U), vt = U - q * (ee(W) ? 0 : y.minPadding), kt = $ + q * (ee(V) ? 0 : y.maxPadding), wt = g.allowZoomOutside || w === 1 || n !== "zoom" && w > 1, Nt = Math.min(W ?? vt, vt, wt ? G : vt), ft = Math.max(V ?? kt, kt, wt ? X : kt);
|
4114
|
+
(!g.isOrdinal || w !== 1 || r) && (O < Nt && (O = Nt, w >= 1 && (E = O + Z)), E > ft && (E = ft, w >= 1 && (O = E - Z)), (r || g.series.length && (O !== G || E !== X) && O >= Nt && E <= ft) && (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 > Nt || E < ft) && 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
|
-
return d && (o ?
|
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
|
}
|
@@ -4133,7 +4133,9 @@ function Ip() {
|
|
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;
|
4136
|
-
if (!d.forExport
|
4136
|
+
if (!d.forExport) if (o ? (t.scrollablePixelsX = i = Math.max(0, o - t.chartWidth), i && (t.scrollablePlotBox = xa(t.plotBox), h.width = t.plotWidth += i, n[c ? "height" : "width"] += i, r = !0)) : a && (t.scrollablePixelsY = s = Math.max(0, a - t.chartHeight), cr(s) && (t.scrollablePlotBox = xa(t.plotBox), h.height = t.plotHeight += s, n[c ? "width" : "height"] += s, r = !1)), cr(r)) {
|
4137
|
+
if (!e.skipAxes) for (let p of t.axes) (p.horiz === r || t.hasParallelCoordinates && p.coll === "yAxis") && (p.setAxisSize(), p.setAxisTranslation());
|
4138
|
+
} else delete t.scrollablePlotBox;
|
4137
4139
|
}
|
4138
4140
|
constructor(t) {
|
4139
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" };
|
@@ -4147,8 +4149,8 @@ function Ip() {
|
|
4147
4149
|
applyFixed() {
|
4148
4150
|
let { chart: t, fixedRenderer: e, isDirty: i, scrollingContainer: s } = this, { axisOffset: r, chartWidth: o, chartHeight: a, container: n, plotHeight: h, plotLeft: c, plotTop: d, plotWidth: p, scrollablePixelsX: u = 0, scrollablePixelsY: g = 0 } = t, { scrollPositionX: x = 0, scrollPositionY: m = 0 } = t.options.chart.scrollablePlotArea || {}, f = o + u, y = a + g;
|
4149
4151
|
e.setSize(o, a), (i ?? !0) && (this.isDirty = !1, this.moveFixedElements()), Ud(t.container), dr(n, { width: `${f}px`, height: `${y}px` }), t.renderer.boxWrapper.attr({ width: f, height: y, viewBox: [0, 0, f, y].join(" ") }), t.chartBackground?.attr({ width: f, height: y }), dr(s, { width: `${o}px`, height: `${a}px` }), cr(i) || (s.scrollLeft = u * x, s.scrollTop = g * m);
|
4150
|
-
let b = d - r[0] - 1, v = c - r[3] - 1,
|
4151
|
-
u ? A = [["M", 0, b], ["L", c - 1, b], ["L", c - 1,
|
4152
|
+
let b = d - r[0] - 1, v = c - r[3] - 1, k = d + h + r[2] + 1, M = c + p + r[1] + 1, S = c + p - u, w = d + h - g, A = [["M", 0, 0]];
|
4153
|
+
u ? A = [["M", 0, b], ["L", c - 1, b], ["L", c - 1, k], ["L", 0, k], ["Z"], ["M", S, b], ["L", o, b], ["L", o, k], ["L", S, k], ["Z"]] : g && (A = [["M", v, 0], ["L", v, d - 1], ["L", M, d - 1], ["L", M, 0], ["Z"], ["M", v, w], ["L", v, a], ["L", M, a], ["L", M, w], ["Z"]]), t.redrawTrigger !== "adjustHeight" && this.mask.attr({ d: A });
|
4152
4154
|
}
|
4153
4155
|
moveFixedElements() {
|
4154
4156
|
let t, { container: e, inverted: i, scrollablePixelsX: s, scrollablePixelsY: r } = this.chart, o = this.fixedRenderer, a = ni.fixedSelectors;
|
@@ -4197,7 +4199,7 @@ function Ip() {
|
|
4197
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;
|
4198
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 };
|
4199
4201
|
}
|
4200
|
-
}, { getDeferredAnimation: Jd } = gt, { series: { prototype: Qd } } = at, { addEvent: wa, correctFloat: hi, defined: Ma, destroyObjectProperties: tc, fireEvent: ec, isNumber: gr, objectEach:
|
4202
|
+
}, { getDeferredAnimation: Jd } = gt, { series: { prototype: Qd } } = at, { addEvent: wa, correctFloat: hi, defined: Ma, destroyObjectProperties: tc, fireEvent: ec, isNumber: gr, objectEach: ye, pick: fr } = B;
|
4201
4203
|
function ic() {
|
4202
4204
|
let l = this.inverted;
|
4203
4205
|
this.axes.forEach((t) => {
|
@@ -4211,7 +4213,7 @@ function Ip() {
|
|
4211
4213
|
let l = this.stacking;
|
4212
4214
|
if (l) {
|
4213
4215
|
let t = l.stacks;
|
4214
|
-
|
4216
|
+
ye(t, (e, i) => {
|
4215
4217
|
tc(e), delete t[i];
|
4216
4218
|
}), l.stackTotalGroup?.destroy();
|
4217
4219
|
}
|
@@ -4239,14 +4241,14 @@ function Ip() {
|
|
4239
4241
|
function hc(l, t) {
|
4240
4242
|
let e, i, s, r, o, a, n, h = t || this.options.stacking;
|
4241
4243
|
if (!h || !this.reserveSpace() || ({ group: "xAxis" }[h] || "yAxis") !== l.coll) return;
|
4242
|
-
let c = this.getColumn("x", !0), d = this.getColumn(this.pointValKey || "y", !0), p = [], u = d.length, g = this.options, x = g.threshold || 0, m = g.startFromThreshold ? x : 0, f = g.stack, y = t ? `${this.type},${h}` : this.stackKey || "", b = "-" + y, v = this.negStacks,
|
4243
|
-
for (
|
4244
|
-
let
|
4245
|
-
a = (e = this.getStackIndicator(e,
|
4244
|
+
let c = this.getColumn("x", !0), d = this.getColumn(this.pointValKey || "y", !0), p = [], u = d.length, g = this.options, x = g.threshold || 0, m = g.startFromThreshold ? x : 0, f = g.stack, y = t ? `${this.type},${h}` : this.stackKey || "", b = "-" + y, v = this.negStacks, k = l.stacking, M = k.stacks, S = k.oldStacks;
|
4245
|
+
for (k.stacksTouched += 1, n = 0; n < u; n++) {
|
4246
|
+
let w = c[n] || 0, A = d[n], P = gr(A) && A || 0;
|
4247
|
+
a = (e = this.getStackIndicator(e, w, this.index)).key || "", M[o = (i = v && P < (m ? 0 : x)) ? b : y] || (M[o] = {}), M[o][w] || (S[o]?.[w] ? (M[o][w] = S[o][w], M[o][w].total = null) : M[o][w] = new ka(l, l.options.stackLabels, !!i, w, f)), s = M[o][w], A !== null ? (s.points[a] = s.points[this.index] = [fr(s.cumulative, m)], Ma(s.cumulative) || (s.base = a), s.touched = k.stacksTouched, e.index > 0 && this.singleStacks === !1 && (s.points[a][0] = s.points[this.index + "," + w + ",0"][0])) : (delete s.points[a], delete s.points[this.index]);
|
4246
4248
|
let T = s.total || 0;
|
4247
|
-
h === "percent" ? (r = i ? y : b, T = v &&
|
4249
|
+
h === "percent" ? (r = i ? y : b, T = v && M[r]?.[w] ? (r = M[r][w]).total = Math.max(r.total || 0, T) + Math.abs(P) : hi(T + Math.abs(P))) : h === "group" ? gr(A) && T++ : T = hi(T + P), h === "group" ? s.cumulative = (T || 1) - 1 : s.cumulative = hi(fr(s.cumulative, m) + P), s.total = T, A !== null && (s.points[a].push(s.cumulative), p[n] = s.cumulative, s.hasValidPoints = !0);
|
4248
4250
|
}
|
4249
|
-
h === "percent" && (
|
4251
|
+
h === "percent" && (k.usePercentage = !0), h !== "group" && (this.stackedYData = p), k.oldStacks = {};
|
4250
4252
|
}
|
4251
4253
|
class dc {
|
4252
4254
|
constructor(t) {
|
@@ -4259,23 +4261,23 @@ function Ip() {
|
|
4259
4261
|
ec(i, "afterBuildStacks");
|
4260
4262
|
}
|
4261
4263
|
cleanStacks() {
|
4262
|
-
this.oldStacks && (this.stacks = this.oldStacks,
|
4263
|
-
|
4264
|
+
this.oldStacks && (this.stacks = this.oldStacks, ye(this.stacks, (t) => {
|
4265
|
+
ye(t, (e) => {
|
4264
4266
|
e.cumulative = e.total;
|
4265
4267
|
});
|
4266
4268
|
}));
|
4267
4269
|
}
|
4268
4270
|
resetStacks() {
|
4269
|
-
|
4270
|
-
|
4271
|
+
ye(this.stacks, (t) => {
|
4272
|
+
ye(t, (e, i) => {
|
4271
4273
|
gr(e.touched) && e.touched < this.stacksTouched ? (e.destroy(), delete t[i]) : (e.total = null, e.cumulative = null);
|
4272
4274
|
});
|
4273
4275
|
});
|
4274
4276
|
}
|
4275
4277
|
renderStackTotals() {
|
4276
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();
|
4277
|
-
o.translate(e.plotLeft, e.plotTop),
|
4278
|
-
|
4279
|
+
o.translate(e.plotLeft, e.plotTop), ye(s, (a) => {
|
4280
|
+
ye(a, (n) => {
|
4279
4281
|
n.render(o);
|
4280
4282
|
});
|
4281
4283
|
}), o.animate({ opacity: 1 }, r);
|
@@ -4286,7 +4288,7 @@ function Ip() {
|
|
4286
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);
|
4287
4289
|
};
|
4288
4290
|
let cc = Ye, { defined: pc, merge: Sa, isObject: uc } = B;
|
4289
|
-
class Ta extends
|
4291
|
+
class Ta extends Tt {
|
4290
4292
|
drawGraph() {
|
4291
4293
|
let t = this.options, e = (this.gappedPath || this.getGraphPath).call(this), i = this.chart.styledMode;
|
4292
4294
|
[this, ...this.zones].forEach((s, r) => {
|
@@ -4302,7 +4304,7 @@ function Ip() {
|
|
4302
4304
|
}), o.xMap = a, s.graphPath = o, o;
|
4303
4305
|
}
|
4304
4306
|
}
|
4305
|
-
Ta.defaultOptions = Sa(
|
4307
|
+
Ta.defaultOptions = Sa(Tt.defaultOptions, { legendSymbol: "lineMarker" }), at.registerSeriesType("line", Ta);
|
4306
4308
|
let { seriesTypes: { line: mr } } = at, { extend: gc, merge: fc, objectEach: mc, pick: _i } = B;
|
4307
4309
|
class xr extends mr {
|
4308
4310
|
drawGraph() {
|
@@ -4314,20 +4316,20 @@ function Ip() {
|
|
4314
4316
|
});
|
4315
4317
|
}
|
4316
4318
|
getGraphPath(t) {
|
4317
|
-
let e, i, s, r = mr.prototype.getGraphPath, o = this.options, a = o.stacking, n = this.yAxis, h = [], c = [], d = this.index, p = n.stacking.stacks[this.stackKey], u = o.threshold, g = Math.round(n.getThreshold(o.threshold)), x = _i(o.connectNulls, a === "percent"), m = function(
|
4318
|
-
let A = t[
|
4319
|
+
let e, i, s, r = mr.prototype.getGraphPath, o = this.options, a = o.stacking, n = this.yAxis, h = [], c = [], d = this.index, p = n.stacking.stacks[this.stackKey], u = o.threshold, g = Math.round(n.getThreshold(o.threshold)), x = _i(o.connectNulls, a === "percent"), m = function(M, S, w) {
|
4320
|
+
let A = t[M], P = a && p[A.x].points[d], T = A[w + "Null"] || 0, L = A[w + "Cliff"] || 0, I, D, O = !0;
|
4319
4321
|
L || T ? (I = (T ? P[0] : P[1]) + L, D = P[0] + L, O = !!T) : !a && t[S] && t[S].isNull && (I = D = u), I !== void 0 && (c.push({ plotX: e, plotY: I === null ? g : n.getThreshold(I), isNull: O, isCliff: !0 }), h.push({ plotX: e, plotY: D === null ? g : n.getThreshold(D), doCurve: !1 }));
|
4320
4322
|
};
|
4321
4323
|
t = t || this.points, a && (t = this.getStackPoints(t));
|
4322
|
-
for (let
|
4324
|
+
for (let M = 0, S = t.length; M < S; ++M) a || (t[M].leftCliff = t[M].rightCliff = t[M].leftNull = t[M].rightNull = void 0), i = t[M].isNull, e = _i(t[M].rectPlotX, t[M].plotX), s = a ? _i(t[M].yBottom, g) : g, (!i || x) && (x || m(M, M - 1, "left"), i && !a && x || (c.push(t[M]), h.push({ x: M, plotX: e, plotY: s })), x || m(M, M + 1, "right"));
|
4323
4325
|
let f = r.call(this, c, !0, !0);
|
4324
4326
|
h.reversed = !0;
|
4325
4327
|
let y = r.call(this, h, !0, !0), b = y[0];
|
4326
4328
|
b && b[0] === "M" && (y[0] = ["L", b[1], b[2]]);
|
4327
4329
|
let v = f.concat(y);
|
4328
4330
|
v.length && v.push(["Z"]);
|
4329
|
-
let
|
4330
|
-
return this.chart.series.length > 1 && a && c.some((
|
4331
|
+
let k = r.call(this, c, !1, x);
|
4332
|
+
return this.chart.series.length > 1 && a && c.some((M) => M.isCliff) && (v.hasStackedCliffs = k.hasStackedCliffs = !0), v.xMap = f.xMap, this.areaPath = v, k;
|
4331
4333
|
}
|
4332
4334
|
getStackPoints(t) {
|
4333
4335
|
let e = this, i = [], s = [], r = this.xAxis, o = this.yAxis, a = o.stacking.stacks[this.stackKey], n = {}, h = o.series, c = h.length, d = o.options.reversedStacks ? 1 : -1, p = h.indexOf(e);
|
@@ -4342,15 +4344,15 @@ function Ip() {
|
|
4342
4344
|
s.forEach(function(g, x) {
|
4343
4345
|
let m = 0, f, y;
|
4344
4346
|
if (n[g] && !n[g].isNull) i.push(n[g]), [-1, 1].forEach(function(b) {
|
4345
|
-
let v = b === 1 ? "rightNull" : "leftNull",
|
4346
|
-
if (
|
4347
|
+
let v = b === 1 ? "rightNull" : "leftNull", k = a[s[x + b]], M = 0;
|
4348
|
+
if (k) {
|
4347
4349
|
let S = p;
|
4348
4350
|
for (; S >= 0 && S < c; ) {
|
4349
|
-
let
|
4350
|
-
!(f =
|
4351
|
+
let w = h[S].index;
|
4352
|
+
!(f = k.points[w]) && (w === e.index ? n[g][v] = !0 : u[S] && (y = a[g].points[w]) && (M -= y[1] - y[0])), S += d;
|
4351
4353
|
}
|
4352
4354
|
}
|
4353
|
-
n[g][b === 1 ? "rightCliff" : "leftCliff"] =
|
4355
|
+
n[g][b === 1 ? "rightCliff" : "leftCliff"] = M;
|
4354
4356
|
});
|
4355
4357
|
else {
|
4356
4358
|
let b = p;
|
@@ -4390,8 +4392,8 @@ function Ip() {
|
|
4390
4392
|
class vr extends Ca {
|
4391
4393
|
}
|
4392
4394
|
vr.defaultOptions = vc(Ca.defaultOptions, yc.defaultOptions), bc(vr.prototype, { getGraphPath: br.getGraphPath, getStackPoints: br.getStackPoints, drawGraph: br.drawGraph }), at.registerSeriesType("areaspline", vr);
|
4393
|
-
let { animObject: kc } = gt, { parse: wc } =
|
4394
|
-
class is extends
|
4395
|
+
let { animObject: kc } = gt, { parse: wc } = et, { 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 Tt {
|
4395
4397
|
animate(t) {
|
4396
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";
|
4397
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) {
|
@@ -4442,9 +4444,9 @@ function Ip() {
|
|
4442
4444
|
}
|
4443
4445
|
translate() {
|
4444
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);
|
4445
|
-
i.pointPadding && i.crisp && (m = Math.ceil(m)),
|
4446
|
-
let y = di(f.yBottom, x), b = 999 + Math.abs(y), v = f.plotX || 0,
|
4447
|
-
h && Math.abs(
|
4447
|
+
i.pointPadding && i.crisp && (m = Math.ceil(m)), Tt.prototype.translate.apply(t), t.points.forEach(function(f) {
|
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
|
+
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);
|
4448
4450
|
}), La(this, "afterColumnTranslate");
|
4449
4451
|
}
|
4450
4452
|
drawGraph() {
|
@@ -4483,28 +4485,28 @@ function Ip() {
|
|
4483
4485
|
let t = this, e = t.chart;
|
4484
4486
|
e.hasRendered && e.series.forEach(function(i) {
|
4485
4487
|
i.type === t.type && (i.isDirty = !0);
|
4486
|
-
}),
|
4488
|
+
}), Tt.prototype.remove.apply(t, arguments);
|
4487
4489
|
}
|
4488
4490
|
}
|
4489
|
-
is.defaultOptions = kr(
|
4490
|
-
let ss = is, { getDeferredAnimation: Tc } = gt, { format: Ac } = Lt, { defined:
|
4491
|
+
is.defaultOptions = kr(Tt.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"] }), at.registerSeriesType("column", is);
|
4492
|
+
let ss = is, { getDeferredAnimation: Tc } = gt, { format: Ac } = Lt, { defined: be, extend: Ia, fireEvent: wr, getAlignFactor: Da, isArray: oe, isString: ci, merge: pi, objectEach: Cc, pick: ui, pInt: Pc, splat: Ba } = B;
|
4491
4493
|
(function(l) {
|
4492
4494
|
function t() {
|
4493
4495
|
return n(this).some((c) => c?.enabled);
|
4494
4496
|
}
|
4495
4497
|
function e(c, d, p, u, g) {
|
4496
|
-
let { chart: x, enabledDataSorting: m } = this, f = this.isCartesian && x.inverted, y = c.plotX, b = c.plotY, v = p.rotation || 0,
|
4497
|
-
if (S &&
|
4498
|
+
let { chart: x, enabledDataSorting: m } = this, f = this.isCartesian && x.inverted, y = c.plotX, b = c.plotY, v = p.rotation || 0, k = be(y) && be(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 && be(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
|
+
if (S && w) {
|
4498
4500
|
var A;
|
4499
4501
|
let P = d.getBBox(), T = d.getBBox(void 0, 0);
|
4500
|
-
if (u = Ia({ x:
|
4502
|
+
if (u = Ia({ x: w[0], y: Math.round(w[1]), width: 0, height: 0 }, u || {}), p.alignTo === "plotEdges" && this.isCartesian && (u[f ? "x" : "y"] = 0, u[f ? "width" : "height"] = this.yAxis?.len || 0), Ia(p, { width: P.width, height: P.height }), A = u, m && this.xAxis && !M && this.setDataLabelStartPos(c, d, g, k, A), d.align(pi(p, { width: T.width, height: T.height }), !1, u, !1), d.alignAttr.x += Da(p.align) * (T.width - P.width), d.alignAttr.y += Da(p.verticalAlign) * (T.height - P.height), d[d.placed ? "animate" : "attr"]({ "text-align": d.alignAttr["text-align"] || "center", x: d.alignAttr.x + (P.width - T.width) / 2, y: d.alignAttr.y + (P.height - T.height) / 2, rotationOriginX: (d.width || 0) / 2, rotationOriginY: (d.height || 0) / 2 }), M && u.height >= 0) this.justifyDataLabel(d, p, d.alignAttr, P, u, g);
|
4501
4503
|
else if (ui(p.crop, !0)) {
|
4502
4504
|
let { x: L, y: I } = d.alignAttr;
|
4503
4505
|
S = x.isInsidePlot(L, I, { paneCoordinates: !0, series: this }) && x.isInsidePlot(L + P.width - 1, I + P.height - 1, { paneCoordinates: !0, series: this });
|
4504
4506
|
}
|
4505
|
-
p.shape && !v && d[g ? "attr" : "animate"]({ anchorX:
|
4507
|
+
p.shape && !v && d[g ? "attr" : "animate"]({ anchorX: w[0], anchorY: w[1] });
|
4506
4508
|
}
|
4507
|
-
g && m && (d.placed = !1), S || m && !
|
4509
|
+
g && m && (d.placed = !1), S || m && !M ? (d.show(), d.placed = !0) : (d.hide(), d.placed = !1);
|
4508
4510
|
}
|
4509
4511
|
function i() {
|
4510
4512
|
return this.plotGroup("dataLabelsGroup", "data-labels", this.hasRendered ? "inherit" : "hidden", this.options.dataLabels.zIndex || 6, this.chart.dataLabelsGroup);
|
@@ -4516,9 +4518,9 @@ function Ip() {
|
|
4516
4518
|
function r(c) {
|
4517
4519
|
let d;
|
4518
4520
|
c = c || this.points;
|
4519
|
-
let p = this, u = p.chart, g = p.options, x = u.renderer, { backgroundColor: m, plotBackgroundColor: f } = u.options.chart, y = x.getContrast(ci(f) && f || ci(m) && m || "#000000"), b = n(p), { animation: v, defer:
|
4520
|
-
wr(this, "drawDataLabels"), p.hasDataLabels?.() && (d = this.initDataLabels(
|
4521
|
-
let
|
4521
|
+
let p = this, u = p.chart, g = p.options, x = u.renderer, { backgroundColor: m, plotBackgroundColor: f } = u.options.chart, y = x.getContrast(ci(f) && f || ci(m) && m || "#000000"), b = n(p), { animation: v, defer: k } = b[0], M = k ? Tc(u, v, p) : { defer: 0, duration: 0 };
|
4522
|
+
wr(this, "drawDataLabels"), p.hasDataLabels?.() && (d = this.initDataLabels(M), c.forEach((S) => {
|
4523
|
+
let w = S.dataLabels || [], A = S.color || p.color;
|
4522
4524
|
Ba(a(b, S.dlOptions || S.options?.dataLabels)).forEach((T, L) => {
|
4523
4525
|
let I = T.enabled && (S.visible || S.dataLabelOnHidden) && (!S.isNull || S.dataLabelOnNull) && (function($, Z) {
|
4524
4526
|
let q = Z.filter;
|
@@ -4527,19 +4529,19 @@ function Ip() {
|
|
4527
4529
|
return vt === ">" && kt > wt || vt === "<" && kt < wt || vt === ">=" && kt >= wt || vt === "<=" && kt <= wt || vt === "==" && kt == wt || vt === "===" && kt === wt || vt === "!=" && kt != wt || vt === "!==" && kt !== wt || !1;
|
4528
4530
|
}
|
4529
4531
|
return !0;
|
4530
|
-
})(S, T), { backgroundColor: D, borderColor: O, distance: E, style: N = {} } = T,
|
4531
|
-
I && (
|
4532
|
+
})(S, T), { backgroundColor: D, borderColor: O, distance: E, style: N = {} } = T, _, F, G, X = {}, W = w[L], V = !W, U;
|
4533
|
+
I && (F = be(_ = ui(T[S.formatPrefix + "Format"], T.format)) ? Ac(_, 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" && (U = D), S.contrastColor = x.getContrast(U !== "auto" && ci(U) && U || (ci(A) ? A : "")), N.color = U || !be(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, ($, Z) => {
|
4532
4534
|
$ === void 0 && delete X[Z];
|
4533
|
-
})), !W || I &&
|
4535
|
+
})), !W || I && be(F) && !!(W.div || W.text?.foreignObject) == !!T.useHTML && (W.rotation && T.rotation || W.rotation === T.rotation) || (W = void 0, V = !0), I && be(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, V), W.isActive = !0, w[L] && w[L] !== W && w[L].destroy(), w[L] = W));
|
4534
4536
|
});
|
4535
|
-
let P =
|
4536
|
-
for (; P--; )
|
4537
|
-
S.dataLabel =
|
4537
|
+
let P = w.length;
|
4538
|
+
for (; P--; ) w[P]?.isActive ? w[P].isActive = !1 : (w[P]?.destroy(), w.splice(P, 1));
|
4539
|
+
S.dataLabel = w[0], S.dataLabels = w;
|
4538
4540
|
})), wr(this, "afterDrawDataLabels");
|
4539
4541
|
}
|
4540
4542
|
function o(c, d, p, u, g, x) {
|
4541
|
-
let m = this.chart, f = d.align, y = d.verticalAlign, b = c.box ? 0 : c.padding || 0, v = m.inverted ? this.yAxis : this.xAxis,
|
4542
|
-
return (P = (p.x || 0) + b +
|
4543
|
+
let m = this.chart, f = d.align, y = d.verticalAlign, b = c.box ? 0 : c.padding || 0, v = m.inverted ? this.yAxis : this.xAxis, k = v ? v.left - m.plotLeft : 0, M = m.inverted ? this.xAxis : this.yAxis, S = M ? M.top - m.plotTop : 0, { x: w = 0, y: A = 0 } = d, P, T;
|
4544
|
+
return (P = (p.x || 0) + b + k) < 0 && (f === "right" && w >= 0 ? (d.align = "left", d.inside = !0) : w -= P, T = !0), (P = (p.x || 0) + u.width - b + k) > m.plotWidth && (f === "left" && w <= 0 ? (d.align = "right", d.inside = !0) : w += m.plotWidth - P, T = !0), (P = p.y + b + S) < 0 && (y === "bottom" && A >= 0 ? (d.verticalAlign = "top", d.inside = !0) : A -= P, T = !0), (P = (p.y || 0) + u.height - b + S) > m.plotHeight && (y === "top" && A <= 0 ? (d.verticalAlign = "bottom", d.inside = !0) : A += m.plotHeight - P, T = !0), T && (d.x = w, d.y = A, c.placed = !x, c.align(d, void 0, g)), T;
|
4543
4545
|
}
|
4544
4546
|
function a(c, d) {
|
4545
4547
|
let p = [], u;
|
@@ -4559,15 +4561,15 @@ function Ip() {
|
|
4559
4561
|
return Ba(a(a(d?.series?.dataLabels, d?.[c.type]?.dataLabels), c.options.dataLabels));
|
4560
4562
|
}
|
4561
4563
|
function h(c, d, p, u, g) {
|
4562
|
-
let x = this.chart, m = x.inverted, f = this.xAxis, y = f.reversed, b = ((m ? d.height : d.width) || 0) / 2, v = c.pointWidth,
|
4563
|
-
d.startXPos = m ? g.x : y ? -b -
|
4564
|
+
let x = this.chart, m = x.inverted, f = this.xAxis, y = f.reversed, b = ((m ? d.height : d.width) || 0) / 2, v = c.pointWidth, k = v ? v / 2 : 0;
|
4565
|
+
d.startXPos = m ? g.x : y ? -b - k : f.width - b + k, d.startYPos = m ? y ? this.yAxis.height - b + k : -b - k : g.y, u ? d.visibility === "hidden" && (d.show(), d.attr({ opacity: 0 }).animate({ opacity: 1 })) : d.attr({ opacity: 1 }).animate({ opacity: 0 }, void 0, d.hide), x.hasRendered && (p && d.attr({ x: d.startXPos, y: d.startYPos }), d.placed = !0);
|
4564
4566
|
}
|
4565
4567
|
l.compose = function(c) {
|
4566
4568
|
let d = c.prototype;
|
4567
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);
|
4568
4570
|
};
|
4569
|
-
})(
|
4570
|
-
let rs =
|
4571
|
+
})(Me || (Me = {}));
|
4572
|
+
let rs = Me, { composed: Oc } = C, { series: Na } = at, { merge: Lc, pushUnique: Ec } = B;
|
4571
4573
|
(function(l) {
|
4572
4574
|
function t(e, i, s, r, o) {
|
4573
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;
|
@@ -4584,8 +4586,8 @@ function Ip() {
|
|
4584
4586
|
l.compose = function(e) {
|
4585
4587
|
rs.compose(Na), Ec(Oc, "ColumnDataLabel") && (e.prototype.alignDataLabel = t);
|
4586
4588
|
};
|
4587
|
-
})(
|
4588
|
-
let Ic =
|
4589
|
+
})(Se || (Se = {}));
|
4590
|
+
let Ic = Se, { extend: Dc, merge: Bc } = B;
|
4589
4591
|
class Mr extends ss {
|
4590
4592
|
}
|
4591
4593
|
Mr.defaultOptions = Bc(ss.defaultOptions, {}), Dc(Mr.prototype, { inverted: !0 }), at.registerSeriesType("bar", Mr);
|
@@ -4621,7 +4623,7 @@ function Ip() {
|
|
4621
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;
|
4622
4624
|
typeof c == "string" && (c = parseFloat(c)), typeof d == "string" && (d = parseFloat(d));
|
4623
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%")];
|
4624
|
-
for (!e.angular || this instanceof
|
4626
|
+
for (!e.angular || this instanceof Tt || (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);
|
4625
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;
|
4626
4628
|
}, l.getStartAndEndRadians = function(t, e) {
|
4627
4629
|
let i = Sr(t) ? t : 0, s = Sr(e) && e > i && e - i < 360 ? e : i + 360;
|
@@ -4675,7 +4677,7 @@ function Ip() {
|
|
4675
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;
|
4676
4678
|
} } });
|
4677
4679
|
let { getStartAndEndRadians: $c } = Wa, { noop: Fa } = C, { clamp: Zc, extend: qc, fireEvent: Ga, merge: Tr, pick: Kc } = B;
|
4678
|
-
class Ar extends
|
4680
|
+
class Ar extends Tt {
|
4679
4681
|
animate(t) {
|
4680
4682
|
let e = this, i = e.points, s = e.startAngleRad;
|
4681
4683
|
t || i.forEach(function(r) {
|
@@ -4701,7 +4703,7 @@ function Ip() {
|
|
4701
4703
|
return r[0] + Math.cos(h) * (o + n) * (e ? -1 : 1) + (n > 0 ? (e ? -1 : 1) * (s.padding || 0) : 0);
|
4702
4704
|
}
|
4703
4705
|
hasData() {
|
4704
|
-
return
|
4706
|
+
return this.points.some((t) => t.visible);
|
4705
4707
|
}
|
4706
4708
|
redrawPoints() {
|
4707
4709
|
let t, e, i, s, r = this, o = r.chart;
|
@@ -4731,10 +4733,10 @@ function Ip() {
|
|
4731
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;
|
4732
4734
|
}
|
4733
4735
|
}
|
4734
|
-
Ar.defaultOptions = Tr(
|
4736
|
+
Ar.defaultOptions = Tr(Tt.defaultOptions, { borderRadius: 3, center: [null, null], clip: !1, colorByPoint: !0, dataLabels: { connectorPadding: 5, connectorShape: "crookedLine", crookDistance: void 0, distance: 30, enabled: !0, formatter: function() {
|
4735
4737
|
return this.isNull ? void 0 : this.name;
|
4736
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"] }), at.registerSeriesType("pie", Ar);
|
4737
|
-
let { composed: _c, noop: Jc } = C, { distribute: Qc } = ki, { series: Ya } = at, { arrayMax: tp, clamp: ja, defined: Ua,
|
4739
|
+
let { composed: _c, noop: Jc } = C, { distribute: Qc } = ki, { series: Ya } = at, { arrayMax: tp, clamp: ja, defined: Ua, isNumber: ep, pick: ip, pushUnique: sp, relativeLength: Va } = B;
|
4738
4740
|
(function(l) {
|
4739
4741
|
let t = { radialDistributionY: function(o, a) {
|
4740
4742
|
return (a.dataLabelPosition?.top || 0) + o.distributeBox.pos;
|
@@ -4759,51 +4761,51 @@ function Ip() {
|
|
4759
4761
|
return { natural: { x: f + x * a, y: y + m * a }, computed: {}, alignment: a < 0 ? "center" : o.half ? "right" : "left", connectorPosition: { angle: d, breakAt: { x: f + x * b, y: y + m * b }, touchingSliceAt: { x: f, y } }, distance: a };
|
4760
4762
|
}
|
4761
4763
|
function i() {
|
4762
|
-
let o = this, a = o.points, n = o.chart, h = n.plotWidth, c = n.plotHeight, d = n.plotLeft, p = Math.round(n.chartWidth / 3), u = o.center, g = u[2] / 2, x = u[1], m = [[], []], f = [0, 0, 0, 0], y = o.dataLabelPositioners, b, v,
|
4764
|
+
let o = this, a = o.points, n = o.chart, h = n.plotWidth, c = n.plotHeight, d = n.plotLeft, p = Math.round(n.chartWidth / 3), u = o.center, g = u[2] / 2, x = u[1], m = [[], []], f = [0, 0, 0, 0], y = o.dataLabelPositioners, b, v, k, M = 0;
|
4763
4765
|
o.visible && o.hasDataLabels?.() && (a.forEach((S) => {
|
4764
|
-
(S.dataLabels || []).forEach((
|
4765
|
-
|
4766
|
+
(S.dataLabels || []).forEach((w) => {
|
4767
|
+
w.shortened && (w.attr({ width: "auto" }).css({ width: "auto", textOverflow: "clip" }), w.shortened = !1);
|
4766
4768
|
});
|
4767
4769
|
}), Ya.prototype.drawDataLabels.apply(o), a.forEach((S) => {
|
4768
|
-
(S.dataLabels || []).forEach((
|
4769
|
-
let P = u[2] / 2, T =
|
4770
|
-
A === 0 && m[S.half].push(S), !Ua(T?.style?.width) &&
|
4770
|
+
(S.dataLabels || []).forEach((w, A) => {
|
4771
|
+
let P = u[2] / 2, T = w.options, L = Va(T?.distance || 0, P);
|
4772
|
+
A === 0 && m[S.half].push(S), !Ua(T?.style?.width) && w.getBBox().width > p && (w.css({ width: Math.round(0.7 * p) + "px" }), w.shortened = !0), w.dataLabelPosition = this.getDataLabelPosition(S, L), M = Math.max(M, L);
|
4771
4773
|
});
|
4772
|
-
}), m.forEach((S,
|
4774
|
+
}), m.forEach((S, w) => {
|
4773
4775
|
let A = S.length, P = [], T, L, I = 0, D;
|
4774
|
-
A && (o.sortByAngle(S,
|
4776
|
+
A && (o.sortByAngle(S, w - 0.5), M > 0 && (T = Math.max(0, x - g - M), L = Math.min(x + g + M, n.plotHeight), S.forEach((O) => {
|
4775
4777
|
(O.dataLabels || []).forEach((E) => {
|
4776
4778
|
let N = E.dataLabelPosition;
|
4777
4779
|
N && N.distance > 0 && (N.top = Math.max(0, x - g - N.distance), N.bottom = Math.min(x + g + N.distance, n.plotHeight), I = E.getBBox().height || 21, E.lineHeight = n.renderer.fontMetrics(E.text || E).h + 2 * E.padding, O.distributeBox = { target: (E.dataLabelPosition?.natural.y || 0) - N.top + E.lineHeight / 2, size: I, rank: O.y }, P.push(O.distributeBox));
|
4778
4780
|
});
|
4779
4781
|
}), Qc(P, D = L + I - T, D / 5)), S.forEach((O) => {
|
4780
4782
|
(O.dataLabels || []).forEach((E) => {
|
4781
|
-
let N = E.options || {},
|
4782
|
-
if (
|
4783
|
-
if (P && Ua(
|
4783
|
+
let N = E.options || {}, _ = O.distributeBox, F = E.dataLabelPosition, G = F?.natural.y || 0, X = N.connectorPadding || 0, W = E.lineHeight || 21, V = (W - E.getBBox().height) / 2, U = 0, $ = G, Z = "inherit";
|
4784
|
+
if (F) {
|
4785
|
+
if (P && Ua(_) && F.distance > 0 && (_.pos === void 0 ? Z = "hidden" : (k = _.size, $ = y.radialDistributionY(O, E))), N.justify) U = y.justify(O, E, g, u);
|
4784
4786
|
else switch (N.alignTo) {
|
4785
4787
|
case "connectors":
|
4786
|
-
U = y.alignToConnectors(S,
|
4788
|
+
U = y.alignToConnectors(S, w, h, d);
|
4787
4789
|
break;
|
4788
4790
|
case "plotEdges":
|
4789
|
-
U = y.alignToPlotEdges(E,
|
4791
|
+
U = y.alignToPlotEdges(E, w, h, d);
|
4790
4792
|
break;
|
4791
4793
|
default:
|
4792
|
-
U = y.radialDistributionX(o, O, $ - V,
|
4794
|
+
U = y.radialDistributionX(o, O, $ - V, G, E);
|
4793
4795
|
}
|
4794
|
-
if (
|
4796
|
+
if (F.attribs = { visibility: Z, align: F.alignment }, F.posAttribs = { x: U + (N.x || 0) + ({ left: X, right: -X }[F.alignment] || 0), y: $ + (N.y || 0) - W / 2 }, F.computed.x = U, F.computed.y = $ - V, ip(N.crop, !0)) {
|
4795
4797
|
let q;
|
4796
|
-
U - (v = E.getBBox().width) < X &&
|
4798
|
+
U - (v = E.getBBox().width) < X && w === 1 ? (q = Math.round(v - U + X), f[3] = Math.max(q, f[3])) : U + v > h - X && w === 0 && (q = Math.round(U + v - h + X), f[1] = Math.max(q, f[1])), $ - k / 2 < 0 ? f[0] = Math.max(Math.round(-$ + k / 2), f[0]) : $ + k / 2 > c && (f[2] = Math.max(Math.round($ + k / 2 - c), f[2])), F.sideOverflow = q;
|
4797
4799
|
}
|
4798
4800
|
}
|
4799
4801
|
});
|
4800
4802
|
}));
|
4801
4803
|
}), (tp(f) === 0 || this.verifyDataLabelOverflow(f)) && (this.placeDataLabels(), this.points.forEach((S) => {
|
4802
|
-
(S.dataLabels || []).forEach((
|
4803
|
-
let { connectorColor: A, connectorWidth: P = 1 } =
|
4804
|
-
if (P) {
|
4804
|
+
(S.dataLabels || []).forEach((w) => {
|
4805
|
+
let { connectorColor: A, connectorWidth: P = 1 } = w.options || {}, T = w.dataLabelPosition;
|
4806
|
+
if (ep(P)) {
|
4805
4807
|
let L;
|
4806
|
-
b =
|
4808
|
+
b = w.connector, T && T.distance > 0 ? (L = !b, b || (w.connector = b = n.renderer.path().addClass("highcharts-data-label-connector highcharts-color-" + S.colorIndex + (S.className ? " " + S.className : "")).add(o.dataLabelsGroup)), n.styledMode || b.attr({ "stroke-width": P, stroke: A || S.color || "#666666" }), b[L ? "attr" : "animate"]({ d: S.getConnectorPath(w) }), b.attr({ visibility: T.attribs?.visibility })) : b && (w.connector = b.destroy());
|
4807
4809
|
}
|
4808
4810
|
});
|
4809
4811
|
})));
|
@@ -4821,13 +4823,13 @@ function Ip() {
|
|
4821
4823
|
return !p && (h[0] !== null ? d = Math.max(a[2] - Math.max(o[1], o[3]), c) : (d = Math.max(a[2] - o[1] - o[3], c), a[0] += (o[3] - o[1]) / 2), h[1] !== null ? d = ja(d, c, a[2] - Math.max(o[0], o[2])) : (d = ja(d, c, a[2] - o[0] - o[2]), a[1] += (o[0] - o[2]) / 2), d < a[2] ? (a[2] = d, a[3] = Math.min(n.thickness ? Math.max(0, d - 2 * n.thickness) : Math.max(0, Va(n.innerSize || 0, d)), d), this.translate(a), this.drawDataLabels && this.drawDataLabels()) : p = !0), p;
|
4822
4824
|
}
|
4823
4825
|
l.compose = function(o) {
|
4824
|
-
if (rs.compose(Ya),
|
4826
|
+
if (rs.compose(Ya), sp(_c, "PieDataLabel")) {
|
4825
4827
|
let a = o.prototype;
|
4826
4828
|
a.dataLabelPositioners = t, a.alignDataLabel = Jc, a.drawDataLabels = i, a.getDataLabelPosition = e, a.placeDataLabels = s, a.verifyDataLabelOverflow = r;
|
4827
4829
|
}
|
4828
4830
|
};
|
4829
|
-
})(
|
4830
|
-
let
|
4831
|
+
})(Q || (Q = {}));
|
4832
|
+
let rp = Q;
|
4831
4833
|
(function(l) {
|
4832
4834
|
l.getCenterOfPoints = function(t) {
|
4833
4835
|
let e = t.reduce((i, s) => (i.x += s.x, i.y += s.y, i), { x: 0, y: 0 });
|
@@ -4845,15 +4847,15 @@ function Ip() {
|
|
4845
4847
|
return a;
|
4846
4848
|
};
|
4847
4849
|
})(ot || (ot = {}));
|
4848
|
-
let { pointInPolygon:
|
4849
|
-
function
|
4850
|
+
let { pointInPolygon: op } = ot, { addEvent: ap, getAlignFactor: np, fireEvent: $a, objectEach: Za, pick: lp } = B;
|
4851
|
+
function hp(l) {
|
4850
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) => {
|
4851
|
-
for (let p of c) if (
|
4853
|
+
for (let p of c) if (op({ x: p[0], y: p[1] }, d)) return !0;
|
4852
4854
|
return !1;
|
4853
4855
|
}, s, r, o, a, n, h = !1;
|
4854
4856
|
for (let c = 0; c < t; c++) (s = l[c]) && (s.oldOpacity = s.opacity, s.newOpacity = 1, s.absoluteBox = (function(d) {
|
4855
4857
|
if (d && (!d.alignAttr || d.placed)) {
|
4856
|
-
let p = d.box ? 0 : d.padding || 0, u = d.alignAttr || { x: d.attr("x"), y: d.attr("y") }, { height: g, polygon: x, width: m } = d.getBBox(), f =
|
4858
|
+
let p = d.box ? 0 : d.padding || 0, u = d.alignAttr || { x: d.attr("x"), y: d.attr("y") }, { height: g, polygon: x, width: m } = d.getBBox(), f = np(d.alignValue) * m;
|
4857
4859
|
return d.width = m, d.height = g, { x: u.x + (d.parentGroup?.translateX || 0) + p - f, y: u.y + (d.parentGroup?.translateY || 0) + p, width: m - 2 * p, height: g - 2 * p, polygon: x };
|
4858
4860
|
}
|
4859
4861
|
})(s));
|
@@ -4882,7 +4884,7 @@ function Ip() {
|
|
4882
4884
|
t.styledMode || l.css({ pointerEvents: e ? "auto" : "none" });
|
4883
4885
|
}), $a(t, "afterHideOverlappingLabel")) : l.attr({ opacity: e })), l.isOld = !0), i;
|
4884
4886
|
}
|
4885
|
-
function
|
4887
|
+
function dp() {
|
4886
4888
|
let l = this, t = [];
|
4887
4889
|
for (let e of l.labelCollectors || []) t = t.concat(e());
|
4888
4890
|
for (let e of l.yAxis || []) e.stacking && e.options.stackLabels && !e.options.stackLabels.allowOverlap && Za(e.stacking.stacks, (i) => {
|
@@ -4894,7 +4896,7 @@ function Ip() {
|
|
4894
4896
|
let i = (s) => {
|
4895
4897
|
for (let r of s) r.visible && (r.dataLabels || []).forEach((o) => {
|
4896
4898
|
let a = o.options || {};
|
4897
|
-
o.labelrank =
|
4899
|
+
o.labelrank = lp(a.labelrank, r.labelrank, r.shapeArgs?.height), a.allowOverlap ?? Number(a.distance) > 0 ? (o.oldOpacity = o.opacity, o.newOpacity = 1, qa(o, l)) : t.push(o);
|
4898
4900
|
});
|
4899
4901
|
};
|
4900
4902
|
i(e.nodes || []), i(e.points);
|
@@ -4903,24 +4905,24 @@ function Ip() {
|
|
4903
4905
|
}
|
4904
4906
|
let Ka = { compose: function(l) {
|
4905
4907
|
let t = l.prototype;
|
4906
|
-
t.hideOverlappingLabels || (t.hideOverlappingLabels =
|
4907
|
-
} }, { defaultOptions:
|
4908
|
-
function
|
4909
|
-
let r = tn(l, t, e, i, s), {
|
4908
|
+
t.hideOverlappingLabels || (t.hideOverlappingLabels = hp, ap(l, "render", dp));
|
4909
|
+
} }, { defaultOptions: cp } = Ot, { 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
|
+
function fp(l, t, e, i, s = {}) {
|
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;
|
4910
4912
|
if (s.open || !s.borderRadius) return r;
|
4911
|
-
let
|
4912
|
-
for (;
|
4913
|
-
let
|
4914
|
-
if (
|
4915
|
-
let
|
4916
|
-
|
4917
|
-
}
|
4918
|
-
})(r,
|
4913
|
+
let p = d - c, u = Math.sin(p / 2), g = Math.max(Math.min(Cr(s.borderRadius || 0, h - n), (h - n) / 2, h * u / (1 + u)), 0), x = Math.min(g, p / Math.PI * 2 * n), m = r.length - 1;
|
4914
|
+
for (; m--; ) (o || m !== 0 && m !== 3) && (a || m !== 1 && m !== 2) && (function(f, y, b) {
|
4915
|
+
let v, k, M, S = f[y], w = f[y + 1];
|
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, _ = P ? N : -N, F = Math.cos(N) * E;
|
4918
|
+
M ? (T.start = L + _, 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[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
|
+
}
|
4920
|
+
})(r, m, m > 1 ? x : g);
|
4919
4921
|
return r;
|
4920
4922
|
}
|
4921
|
-
function
|
4923
|
+
function mp() {
|
4922
4924
|
if (this.options.borderRadius && !(this.chart.is3d && this.chart.is3d())) {
|
4923
|
-
let { options: l, yAxis: t } = this, e = l.stacking === "percent", i =
|
4925
|
+
let { options: l, yAxis: t } = this, e = l.stacking === "percent", i = cp.plotOptions?.[this.type]?.borderRadius, s = Pr(l.borderRadius, Qa(i) ? i : {}), r = t.options.reversed;
|
4924
4926
|
for (let o of this.points) {
|
4925
4927
|
let { shapeArgs: a } = o;
|
4926
4928
|
if (o.shapeType === "roundedRect" && a) {
|
@@ -4932,42 +4934,42 @@ function Ip() {
|
|
4932
4934
|
let u = (o.negative ? -1 : 1) * (r ? -1 : 1) == -1, g = s.where;
|
4933
4935
|
!g && this.is("waterfall") && Math.abs((o.yBottom || 0) - (this.translatedThreshold || 0)) > this.borderWidth && (g = "all"), g || (g = "end");
|
4934
4936
|
let x = Math.min(Cr(s.radius, n), n / 2, g === "all" ? h / 2 : 1 / 0) || 0;
|
4935
|
-
g === "end" && (u && (d -= x), p += x),
|
4937
|
+
g === "end" && (u && (d -= x), p += x), pp(a, { brBoxHeight: p, brBoxY: d, r: x });
|
4936
4938
|
}
|
4937
4939
|
}
|
4938
4940
|
}
|
4939
4941
|
}
|
4940
4942
|
function Pr(l, t) {
|
4941
|
-
return Qa(l) || (l = { radius: l || 0 }),
|
4943
|
+
return Qa(l) || (l = { radius: l || 0 }), up(gp, t, l);
|
4942
4944
|
}
|
4943
|
-
function
|
4945
|
+
function xp() {
|
4944
4946
|
let l = Pr(this.options.borderRadius);
|
4945
4947
|
for (let t of this.points) {
|
4946
4948
|
let e = t.shapeArgs;
|
4947
4949
|
e && (e.borderRadius = Cr(l.radius, (e.r || 0) - (e.innerR || 0)));
|
4948
4950
|
}
|
4949
4951
|
}
|
4950
|
-
function
|
4951
|
-
let r = en(l, t, e, i, s), { r: o = 0, brBoxHeight: a = i, brBoxY: n = t } = s, h = t - n, c = n + a - (t + i), d = h - o > -0.1 ? 0 : o, p = c - o > -0.1 ? 0 : o, u = Math.max(d && h, 0), g = Math.max(p && c, 0), x = [l + d, t], m = [l + e - d, t], f = [l + e, t + d], y = [l + e, t + i - p], b = [l + e - p, t + i], v = [l + p, t + i],
|
4952
|
+
function yp(l, t, e, i, s = {}) {
|
4953
|
+
let r = en(l, t, e, i, s), { r: o = 0, brBoxHeight: a = i, brBoxY: n = t } = s, h = t - n, c = n + a - (t + i), d = h - o > -0.1 ? 0 : o, p = c - o > -0.1 ? 0 : o, u = Math.max(d && h, 0), g = Math.max(p && c, 0), x = [l + d, t], m = [l + e - d, t], f = [l + e, t + d], y = [l + e, t + i - p], b = [l + e - p, t + i], v = [l + p, t + i], k = [l, t + i - p], M = [l, t + d], S = (w, A) => Math.sqrt(Math.pow(w, 2) - Math.pow(A, 2));
|
4952
4954
|
if (u) {
|
4953
|
-
let
|
4954
|
-
x[0] -=
|
4955
|
+
let w = S(d, d - u);
|
4956
|
+
x[0] -= w, m[0] += w, f[1] = M[1] = t + d - u;
|
4955
4957
|
}
|
4956
4958
|
if (i < d - u) {
|
4957
|
-
let
|
4958
|
-
f[0] = y[0] = l + e - d +
|
4959
|
+
let w = S(d, d - u - i);
|
4960
|
+
f[0] = y[0] = l + e - d + w, b[0] = Math.min(f[0], b[0]), v[0] = Math.max(y[0], v[0]), k[0] = M[0] = l + d - w, f[1] = M[1] = t + i;
|
4959
4961
|
}
|
4960
4962
|
if (g) {
|
4961
|
-
let
|
4962
|
-
b[0] +=
|
4963
|
+
let w = S(p, p - g);
|
4964
|
+
b[0] += w, v[0] -= w, y[1] = k[1] = t + i - p + g;
|
4963
4965
|
}
|
4964
4966
|
if (i < p - g) {
|
4965
|
-
let
|
4966
|
-
f[0] = y[0] = l + e - p +
|
4967
|
+
let w = S(p, p - g - i);
|
4968
|
+
f[0] = y[0] = l + e - p + w, m[0] = Math.min(f[0], m[0]), x[0] = Math.max(y[0], x[0]), k[0] = M[0] = l + p - w, y[1] = k[1] = t;
|
4967
4969
|
}
|
4968
|
-
return r.length = 0, r.push(["M", ...x], ["L", ...m], ["A", d, d, 0, 0, 1, ...f], ["L", ...y], ["A", p, p, 0, 0, 1, ...b], ["L", ...v], ["A", p, p, 0, 0, 1, ...
|
4970
|
+
return r.length = 0, r.push(["M", ...x], ["L", ...m], ["A", d, d, 0, 0, 1, ...f], ["L", ...y], ["A", p, p, 0, 0, 1, ...b], ["L", ...v], ["A", p, p, 0, 0, 1, ...k], ["L", ...M], ["A", d, d, 0, 0, 1, ...x], ["Z"]), r;
|
4969
4971
|
}
|
4970
|
-
let { diffObjects:
|
4972
|
+
let { diffObjects: bp, extend: vp, find: kp, merge: wp, pick: ns, uniqueKey: Mp } = B;
|
4971
4973
|
(function(l) {
|
4972
4974
|
function t(i, s) {
|
4973
4975
|
let r = i.condition;
|
@@ -4978,80 +4980,80 @@ function Ip() {
|
|
4978
4980
|
function e(i, s) {
|
4979
4981
|
let r = this.options.responsive, o = this.currentResponsive, a = [], n;
|
4980
4982
|
!s && r && r.rules && r.rules.forEach((d) => {
|
4981
|
-
d._id === void 0 && (d._id =
|
4983
|
+
d._id === void 0 && (d._id = Mp()), this.matchResponsiveRule(d, a);
|
4982
4984
|
}, this);
|
4983
|
-
let h =
|
4985
|
+
let h = wp(...a.map((d) => kp(r?.rules || [], (p) => p._id === d)).map((d) => d?.chartOptions));
|
4984
4986
|
h.isResponsiveOptions = !0, a = a.toString() || void 0;
|
4985
4987
|
let c = o?.ruleIds;
|
4986
|
-
a !== c && (o && (this.currentResponsive = void 0, this.updatingResponsive = !0, this.update(o.undoOptions, i, !0), this.updatingResponsive = !1), a ? ((n =
|
4988
|
+
a !== c && (o && (this.currentResponsive = void 0, this.updatingResponsive = !0, this.update(o.undoOptions, i, !0), this.updatingResponsive = !1), a ? ((n = bp(h, this.options, !0, this.collectionsWithUpdate)).isResponsiveOptions = !0, this.currentResponsive = { ruleIds: a, mergedOptions: h, undoOptions: n }, this.updatingResponsive || this.update(h, i, !0)) : this.currentResponsive = void 0);
|
4987
4989
|
}
|
4988
4990
|
l.compose = function(i) {
|
4989
4991
|
let s = i.prototype;
|
4990
|
-
return s.matchResponsiveRule ||
|
4992
|
+
return s.matchResponsiveRule || vp(s, { matchResponsiveRule: t, setResponsive: e }), i;
|
4991
4993
|
};
|
4992
4994
|
})(dt || (dt = {}));
|
4993
|
-
let
|
4994
|
-
C.AST =
|
4995
|
+
let Sp = dt;
|
4996
|
+
C.AST = tt, C.Axis = De, C.Chart = se, C.Color = et, C.DataLabel = rs, C.DataTableCore = ji, C.Fx = yt, C.HTMLElement = Ee, C.Legend = ha, C.LegendSymbol = qo, C.OverlappingDataLabels = C.OverlappingDataLabels || Ka, C.PlotLineOrBand = Xi, C.Point = Qt, C.Pointer = Vo, C.RendererRegistry = Ke, C.Series = Tt, C.SeriesRegistry = at, C.StackItem = ka, C.SVGElement = Xt, C.SVGRenderer = Oi, C.Templating = Lt, C.Tick = Ie, C.Time = ms, C.Tooltip = Fo, C.animate = gt.animate, C.animObject = gt.animObject, C.chart = se.chart, C.color = et.parse, C.dateFormat = Lt.dateFormat, C.defaultOptions = Ot.defaultOptions, C.distribute = ki.distribute, C.format = Lt.format, C.getDeferredAnimation = gt.getDeferredAnimation, C.getOptions = Ot.getOptions, C.numberFormat = Lt.numberFormat, C.seriesType = at.seriesType, C.setAnimation = gt.setAnimation, C.setOptions = Ot.setOptions, C.stop = gt.stop, C.time = Ot.defaultTime, C.timers = yt.timers, { compose: function(l, t, e) {
|
4995
4997
|
let i = l.types.pie;
|
4996
4998
|
if (!t.symbolCustomAttribs.includes("borderRadius")) {
|
4997
4999
|
let s = e.prototype.symbols;
|
4998
|
-
Ja(l, "afterColumnTranslate",
|
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;
|
4999
5001
|
}
|
5000
|
-
}, optionsToObject: Pr }.compose(C.Series, C.SVGElement, C.SVGRenderer), Ic.compose(C.Series.types.column), rs.compose(C.Series), ph.compose(C.Axis), Ee.compose(C.SVGRenderer), ha.compose(C.Chart), fh.compose(C.Axis), Ka.compose(C.Chart),
|
5001
|
-
let
|
5002
|
+
}, optionsToObject: Pr }.compose(C.Series, C.SVGElement, C.SVGRenderer), Ic.compose(C.Series.types.column), rs.compose(C.Series), ph.compose(C.Axis), Ee.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
|
+
let Tp = C;
|
5002
5004
|
return je.default;
|
5003
5005
|
})());
|
5004
5006
|
})(ls)), ls.exports;
|
5005
5007
|
}
|
5006
|
-
var
|
5007
|
-
const
|
5008
|
-
var hs = { exports: {} },
|
5009
|
-
function
|
5010
|
-
return an || (an = 1, (function(
|
5011
|
-
(function(Pt,
|
5012
|
-
|
5013
|
-
})(typeof self < "u" ? self :
|
5014
|
-
return (function(
|
5008
|
+
var Bp = /* @__PURE__ */ Dp();
|
5009
|
+
const Np = /* @__PURE__ */ ln(Bp);
|
5010
|
+
var hs = { exports: {} }, zp = hs.exports, an;
|
5011
|
+
function Rp() {
|
5012
|
+
return an || (an = 1, (function(ke, ne) {
|
5013
|
+
(function(Pt, mt) {
|
5014
|
+
ke.exports = mt(Cp);
|
5015
|
+
})(typeof self < "u" ? self : zp, function(Pt) {
|
5016
|
+
return (function(mt) {
|
5015
5017
|
function nt(j) {
|
5016
5018
|
if (Mt[j]) return Mt[j].exports;
|
5017
|
-
var
|
5018
|
-
return
|
5019
|
+
var J = Mt[j] = { i: j, l: !1, exports: {} };
|
5020
|
+
return mt[j].call(J.exports, J, J.exports, nt), J.l = !0, J.exports;
|
5019
5021
|
}
|
5020
5022
|
var Mt = {};
|
5021
|
-
return nt.m =
|
5022
|
-
nt.o(j,
|
5023
|
+
return nt.m = mt, nt.c = Mt, nt.d = function(j, J, le) {
|
5024
|
+
nt.o(j, J) || Object.defineProperty(j, J, { configurable: !1, enumerable: !0, get: le });
|
5023
5025
|
}, nt.n = function(j) {
|
5024
|
-
var
|
5026
|
+
var J = j && j.__esModule ? function() {
|
5025
5027
|
return j.default;
|
5026
5028
|
} : function() {
|
5027
5029
|
return j;
|
5028
5030
|
};
|
5029
|
-
return nt.d(
|
5030
|
-
}, nt.o = function(j,
|
5031
|
-
return Object.prototype.hasOwnProperty.call(j,
|
5031
|
+
return nt.d(J, "a", J), J;
|
5032
|
+
}, nt.o = function(j, J) {
|
5033
|
+
return Object.prototype.hasOwnProperty.call(j, J);
|
5032
5034
|
}, nt.p = "", nt(nt.s = 0);
|
5033
|
-
})([function(
|
5035
|
+
})([function(mt, nt, Mt) {
|
5034
5036
|
function j() {
|
5035
5037
|
return j = Object.assign ? Object.assign.bind() : function(z) {
|
5036
|
-
for (var
|
5037
|
-
var ot = arguments[
|
5038
|
+
for (var Q = 1; Q < arguments.length; Q++) {
|
5039
|
+
var ot = arguments[Q];
|
5038
5040
|
for (var dt in ot) Object.prototype.hasOwnProperty.call(ot, dt) && (z[dt] = ot[dt]);
|
5039
5041
|
}
|
5040
5042
|
return z;
|
5041
5043
|
}, j.apply(this, arguments);
|
5042
5044
|
}
|
5043
|
-
function
|
5045
|
+
function J(z) {
|
5044
5046
|
return Ge(z) || Fe(z) || He(z) || le();
|
5045
5047
|
}
|
5046
5048
|
function le() {
|
5047
5049
|
throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
5048
5050
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
|
5049
5051
|
}
|
5050
|
-
function He(z,
|
5052
|
+
function He(z, Q) {
|
5051
5053
|
if (z) {
|
5052
|
-
if (typeof z == "string") return he(z,
|
5054
|
+
if (typeof z == "string") return he(z, Q);
|
5053
5055
|
var ot = Object.prototype.toString.call(z).slice(8, -1);
|
5054
|
-
return ot === "Object" && z.constructor && (ot = z.constructor.name), ot === "Map" || ot === "Set" ? Array.from(z) : ot === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ot) ? he(z,
|
5056
|
+
return ot === "Object" && z.constructor && (ot = z.constructor.name), ot === "Map" || ot === "Set" ? Array.from(z) : ot === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ot) ? he(z, Q) : void 0;
|
5055
5057
|
}
|
5056
5058
|
}
|
5057
5059
|
function Fe(z) {
|
@@ -5060,55 +5062,55 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
5060
5062
|
function Ge(z) {
|
5061
5063
|
if (Array.isArray(z)) return he(z);
|
5062
5064
|
}
|
5063
|
-
function he(z,
|
5064
|
-
(
|
5065
|
-
for (var ot = 0, dt = new Array(
|
5065
|
+
function he(z, Q) {
|
5066
|
+
(Q == null || Q > z.length) && (Q = z.length);
|
5067
|
+
for (var ot = 0, dt = new Array(Q); ot < Q; ot++) dt[ot] = z[ot];
|
5066
5068
|
return dt;
|
5067
5069
|
}
|
5068
|
-
function
|
5070
|
+
function we(z) {
|
5069
5071
|
"@babel/helpers - typeof";
|
5070
|
-
return (
|
5071
|
-
return typeof
|
5072
|
-
} : function(
|
5073
|
-
return
|
5072
|
+
return (we = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(Q) {
|
5073
|
+
return typeof Q;
|
5074
|
+
} : function(Q) {
|
5075
|
+
return Q && typeof Symbol == "function" && Q.constructor === Symbol && Q !== Symbol.prototype ? "symbol" : typeof Q;
|
5074
5076
|
})(z);
|
5075
5077
|
}
|
5076
5078
|
Object.defineProperty(nt, "__esModule", { value: !0 }), Mt.d(nt, "HighchartsReact", function() {
|
5077
|
-
return
|
5079
|
+
return Se;
|
5078
5080
|
});
|
5079
|
-
var St = Mt(1), Ye = Mt.n(St),
|
5081
|
+
var St = Mt(1), Ye = Mt.n(St), Me = typeof window < "u" ? St.useLayoutEffect : St.useEffect, Se = Object(St.memo)(Object(St.forwardRef)(function(z, Q) {
|
5080
5082
|
var ot = Object(St.useRef)(), dt = Object(St.useRef)(), $t = Object(St.useRef)(z.constructorType), je = Object(St.useRef)(z.highcharts);
|
5081
|
-
return
|
5083
|
+
return Me(function() {
|
5082
5084
|
function C() {
|
5083
|
-
var Zt = z.highcharts || (typeof window > "u" ? "undefined" :
|
5085
|
+
var Zt = z.highcharts || (typeof window > "u" ? "undefined" : we(window)) === "object" && window.Highcharts, Rt = z.constructorType || "chart";
|
5084
5086
|
Zt ? Zt[Rt] ? z.options ? dt.current = Zt[Rt](ot.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.');
|
5085
5087
|
}
|
5086
5088
|
if (dt.current) {
|
5087
5089
|
if (z.allowChartUpdate !== !1) if (z.constructorType !== $t.current || z.highcharts !== je.current) $t.current = z.constructorType, je.current = z.highcharts, C();
|
5088
5090
|
else if (!z.immutable && dt.current) {
|
5089
5091
|
var fi;
|
5090
|
-
(fi = dt.current).update.apply(fi, [z.options].concat(
|
5092
|
+
(fi = dt.current).update.apply(fi, [z.options].concat(J(z.updateArgs || [!0, !0])));
|
5091
5093
|
} else C();
|
5092
5094
|
} else C();
|
5093
|
-
}, [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]), Me(function() {
|
5094
5096
|
return function() {
|
5095
5097
|
dt.current && (dt.current.destroy(), dt.current = null);
|
5096
5098
|
};
|
5097
|
-
}, []), Object(St.useImperativeHandle)(
|
5099
|
+
}, []), Object(St.useImperativeHandle)(Q, function() {
|
5098
5100
|
return { get chart() {
|
5099
5101
|
return dt.current;
|
5100
5102
|
}, container: ot };
|
5101
5103
|
}, []), Ye.a.createElement("div", j({}, z.containerProps, { ref: ot }));
|
5102
5104
|
}));
|
5103
|
-
nt.default =
|
5104
|
-
}, function(
|
5105
|
-
|
5105
|
+
nt.default = Se;
|
5106
|
+
}, function(mt, nt) {
|
5107
|
+
mt.exports = Pt;
|
5106
5108
|
}]);
|
5107
5109
|
});
|
5108
5110
|
})(hs)), hs.exports;
|
5109
5111
|
}
|
5110
|
-
var
|
5111
|
-
const
|
5112
|
+
var Wp = /* @__PURE__ */ Rp();
|
5113
|
+
const Xp = /* @__PURE__ */ ln(Wp), nn = {
|
5112
5114
|
title: {
|
5113
5115
|
text: void 0
|
5114
5116
|
},
|
@@ -5149,21 +5151,21 @@ const Wp = /* @__PURE__ */ ln(Rp), nn = {
|
|
5149
5151
|
noData: "No data to display"
|
5150
5152
|
},
|
5151
5153
|
series: []
|
5152
|
-
},
|
5153
|
-
tokenUsage:
|
5154
|
+
}, Hp = ({
|
5155
|
+
tokenUsage: ke,
|
5154
5156
|
page: ne = 0
|
5155
5157
|
}) => {
|
5156
|
-
const Pt =
|
5157
|
-
return
|
5158
|
-
const Mt =
|
5159
|
-
const
|
5158
|
+
const Pt = Ep() ? Lp : rn, [mt, nt] = Pp(nn);
|
5159
|
+
return Op(() => {
|
5160
|
+
const Mt = ke.map((j) => {
|
5161
|
+
const J = j.data.slice(ne, ne + 3);
|
5160
5162
|
return {
|
5161
5163
|
name: j.name,
|
5162
|
-
data:
|
5164
|
+
data: J
|
5163
5165
|
};
|
5164
|
-
}).filter((j) => j.data.some((
|
5166
|
+
}).filter((j) => j.data.some((J) => J !== 0));
|
5165
5167
|
nt((j) => {
|
5166
|
-
const
|
5168
|
+
const J = j.xAxis.categories || nn.xAxis.categories;
|
5167
5169
|
return {
|
5168
5170
|
...j,
|
5169
5171
|
title: {
|
@@ -5171,15 +5173,15 @@ const Wp = /* @__PURE__ */ ln(Rp), nn = {
|
|
5171
5173
|
},
|
5172
5174
|
xAxis: {
|
5173
5175
|
...j.xAxis,
|
5174
|
-
categories: rn[ne] ||
|
5176
|
+
categories: rn[ne] || J
|
5175
5177
|
},
|
5176
5178
|
series: Mt
|
5177
5179
|
};
|
5178
5180
|
});
|
5179
|
-
}, [
|
5181
|
+
}, [ke, ne, Pt]), /* @__PURE__ */ Ap(Xp, { highcharts: Np, options: mt });
|
5180
5182
|
};
|
5181
|
-
|
5183
|
+
Hp.displayName = "Chart";
|
5182
5184
|
export {
|
5183
|
-
|
5184
|
-
|
5185
|
+
Hp as Chart,
|
5186
|
+
Hp as default
|
5185
5187
|
};
|