@syhr/dga-charts 1.0.0 → 1.0.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/index.cjs +8 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +97 -103
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +8 -8
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -281,7 +281,7 @@ const Pt = [
|
|
|
281
281
|
labelColor: "#1a3a6c",
|
|
282
282
|
points: [[0.6, 0.3, 0.1], [0, 0.9, 0.1], [0, 0.65, 0.35], [0.35, 0.3, 0.35]]
|
|
283
283
|
}
|
|
284
|
-
],
|
|
284
|
+
], st = [
|
|
285
285
|
{
|
|
286
286
|
name: "PD",
|
|
287
287
|
title: "电晕型局部放电",
|
|
@@ -659,12 +659,12 @@ const Ut = {
|
|
|
659
659
|
const i = mt(v, e, o, t, s);
|
|
660
660
|
if (!i) return { code: "INVALID", label: "无效输入", desc: "", color: "" };
|
|
661
661
|
const { x: n, y: l } = i;
|
|
662
|
-
for (let a = 0; a <
|
|
663
|
-
const r =
|
|
662
|
+
for (let a = 0; a < st.length - 1; a++) {
|
|
663
|
+
const r = st[a];
|
|
664
664
|
if (bt(n, l, r.poly))
|
|
665
665
|
return { code: r.name, label: r.title, desc: r.desc, color: r.color };
|
|
666
666
|
}
|
|
667
|
-
const h =
|
|
667
|
+
const h = st[st.length - 1];
|
|
668
668
|
return { code: h.name, label: h.title, desc: h.desc, color: h.color };
|
|
669
669
|
},
|
|
670
670
|
duvalPentagon2: (v, t, e, o, s) => {
|
|
@@ -1005,21 +1005,21 @@ class pt {
|
|
|
1005
1005
|
for (const d of h) {
|
|
1006
1006
|
const f = { ...a, ...d.labelStyle || {} };
|
|
1007
1007
|
if (f.show === !1 || !d.name) continue;
|
|
1008
|
-
const g = d.poly ? d.poly.map((
|
|
1008
|
+
const g = d.poly ? d.poly.map((S) => W.polyToCanvas(S, s, i, n)) : [];
|
|
1009
1009
|
let p, m;
|
|
1010
1010
|
if (d.labelAt && Array.isArray(d.labelAt))
|
|
1011
1011
|
[p, m] = W.polyToCanvas(d.labelAt, s, i, n);
|
|
1012
1012
|
else if (g.length > 0)
|
|
1013
|
-
p = g.reduce((
|
|
1013
|
+
p = g.reduce((S, C) => S + C[0], 0) / g.length, m = g.reduce((S, C) => S + C[1], 0) / g.length;
|
|
1014
1014
|
else
|
|
1015
1015
|
continue;
|
|
1016
1016
|
const y = Math.round((f.fontSize || o.zoneLabelSize || 12) * 1), u = f.fontStyle || "bold";
|
|
1017
1017
|
t.font = `${u} ${y}px ${c}`, f.letterSpacing !== void 0 && "letterSpacing" in t && (t.letterSpacing = `${f.letterSpacing}px`), t.textAlign = "center", t.textBaseline = "middle";
|
|
1018
|
-
const b = d.name, w = t.measureText(b).width,
|
|
1018
|
+
const b = d.name, w = t.measureText(b).width, x = y;
|
|
1019
1019
|
if (f.backgroundColor && f.backgroundColor !== "transparent") {
|
|
1020
|
-
let
|
|
1021
|
-
Array.isArray(f.padding) ? (C = f.padding[0],
|
|
1022
|
-
const z = (f.borderRadius || 0) * 1, _ = w +
|
|
1020
|
+
let S = 4, C = 4;
|
|
1021
|
+
Array.isArray(f.padding) ? (C = f.padding[0], S = f.padding[1] !== void 0 ? f.padding[1] : C) : typeof lstyle.padding == "number" && (S = C = lstyle.padding), S *= 1, C *= 1;
|
|
1022
|
+
const z = (f.borderRadius || 0) * 1, _ = w + S * 2, A = x + C * 2, Y = p - _ / 2, P = m - A / 2;
|
|
1023
1023
|
t.fillStyle = f.backgroundColor, t.beginPath(), t.roundRect ? t.roundRect(Y, P, _, A, z) : t.rect(Y, P, _, A), t.fill();
|
|
1024
1024
|
}
|
|
1025
1025
|
f.textShadow && f.textShadow !== "none" ? (t.shadowColor = f.textShadow, t.shadowBlur = 4) : (t.shadowColor = "transparent", t.shadowBlur = 0), t.fillStyle = f.color || o.zoneLabelColor || "#fff", t.fillText(b, p, m), t.shadowBlur = 0, t.shadowColor = "transparent", "letterSpacing" in t && (t.letterSpacing = "0px");
|
|
@@ -1050,8 +1050,8 @@ class Xt {
|
|
|
1050
1050
|
if (!e || e.show === !1) return;
|
|
1051
1051
|
const c = ((d = e.labelStyle) == null ? void 0 : d.distance) !== void 0 ? e.labelStyle.distance : 27.2;
|
|
1052
1052
|
e.data.forEach((f, g) => {
|
|
1053
|
-
const p = f.labelStyle || {}, m = p.distance !== void 0 ? p.distance : c, y = typeof m == "string" && m.endsWith("%") ? parseFloat(m) / 100 * n : parseFloat(m) * 1, [u, b] = W.canvasVertex(g, s, i, n + y), w = p.fontStyle || "normal",
|
|
1054
|
-
t.font = `${w} ${
|
|
1053
|
+
const p = f.labelStyle || {}, m = p.distance !== void 0 ? p.distance : c, y = typeof m == "string" && m.endsWith("%") ? parseFloat(m) / 100 * n : parseFloat(m) * 1, [u, b] = W.canvasVertex(g, s, i, n + y), w = p.fontStyle || "normal", x = p.fontWeight || "bold", S = Math.round((p.fontSize || o.gasLabelSize || 14) * 1);
|
|
1054
|
+
t.font = `${w} ${x} ${S}px ${r}`, t.fillStyle = p.color || o.gasLabelColor || "#fff", t.textAlign = "center", t.textBaseline = "middle", t.shadowColor = o.gasLabelShadow, t.shadowBlur = 7, t.fillText(f.name, u, b), t.shadowBlur = 0;
|
|
1055
1055
|
});
|
|
1056
1056
|
}
|
|
1057
1057
|
}
|
|
@@ -1087,9 +1087,9 @@ class Yt {
|
|
|
1087
1087
|
if (!p) return [];
|
|
1088
1088
|
const m = e.name, y = e.shape || "circle", u = e.color || "#409eff";
|
|
1089
1089
|
let b = e.size !== void 0 ? e.size : 5;
|
|
1090
|
-
const [w,
|
|
1090
|
+
const [w, x] = W.polyToCanvas(p, s, i, n), S = pt.diagnose(p, a, s, i, n), [C, z] = W.ratioToDoc(p);
|
|
1091
1091
|
r && r.series === e && (b *= 1.5);
|
|
1092
|
-
const A = e.itemStyle || {}, Y = A.borderColor || "#fff", P = A.borderWidth !== void 0 ? A.borderWidth : 1, k = A.opacity !== void 0 ? A.opacity : 1, M = e.textStyle || {}, L = M.show !== void 0 ? M.show : !0, Q = M.color || u, N = M.fontSize !== void 0 ? M.fontSize : 12,
|
|
1092
|
+
const A = e.itemStyle || {}, Y = A.borderColor || "#fff", P = A.borderWidth !== void 0 ? A.borderWidth : 1, k = A.opacity !== void 0 ? A.opacity : 1, M = e.textStyle || {}, L = M.show !== void 0 ? M.show : !0, Q = M.color || u, N = M.fontSize !== void 0 ? M.fontSize : 12, ot = M.fontWeight || "normal", Z = M.position || "top", tt = M.offset || [0, 0], H = e.glowStyle || {}, dt = H.show !== void 0 ? H.show : !1, X = H.colors, I = H.blur !== void 0 ? H.blur : 15, R = H.startColor || u, U = H.endColor || "transparent", V = H.count !== void 0 ? H.count : 3, Mt = H.glowDistance !== void 0 ? H.glowDistance : 2;
|
|
1093
1093
|
if (t.save(), t.globalAlpha = k, dt) {
|
|
1094
1094
|
t.shadowColor = X ? X[0] : R, t.shadowBlur = I;
|
|
1095
1095
|
let O = [], j = V;
|
|
@@ -1102,17 +1102,17 @@ class Yt {
|
|
|
1102
1102
|
}
|
|
1103
1103
|
for (let B = j - 1; B >= 0; B--) {
|
|
1104
1104
|
const q = O[B];
|
|
1105
|
-
t.save(), t.fillStyle = q, t.beginPath(), nt(t, w,
|
|
1105
|
+
t.save(), t.fillStyle = q, t.beginPath(), nt(t, w, x, y, b, c, (B + 1) * Mt), t.fill(), t.restore();
|
|
1106
1106
|
}
|
|
1107
1107
|
}
|
|
1108
|
-
if (t.beginPath(), nt(t, w,
|
|
1109
|
-
t.save(), t.globalAlpha = k, t.font = `${
|
|
1110
|
-
let O = "center", j = "middle", B = w + tt[0] * c, q =
|
|
1108
|
+
if (t.beginPath(), nt(t, w, x, y, b, c, 0), y === "ring" ? (t.strokeStyle = u, t.lineWidth = P * c, t.stroke()) : (t.fillStyle = u, t.fill(), P > 0 && (t.strokeStyle = Y, t.lineWidth = P * c, t.stroke())), t.restore(), L && m) {
|
|
1109
|
+
t.save(), t.globalAlpha = k, t.font = `${ot} ${Math.round(N * c)}px ${d}`, t.fillStyle = Q;
|
|
1110
|
+
let O = "center", j = "middle", B = w + tt[0] * c, q = x + tt[1] * c, et = 6 * c;
|
|
1111
1111
|
y === "circle" || y === "ring" || y === "star" || y === "triangle" ? et += b * c : y === "square" && (et += b * c / 2), Z === "top" ? (O = "center", j = "bottom", q -= et) : Z === "bottom" ? (O = "center", j = "top", q += et) : Z === "left" ? (O = "right", j = "middle", B -= et) : Z === "right" ? (O = "left", j = "middle", B += et) : Z === "center" && (O = "center", j = "middle"), t.textAlign = O, t.textBaseline = j, t.fillText(m, B, q), t.restore();
|
|
1112
1112
|
}
|
|
1113
1113
|
return f.push({
|
|
1114
1114
|
ratio: p,
|
|
1115
|
-
zone:
|
|
1115
|
+
zone: S,
|
|
1116
1116
|
docX: C,
|
|
1117
1117
|
docY: z,
|
|
1118
1118
|
rawData: g,
|
|
@@ -1275,14 +1275,14 @@ const G = class G {
|
|
|
1275
1275
|
if (p.show !== !1 && this._hoverRatio) {
|
|
1276
1276
|
let u = 0, b = 0;
|
|
1277
1277
|
(this._hoverPoint || p.showDiagnostic !== !1) && ([u, b] = W.polyToCanvas(this._hoverRatio, n, l, h));
|
|
1278
|
-
const w = u * this._zoom.zoom + this._zoom.panX,
|
|
1279
|
-
let
|
|
1280
|
-
typeof p.formatter == "function" ?
|
|
1278
|
+
const w = u * this._zoom.zoom + this._zoom.panX, x = b * this._zoom.zoom + this._zoom.panY;
|
|
1279
|
+
let S = "";
|
|
1280
|
+
typeof p.formatter == "function" ? S = p.formatter({
|
|
1281
1281
|
ratio: this._hoverRatio,
|
|
1282
1282
|
zone: this._hoverZone,
|
|
1283
1283
|
point: (y = this._hoverPoint) == null ? void 0 : y.series,
|
|
1284
1284
|
gasOrder: r
|
|
1285
|
-
}) :
|
|
1285
|
+
}) : S = this._defaultTooltipHTML(this._hoverRatio, this._hoverZone, a, r, this._hoverPoint), this._tooltipRenderer.show(S, w, x, p, a, this._hoverZone);
|
|
1286
1286
|
} else
|
|
1287
1287
|
this._tooltipRenderer.hide();
|
|
1288
1288
|
t.restore(), g.length > 0 && this._bus.emit("diagnose", g);
|
|
@@ -1305,10 +1305,10 @@ const G = class G {
|
|
|
1305
1305
|
let m = "-";
|
|
1306
1306
|
if (l)
|
|
1307
1307
|
if (Array.isArray(l)) {
|
|
1308
|
-
const
|
|
1309
|
-
if (
|
|
1310
|
-
const
|
|
1311
|
-
m =
|
|
1308
|
+
const x = l[g];
|
|
1309
|
+
if (x && typeof x == "object") {
|
|
1310
|
+
const S = l.find((C) => C.name === f);
|
|
1311
|
+
m = S && S.value !== void 0 ? S.value : "-";
|
|
1312
1312
|
} else
|
|
1313
1313
|
m = l[g] !== void 0 ? l[g] : "-";
|
|
1314
1314
|
} else typeof l == "object" && (m = l[f] !== void 0 ? l[f] : "-");
|
|
@@ -1322,7 +1322,7 @@ const G = class G {
|
|
|
1322
1322
|
}), c;
|
|
1323
1323
|
}
|
|
1324
1324
|
};
|
|
1325
|
-
K(G, "DEFAULT_ZONES",
|
|
1325
|
+
K(G, "DEFAULT_ZONES", st), K(G, "DEFAULTS", {
|
|
1326
1326
|
theme: "dark",
|
|
1327
1327
|
vertex: {
|
|
1328
1328
|
show: !0,
|
|
@@ -1508,12 +1508,12 @@ class Rt {
|
|
|
1508
1508
|
if (!m) return;
|
|
1509
1509
|
const y = D.t2c(m.a, m.b, m.c, e), u = Math.round((p.fontSize || 11) * i), b = p.fontStyle || "bold";
|
|
1510
1510
|
s.font = `${b} ${u}px ${h}`, s.textAlign = "center", s.textBaseline = "middle";
|
|
1511
|
-
const w = g.id,
|
|
1511
|
+
const w = g.id, x = s.measureText(w).width, S = u;
|
|
1512
1512
|
let C = y.x, z = y.y;
|
|
1513
1513
|
if (p.backgroundColor && p.backgroundColor !== "transparent") {
|
|
1514
1514
|
let _ = 4, A = 4;
|
|
1515
1515
|
Array.isArray(p.padding) ? (A = p.padding[0], _ = p.padding[1] !== void 0 ? p.padding[1] : A) : typeof p.padding == "number" && (_ = A = p.padding), _ *= i, A *= i;
|
|
1516
|
-
const Y = (p.borderRadius || 3) * i, P =
|
|
1516
|
+
const Y = (p.borderRadius || 3) * i, P = x + _ * 2, k = S + A * 2, M = C - P / 2, L = z - k / 2;
|
|
1517
1517
|
s.fillStyle = p.backgroundColor, s.beginPath(), s.roundRect ? s.roundRect(M, L, P, k, Y) : s.rect(M, L, P, k), s.fill();
|
|
1518
1518
|
}
|
|
1519
1519
|
p.textShadow && p.textShadow !== "none" ? (s.shadowColor = p.textShadow, s.shadowBlur = 4) : (s.shadowColor = "transparent", s.shadowBlur = 0), s.fillStyle = p.color || g.labelColor || "#fff", s.fillText(w, C, z), s.shadowBlur = 0, s.shadowColor = "transparent";
|
|
@@ -1535,8 +1535,8 @@ class Rt {
|
|
|
1535
1535
|
let u = m.x - p.x, b = m.y - p.y;
|
|
1536
1536
|
const w = Math.hypot(u, b);
|
|
1537
1537
|
u /= w, b /= w;
|
|
1538
|
-
const
|
|
1539
|
-
return (y.x - p.x) *
|
|
1538
|
+
const x = { x: -b, y: u }, S = { x: b, y: -u };
|
|
1539
|
+
return (y.x - p.x) * x.x + (y.y - p.y) * x.y > 0 ? x : S;
|
|
1540
1540
|
}, { top: c, left: d, right: f } = e, g = {
|
|
1541
1541
|
bottom: r(d, f, c),
|
|
1542
1542
|
left: r(d, c, f),
|
|
@@ -1545,8 +1545,8 @@ class Rt {
|
|
|
1545
1545
|
for (let p = 1; p < i; p++) {
|
|
1546
1546
|
const m = p / i, y = p % n === 0, u = y ? h : l;
|
|
1547
1547
|
o.strokeStyle = u.color || "transparent", o.lineWidth = (u.width ?? 1) * a, u.type === "dashed" ? o.setLineDash([4, 4]) : u.type === "dotted" ? o.setLineDash([2, 4]) : o.setLineDash([]);
|
|
1548
|
-
const b = (w,
|
|
1549
|
-
o.beginPath(), o.moveTo(w.x, w.y), o.lineTo(
|
|
1548
|
+
const b = (w, x) => {
|
|
1549
|
+
o.beginPath(), o.moveTo(w.x, w.y), o.lineTo(x.x, x.y), o.stroke();
|
|
1550
1550
|
};
|
|
1551
1551
|
b(D.t2c(m, 1 - m, 0, e), D.t2c(m, 0, 1 - m, e)), b(D.t2c(1 - m, m, 0, e), D.t2c(0, m, 1 - m, e)), b(D.t2c(1 - m, 0, m, e), D.t2c(0, 1 - m, m, e)), this.drawSideTick(p, i, m, t, e, y, g);
|
|
1552
1552
|
}
|
|
@@ -1558,10 +1558,10 @@ class Rt {
|
|
|
1558
1558
|
r.textAlign = "center", r.textBaseline = "middle";
|
|
1559
1559
|
const d = a.length || 6, f = a.lineColor || "rgba(0,0,0,0.2)", g = a.color || "rgba(200,220,255)", p = a.offset !== void 0 ? a.offset : 15, m = a.fontFamily || "Microsoft YaHei UI, sans-serif", y = a.fontSize || 14, b = `${a.fontWeight || "normal"} ${y}px ${m}`, w = (z, _, A) => {
|
|
1560
1560
|
r.beginPath(), r.moveTo(z.x, z.y), r.lineTo(z.x + _ * d, z.y + A * d), r.strokeStyle = f, r.lineWidth = 1.5, r.stroke();
|
|
1561
|
-
},
|
|
1562
|
-
w(
|
|
1563
|
-
const
|
|
1564
|
-
w(
|
|
1561
|
+
}, x = D.t2c(o, 1 - o, 0, i);
|
|
1562
|
+
w(x, l.left.x, l.left.y), n && (r.fillStyle = g, r.font = b, r.save(), r.translate(x.x - p, x.y - 8), r.rotate(-Math.PI / 3), r.fillText(c + "", 0, 0), r.restore());
|
|
1563
|
+
const S = D.t2c(1 - o, 0, o, i);
|
|
1564
|
+
w(S, l.right.x, l.right.y), n && (r.fillStyle = g, r.font = b, r.save(), r.translate(S.x + p, S.y - 8), r.rotate(Math.PI / 3), r.fillText(c + "", 0, 0), r.restore());
|
|
1565
1565
|
const C = D.t2c(0, o, 1 - o, i);
|
|
1566
1566
|
w(C, l.bottom.x, l.bottom.y), n && (r.fillStyle = g, r.font = b, r.fillText(c + "", C.x, C.y + p));
|
|
1567
1567
|
}
|
|
@@ -1582,8 +1582,8 @@ class Rt {
|
|
|
1582
1582
|
o.textBaseline = "middle", o.textAlign = "center", o.fillStyle = f, o.font = `${d} ${c}px ${r}`;
|
|
1583
1583
|
const p = { x: (s.x + i.x) / 2, y: (s.y + i.y) / 2 }, m = i.x - s.x, y = i.y - s.y, u = Math.hypot(m, y);
|
|
1584
1584
|
o.save(), o.translate(p.x + -y / u * g, p.y + m / u * g), o.rotate(Math.atan2(y, m) + Math.PI), o.fillText((h[1] || "B") + " (%)", 0, 0), o.restore();
|
|
1585
|
-
const b = { x: (s.x + n.x) / 2, y: (s.y + n.y) / 2 }, w = n.x - s.x,
|
|
1586
|
-
o.save(), o.translate(b.x +
|
|
1585
|
+
const b = { x: (s.x + n.x) / 2, y: (s.y + n.y) / 2 }, w = n.x - s.x, x = n.y - s.y, S = Math.hypot(w, x);
|
|
1586
|
+
o.save(), o.translate(b.x + x / S * g, b.y + -w / S * g), o.rotate(Math.atan2(x, w)), o.fillText((h[2] || "C") + " (%)", 0, 0), o.restore(), o.save(), o.translate((i.x + n.x) / 2, (i.y + n.y) / 2 + g), o.fillText((h[0] || "A") + " (%)", 0, 0), o.restore();
|
|
1587
1587
|
}
|
|
1588
1588
|
drawSeries(t, e, o) {
|
|
1589
1589
|
var h;
|
|
@@ -1596,9 +1596,9 @@ class Rt {
|
|
|
1596
1596
|
const f = D.t2c(d[0], d[1], d[2], e), g = f.x, p = f.y, m = o && o.series === a, y = a.shape || "circle", u = a.color || "#409eff";
|
|
1597
1597
|
let b = a.size !== void 0 ? a.size : 5;
|
|
1598
1598
|
m && (b *= 1.5);
|
|
1599
|
-
const w = a.itemStyle || {},
|
|
1599
|
+
const w = a.itemStyle || {}, x = w.borderColor || "#fff", S = w.borderWidth !== void 0 ? w.borderWidth : 1, C = w.opacity !== void 0 ? w.opacity : 1, z = a.textStyle || {}, _ = z.show !== void 0 ? z.show : !0, A = z.color || u, Y = z.fontSize !== void 0 ? z.fontSize : 12, P = z.fontWeight || "normal", k = z.position || "top", M = z.offset || [0, 0], L = a.glowStyle || {}, Q = L.show !== void 0 ? L.show : !1, N = L.colors, ot = L.blur !== void 0 ? L.blur : 15, Z = L.startColor || u, tt = L.endColor || "transparent", H = L.count !== void 0 ? L.count : 3, dt = L.glowDistance !== void 0 ? L.glowDistance : 2;
|
|
1600
1600
|
if (s.save(), s.globalAlpha = C, Q) {
|
|
1601
|
-
s.shadowColor = N ? N[0] : Z, s.shadowBlur =
|
|
1601
|
+
s.shadowColor = N ? N[0] : Z, s.shadowBlur = ot;
|
|
1602
1602
|
let X = [], I = H;
|
|
1603
1603
|
if (Array.isArray(N) && N.length > 0)
|
|
1604
1604
|
X = N, I = X.length;
|
|
@@ -1612,7 +1612,7 @@ class Rt {
|
|
|
1612
1612
|
s.save(), s.fillStyle = U, s.beginPath(), nt(s, g, p, y, b, i, (R + 1) * dt), s.fill(), s.restore();
|
|
1613
1613
|
}
|
|
1614
1614
|
}
|
|
1615
|
-
if (s.beginPath(), nt(s, g, p, y, b, i, 0), y === "ring" ? (s.strokeStyle = u, s.lineWidth =
|
|
1615
|
+
if (s.beginPath(), nt(s, g, p, y, b, i, 0), y === "ring" ? (s.strokeStyle = u, s.lineWidth = S * i, s.stroke()) : (s.fillStyle = u, s.fill(), S > 0 && (s.strokeStyle = x, s.lineWidth = S * i, s.stroke())), s.restore(), _ && c) {
|
|
1616
1616
|
s.save(), s.globalAlpha = C, s.font = `${P} ${Math.round(Y * i)}px ${n}`, s.fillStyle = A;
|
|
1617
1617
|
let X = "center", I = "middle", R = g + M[0] * i, U = p + M[1] * i, V = 6 * i;
|
|
1618
1618
|
y === "circle" || y === "ring" || y === "star" || y === "triangle" ? V += b * i : y === "square" && (V += b * i / 2), k === "top" ? (X = "center", I = "bottom", U -= V) : k === "bottom" ? (X = "center", I = "top", U += V) : k === "left" ? (X = "right", I = "middle", R -= V) : k === "right" ? (X = "left", I = "middle", R += V) : k === "center" && (X = "center", I = "middle"), s.textAlign = X, s.textBaseline = I, s.fillText(c, R, U), s.restore();
|
|
@@ -1760,8 +1760,8 @@ class Gt {
|
|
|
1760
1760
|
sNames: a,
|
|
1761
1761
|
zone: l,
|
|
1762
1762
|
point: (u = this.state.hoveredPoint) == null ? void 0 : u.series
|
|
1763
|
-
}), w = t * this._zoom.zoom + this._zoom.panX,
|
|
1764
|
-
this._tooltip.show(b, w,
|
|
1763
|
+
}), w = t * this._zoom.zoom + this._zoom.panX, x = e * this._zoom.zoom + this._zoom.panY;
|
|
1764
|
+
this._tooltip.show(b, w, x, n, {}, l);
|
|
1765
1765
|
return;
|
|
1766
1766
|
}
|
|
1767
1767
|
const r = this._defaultTooltipHTML(o, s, i, a, l), c = t * this._zoom.zoom + this._zoom.panX, d = e * this._zoom.zoom + this._zoom.panY, f = this.canvas.getBoundingClientRect(), g = this.container.getBoundingClientRect(), p = f.left - g.left, m = f.top - g.top;
|
|
@@ -1788,26 +1788,26 @@ class Gt {
|
|
|
1788
1788
|
* @private
|
|
1789
1789
|
*/
|
|
1790
1790
|
_defaultTooltipHTML(t, e, o, s, i) {
|
|
1791
|
-
var m, y;
|
|
1791
|
+
var m, y, u;
|
|
1792
1792
|
const n = this.state.hoveredPoint, l = this.state.option.tooltip || {}, h = l.showPoint !== !1, a = l.showDiagnostic !== !1;
|
|
1793
1793
|
let r = "";
|
|
1794
1794
|
if (n && h) {
|
|
1795
|
-
let
|
|
1796
|
-
|
|
1795
|
+
let b = ((m = n.series) == null ? void 0 : m.name) || "";
|
|
1796
|
+
b && (r = `<div style="font-size:14px; font-weight:bold; margin-bottom:4px; color:#fff;">${b}</div>`);
|
|
1797
1797
|
}
|
|
1798
1798
|
const c = i ? `${i.name || i.id} ${i.desc || i.title || ""}` : "Outside", d = i && ((y = i.color) == null ? void 0 : y.replace(/[\d.]+\)$/, "1)")) || "#fff";
|
|
1799
1799
|
let f = `
|
|
1800
1800
|
${r}
|
|
1801
1801
|
${c ? `<div style="color:${d}; font-size:13px; font-weight:bold; padding-bottom:8px; margin-bottom:8px; border-bottom:1px solid rgba(255,255,255,0.07);">${c}</div>` : ""}
|
|
1802
1802
|
`;
|
|
1803
|
-
const g = ["#00e5ff", "#ff6b35", "#ffcc02"], p = n == null ? void 0 : n.
|
|
1804
|
-
return (h || !h && !a) && s.forEach((
|
|
1805
|
-
const
|
|
1803
|
+
const g = ["#00e5ff", "#ff6b35", "#ffcc02"], p = (u = n == null ? void 0 : n.series) == null ? void 0 : u.data;
|
|
1804
|
+
return (h || !h && !a) && s.forEach((b, w) => {
|
|
1805
|
+
const x = g[w % 3];
|
|
1806
1806
|
let S = "-";
|
|
1807
|
-
p && (Array.isArray(p) ? S = p[
|
|
1807
|
+
p && (Array.isArray(p) ? S = p[w] !== void 0 ? p[w] : "-" : typeof p == "object" && (p.value && Array.isArray(p.value) ? S = p.value[w] !== void 0 ? p.value[w] : "-" : p[b] !== void 0 && (S = p[b]))), f += `
|
|
1808
1808
|
<div style="display:flex; align-items:center; margin-bottom:6px; font-size:13px;">
|
|
1809
|
-
<span style="display:inline-block; width:8px; height:8px; border-radius:50%; background-color:${
|
|
1810
|
-
<span style="color:#cbd5e1; flex-grow:1;">${
|
|
1809
|
+
<span style="display:inline-block; width:8px; height:8px; border-radius:50%; background-color:${x}; margin-right:8px;"></span>
|
|
1810
|
+
<span style="color:#cbd5e1; flex-grow:1;">${b}</span>
|
|
1811
1811
|
<span style="color:#fff; font-weight:bold; margin-left:20px;">${S}</span>
|
|
1812
1812
|
</div>
|
|
1813
1813
|
`;
|
|
@@ -2212,16 +2212,16 @@ class It {
|
|
|
2212
2212
|
if (Array.isArray(f.colors) && f.colors.length > 0)
|
|
2213
2213
|
y = f.colors, u = y.length;
|
|
2214
2214
|
else {
|
|
2215
|
-
const
|
|
2215
|
+
const x = f.startColor || _t(w, 0.15), S = f.endColor || "transparent";
|
|
2216
2216
|
u = f.count !== void 0 ? parseInt(f.count, 10) : 3, y = [];
|
|
2217
2217
|
for (let C = 0; C < u; C++) {
|
|
2218
2218
|
const z = u > 1 ? C / (u - 1) : 0;
|
|
2219
|
-
y.push(Ht(
|
|
2219
|
+
y.push(Ht(x, S, z));
|
|
2220
2220
|
}
|
|
2221
2221
|
}
|
|
2222
|
-
for (let
|
|
2223
|
-
const
|
|
2224
|
-
s.save(), s.fillStyle =
|
|
2222
|
+
for (let x = u - 1; x >= 0; x--) {
|
|
2223
|
+
const S = y[x];
|
|
2224
|
+
s.save(), s.fillStyle = S, s.beginPath(), s.arc(n, l, h + (x + 1) * b, 0, Math.PI * 2), s.fill(), s.restore();
|
|
2225
2225
|
}
|
|
2226
2226
|
}
|
|
2227
2227
|
s.globalAlpha = o, s.beginPath(), s.arc(n, l, h, 0, Math.PI * 2);
|
|
@@ -2242,17 +2242,17 @@ class It {
|
|
|
2242
2242
|
}
|
|
2243
2243
|
const p = c - a, m = d - r, y = Math.min(p, m), u = a + p / 2, b = r + m / 2;
|
|
2244
2244
|
a = u - y / 2, c = u + y / 2, r = b - y / 2, d = b + y / 2;
|
|
2245
|
-
const { vals: w, labels:
|
|
2245
|
+
const { vals: w, labels: x } = T.TICKS, S = (_, A) => ({
|
|
2246
2246
|
cx: a + _ * (c - a),
|
|
2247
2247
|
cy: d - A * (d - r)
|
|
2248
2248
|
}), C = this.themeName ?? "dark";
|
|
2249
2249
|
if (l.grid.show && (i.fillStyle = l.grid.backgroundColor ?? s.bgColor[C] ?? s.bgColor.dark, i.fillRect(a, r, c - a, d - r)), l.zone.show && this.zone.forEach((_) => {
|
|
2250
|
-
const [A, Y] = [_[s.hAxis + "0"], _[s.hAxis + "1"]], [P, k] = [_[s.vAxis + "0"], _[s.vAxis + "1"]], M =
|
|
2251
|
-
i.fillStyle = _.fillBase +
|
|
2250
|
+
const [A, Y] = [_[s.hAxis + "0"], _[s.hAxis + "1"]], [P, k] = [_[s.vAxis + "0"], _[s.vAxis + "1"]], M = S(A, P), L = S(Y, k), Q = L.cx - M.cx, N = M.cy - L.cy, ot = _.fillAlpha !== void 0 ? _.fillAlpha : l.zone.alpha;
|
|
2251
|
+
i.fillStyle = _.fillBase + ot + ")", i.fillRect(M.cx, L.cy, Q, N), l.zone.borderStyle.show && (i.strokeStyle = _.edgeStr, i.lineWidth = l.zone.borderStyle.lineWidth, i.strokeRect(M.cx, L.cy, Q, N));
|
|
2252
2252
|
const Z = (M.cx + L.cx) / 2, tt = (M.cy + L.cy) / 2;
|
|
2253
2253
|
i.font = _.labelFontStr || this.getFont("zone"), i.textAlign = "center", i.fillStyle = _.labelColor, i.fillText(_.name, Z, tt + 4);
|
|
2254
2254
|
}), l.grid.show && (i.strokeStyle = l.grid.lineStyle.color || n.plane2dGrid, i.lineWidth = l.grid.lineStyle.lineWidth, i.globalAlpha = e * l.grid.lineStyle.alpha, l.grid.lineStyle.type === "dashed" ? i.setLineDash([4, 4]) : l.grid.lineStyle.type === "dotted" ? i.setLineDash([2, 2]) : i.setLineDash([]), w.forEach((_) => {
|
|
2255
|
-
const A =
|
|
2255
|
+
const A = S(_, 0).cx, Y = S(0, _).cy;
|
|
2256
2256
|
i.beginPath(), i.moveTo(A, r), i.lineTo(A, d), i.stroke(), i.beginPath(), i.moveTo(a, Y), i.lineTo(c, Y), i.stroke();
|
|
2257
2257
|
}), i.setLineDash([]), i.globalAlpha = e), l.axis.show) {
|
|
2258
2258
|
const _ = h[s.hAxis].color, A = h[s.vAxis].color;
|
|
@@ -2262,7 +2262,7 @@ class It {
|
|
|
2262
2262
|
i.font = `${l.axis.tickLabelStyle.fontSize}px ${Y}`;
|
|
2263
2263
|
const P = l.axis.tickLabelStyle.distance;
|
|
2264
2264
|
w.forEach((k, M) => {
|
|
2265
|
-
i.fillStyle = _, i.textAlign = "center", i.fillText(
|
|
2265
|
+
i.fillStyle = _, i.textAlign = "center", i.fillText(x[M], S(k, 0).cx, d + P + l.axis.tickLabelStyle.fontSize / 2), i.fillStyle = A, i.textAlign = "right", i.fillText(x[M], a - P + 2, S(0, k).cy + l.axis.tickLabelStyle.fontSize / 3);
|
|
2266
2266
|
});
|
|
2267
2267
|
}
|
|
2268
2268
|
if (l.axis.labelStyle.show) {
|
|
@@ -2272,35 +2272,29 @@ class It {
|
|
|
2272
2272
|
}
|
|
2273
2273
|
}
|
|
2274
2274
|
o.forEach((_) => {
|
|
2275
|
-
const A =
|
|
2275
|
+
const A = S(F.realToU(_.position[s.hAxis]), F.realToU(_.position[s.vAxis]));
|
|
2276
2276
|
this.drawPointAt(A, _, e);
|
|
2277
2277
|
}), i.restore();
|
|
2278
2278
|
}
|
|
2279
2279
|
}
|
|
2280
|
-
const
|
|
2280
|
+
const it = class it {
|
|
2281
2281
|
/**
|
|
2282
2282
|
* 构造函数
|
|
2283
|
+
* @param {string|HTMLElement} container 容器选择器或元素
|
|
2283
2284
|
* @param {Object} opts 配置项
|
|
2284
|
-
* @param {string|HTMLElement} opts.container 容器选择器或元素
|
|
2285
2285
|
* @param {string} opts.initialView 初始视角 (默认 '3d')
|
|
2286
2286
|
* @param {string} opts.theme 初始主题 ('dark' | 'light')
|
|
2287
2287
|
*/
|
|
2288
|
-
constructor(t = {}) {
|
|
2289
|
-
this.series = [], this.opts =
|
|
2288
|
+
constructor(t, e = {}) {
|
|
2289
|
+
this.series = [], this.opts = e, this.cam = {
|
|
2290
2290
|
rotX: T.CAM.elev,
|
|
2291
2291
|
rotY: T.CAM.yaw,
|
|
2292
2292
|
zoomFactor: 1
|
|
2293
|
-
}, this.view =
|
|
2293
|
+
}, this.view = e.initialView ?? "3d", this.layout = e.layout ?? "fill", this.drag = { active: !1, lastX: 0, lastY: 0 }, this.tween = {
|
|
2294
2294
|
from: { rotX: 0, rotY: 0 },
|
|
2295
2295
|
to: { rotX: 0, rotY: 0 },
|
|
2296
2296
|
t: 1
|
|
2297
|
-
}, this.animId = null, this.pinchDist = null, this.events = { viewChange: null, dataChange: null };
|
|
2298
|
-
const e = typeof t.container == "string" ? document.querySelector(t.container) : t.container;
|
|
2299
|
-
e && this.buildDOM(e), this.renderer = new It(this.ctx, this.W, this.H, t), this.bindEvents(), this.applyView(), this.render();
|
|
2300
|
-
}
|
|
2301
|
-
/** 静态工厂方法,简化初始化调用 */
|
|
2302
|
-
static init(t, e = {}) {
|
|
2303
|
-
return new ot({ container: t, ...e });
|
|
2297
|
+
}, this.animId = null, this.pinchDist = null, this.events = { viewChange: null, dataChange: null }, t = typeof t == "string" ? document.querySelector(t) : t, t && this.buildDOM(t), this.renderer = new It(this.ctx, this.W, this.H, e), this.bindEvents(), this.applyView(), this.render();
|
|
2304
2298
|
}
|
|
2305
2299
|
/**
|
|
2306
2300
|
* 设置图表配置(主要用于更新数据或视角)
|
|
@@ -2337,7 +2331,7 @@ const ot = class ot {
|
|
|
2337
2331
|
* @param {string} v 视图 ID
|
|
2338
2332
|
*/
|
|
2339
2333
|
setView(t) {
|
|
2340
|
-
if (!
|
|
2334
|
+
if (!it.VIEWS[t]) return;
|
|
2341
2335
|
this.view = t, cancelAnimationFrame(this.animId);
|
|
2342
2336
|
const e = this.getViewTarget(t);
|
|
2343
2337
|
this.tween = {
|
|
@@ -2368,13 +2362,13 @@ const ot = class ot {
|
|
|
2368
2362
|
render() {
|
|
2369
2363
|
!this.renderer || !this.ctx || this.renderer.draw(this.cam, this.series, this.view, this.flatness());
|
|
2370
2364
|
}
|
|
2371
|
-
|
|
2365
|
+
dispose() {
|
|
2372
2366
|
var t, e;
|
|
2373
2367
|
cancelAnimationFrame(this.animId), (t = this.resizeObs) == null || t.disconnect(), (e = this.cv) == null || e.remove(), window.removeEventListener("mousemove", this.onMouseMove), window.removeEventListener("mouseup", this.onMouseUp);
|
|
2374
2368
|
}
|
|
2375
2369
|
// 内部方法
|
|
2376
2370
|
getViewTarget(t) {
|
|
2377
|
-
const e =
|
|
2371
|
+
const e = it.VIEWS[t];
|
|
2378
2372
|
return {
|
|
2379
2373
|
rotX: typeof e.rotX == "function" ? e.rotX() : e.rotX,
|
|
2380
2374
|
rotY: typeof e.rotY == "function" ? e.rotY() : e.rotY
|
|
@@ -2465,13 +2459,13 @@ const ot = class ot {
|
|
|
2465
2459
|
);
|
|
2466
2460
|
}
|
|
2467
2461
|
};
|
|
2468
|
-
K(
|
|
2462
|
+
K(it, "VIEWS", {
|
|
2469
2463
|
"3d": { rotX: () => T.CAM.elev, rotY: () => T.CAM.yaw },
|
|
2470
2464
|
xz: { rotX: 0, rotY: 0 },
|
|
2471
2465
|
yz: { rotX: 0, rotY: 90 },
|
|
2472
2466
|
xy: { rotX: 90, rotY: 0 }
|
|
2473
2467
|
});
|
|
2474
|
-
let xt =
|
|
2468
|
+
let xt = it;
|
|
2475
2469
|
function ht(v) {
|
|
2476
2470
|
const t = v.trim().toLowerCase();
|
|
2477
2471
|
if (t.startsWith("#")) {
|
|
@@ -2640,7 +2634,7 @@ class zt {
|
|
|
2640
2634
|
this._coordMap = { xMin: a, xMax: r, yMin: c, yMax: d, plotW: f, plotH: g, gL: p, gT: m, toPixX: y, toPixY: u }, i.save(), this._zoom.applyTransform(i), this._drawGrid(i, y, u, n, l), this._drawZones(i, y, u, n, l);
|
|
2641
2635
|
const b = this._drawSeries(i, y, u, n, l);
|
|
2642
2636
|
if (this._drawAxes(i, y, u, n, l, t, e, p, m, f, g), i.restore(), l.tooltip.show && this._hoverPoint) {
|
|
2643
|
-
const w = this._hoverPoint,
|
|
2637
|
+
const w = this._hoverPoint, x = y(w.logX) * this._zoom.zoom + this._zoom.panX, S = u(w.logY) * this._zoom.zoom + this._zoom.panY;
|
|
2644
2638
|
let C = "";
|
|
2645
2639
|
typeof l.tooltip.formatter == "function" ? C = l.tooltip.formatter({
|
|
2646
2640
|
series: w.series,
|
|
@@ -2649,7 +2643,7 @@ class zt {
|
|
|
2649
2643
|
rawX: Math.pow(10, w.logX),
|
|
2650
2644
|
rawY: Math.pow(10, w.logY),
|
|
2651
2645
|
zone: w.zone
|
|
2652
|
-
}) : C = this._defaultTooltipHTML(w, l), this._tooltipRenderer.show(C,
|
|
2646
|
+
}) : C = this._defaultTooltipHTML(w, l), this._tooltipRenderer.show(C, x, S, l.tooltip, n, w.zone);
|
|
2653
2647
|
} else
|
|
2654
2648
|
this._tooltipRenderer.hide();
|
|
2655
2649
|
b.length > 0 && this._bus.emit("diagnose", b);
|
|
@@ -2662,8 +2656,8 @@ class zt {
|
|
|
2662
2656
|
for (let b = 2; b <= 9; b++) {
|
|
2663
2657
|
const w = y + Math.log10(b);
|
|
2664
2658
|
if (w > l) break;
|
|
2665
|
-
const
|
|
2666
|
-
t.beginPath(), t.moveTo(
|
|
2659
|
+
const x = e(w);
|
|
2660
|
+
t.beginPath(), t.moveTo(x, c), t.lineTo(x, c + f), t.stroke();
|
|
2667
2661
|
}
|
|
2668
2662
|
}
|
|
2669
2663
|
for (let y = Math.ceil(h); y <= Math.floor(a); y++) {
|
|
@@ -2672,8 +2666,8 @@ class zt {
|
|
|
2672
2666
|
for (let b = 2; b <= 9; b++) {
|
|
2673
2667
|
const w = y + Math.log10(b);
|
|
2674
2668
|
if (w > a) break;
|
|
2675
|
-
const
|
|
2676
|
-
t.beginPath(), t.moveTo(r,
|
|
2669
|
+
const x = o(w);
|
|
2670
|
+
t.beginPath(), t.moveTo(r, x), t.lineTo(r + d, x), t.stroke();
|
|
2677
2671
|
}
|
|
2678
2672
|
}
|
|
2679
2673
|
}
|
|
@@ -2714,12 +2708,12 @@ class zt {
|
|
|
2714
2708
|
t.font = `${w.fontWeight || "normal"} ${w.fontSize || 11}px system-ui, sans-serif`, t.fillStyle = y, t.fillText(Tt(u), h - 6 + (w.offsetX || 0), b + (w.offsetY || 0));
|
|
2715
2709
|
}
|
|
2716
2710
|
if (i.xAxis.title) {
|
|
2717
|
-
const u = i.xAxis.titleStyle, b = { left: h, center: h + r / 2, right: h + r }, w = (b[u.align] || b.center) + (u.offsetX || 0),
|
|
2718
|
-
t.textAlign = u.align === "left" ? "left" : u.align === "right" ? "right" : "center", t.font = `${u.fontWeight || "normal"} ${u.fontSize || 13}px system-ui, sans-serif`, t.fillStyle = u.color || s.text, t.fillText(i.xAxis.title, w,
|
|
2711
|
+
const u = i.xAxis.titleStyle, b = { left: h, center: h + r / 2, right: h + r }, w = (b[u.align] || b.center) + (u.offsetX || 0), x = a + c + 38 + (u.offsetY || 0);
|
|
2712
|
+
t.textAlign = u.align === "left" ? "left" : u.align === "right" ? "right" : "center", t.font = `${u.fontWeight || "normal"} ${u.fontSize || 13}px system-ui, sans-serif`, t.fillStyle = u.color || s.text, t.fillText(i.xAxis.title, w, x);
|
|
2719
2713
|
}
|
|
2720
2714
|
if (i.yAxis.title) {
|
|
2721
|
-
const u = i.yAxis.titleStyle, b = { left: a + c, center: a + c / 2, right: a }, w = b[u.align] || b.center,
|
|
2722
|
-
t.save(), t.translate(
|
|
2715
|
+
const u = i.yAxis.titleStyle, b = { left: a + c, center: a + c / 2, right: a }, w = b[u.align] || b.center, x = 14 + (u.offsetX || 0), S = w + (u.offsetY || 0);
|
|
2716
|
+
t.save(), t.translate(x, S), t.rotate(-Math.PI / 2), t.textAlign = u.align === "left" ? "right" : u.align === "right" ? "left" : "center", t.font = `${u.fontWeight || "normal"} ${u.fontSize || 13}px system-ui, sans-serif`, t.fillStyle = u.color || s.text, t.fillText(i.yAxis.title, 0, 0), t.restore();
|
|
2723
2717
|
}
|
|
2724
2718
|
}
|
|
2725
2719
|
_drawSeries(t, e, o, s, i) {
|
|
@@ -2728,8 +2722,8 @@ class zt {
|
|
|
2728
2722
|
for (const r of i.series || []) {
|
|
2729
2723
|
let c = 0, d = 0;
|
|
2730
2724
|
if (Array.isArray(r.data) && r.data.length >= 2) {
|
|
2731
|
-
const
|
|
2732
|
-
c = r.logScale === !1 ?
|
|
2725
|
+
const S = typeof r.data[0] == "object" ? r.data[0].value : r.data[0], C = typeof r.data[1] == "object" ? r.data[1].value : r.data[1];
|
|
2726
|
+
c = r.logScale === !1 ? S : Math.log10(S || 1e-9), d = r.logScale === !1 ? C : Math.log10(C || 1e-9);
|
|
2733
2727
|
} else if (r.dataX !== void 0 && r.dataY !== void 0)
|
|
2734
2728
|
c = r.logScale === !1 ? r.dataX : Math.log10(r.dataX || 1e-9), d = r.logScale === !1 ? r.dataY : Math.log10(r.dataY || 1e-9);
|
|
2735
2729
|
else
|
|
@@ -2737,9 +2731,9 @@ class zt {
|
|
|
2737
2731
|
const f = e(c), g = o(d);
|
|
2738
2732
|
let p = null;
|
|
2739
2733
|
if (i.zone && i.zone.data) {
|
|
2740
|
-
for (const
|
|
2741
|
-
if (
|
|
2742
|
-
p =
|
|
2734
|
+
for (const S of i.zone.data)
|
|
2735
|
+
if (S.poly && gt(c, d, S.poly)) {
|
|
2736
|
+
p = S;
|
|
2743
2737
|
break;
|
|
2744
2738
|
}
|
|
2745
2739
|
}
|
|
@@ -2748,16 +2742,16 @@ class zt {
|
|
|
2748
2742
|
t.save(), t.translate(f, g);
|
|
2749
2743
|
const w = r.glowStyle || {};
|
|
2750
2744
|
(w.show || b && w.show !== !1) && (t.shadowColor = w.color || Lt(m, 0.8), t.shadowBlur = w.blur || 15), t.fillStyle = m, t.strokeStyle = ((l = r.itemStyle) == null ? void 0 : l.borderColor) || "none", t.lineWidth = ((h = r.itemStyle) == null ? void 0 : h.borderWidth) || 0, (t.strokeStyle === "none" || !((a = r.itemStyle) != null && a.borderColor)) && (t.lineWidth = 0), t.beginPath(), nt(t, 0, 0, u, y, 1, 0), t.fill(), t.lineWidth > 0 && t.stroke();
|
|
2751
|
-
const
|
|
2752
|
-
if (
|
|
2745
|
+
const x = r.textStyle;
|
|
2746
|
+
if (x && x.show && r.name) {
|
|
2753
2747
|
t.shadowBlur = 0;
|
|
2754
|
-
const
|
|
2748
|
+
const S = {
|
|
2755
2749
|
top: [0, -(y + 6)],
|
|
2756
2750
|
bottom: [0, y + 12],
|
|
2757
2751
|
left: [-(y + 6), 4],
|
|
2758
2752
|
right: [y + 6, 4]
|
|
2759
|
-
}, [C, z] = x
|
|
2760
|
-
t.textAlign =
|
|
2753
|
+
}, [C, z] = S[x.position] || S.top;
|
|
2754
|
+
t.textAlign = x.position === "left" ? "right" : x.position === "right" ? "left" : "center", t.textBaseline = "middle", t.font = `${x.fontWeight || "normal"} ${x.fontSize || 12}px system-ui, sans-serif`, t.fillStyle = x.color || m, t.fillText(r.name, C, z);
|
|
2761
2755
|
}
|
|
2762
2756
|
t.restore();
|
|
2763
2757
|
}
|
|
@@ -2784,7 +2778,7 @@ export {
|
|
|
2784
2778
|
zt as ETRAChart,
|
|
2785
2779
|
Wt as ETRA_ZONES_A,
|
|
2786
2780
|
Zt as ETRA_ZONES_B,
|
|
2787
|
-
|
|
2781
|
+
st as PENTAGON_ZONES_1,
|
|
2788
2782
|
lt as PENTAGON_ZONES_2,
|
|
2789
2783
|
kt as THREE_RADIO_ZONES,
|
|
2790
2784
|
Pt as TRIANGLE_ZONES_1,
|